sql >> Databáze >  >> RDS >> Database

T-SQL vs SQL

Zde je rychlý přehled rozdílů mezi SQL a T-SQL (Transact-SQL). Ani ne tak rozdíly jako takové, ale spíše vysvětlení T-SQL a jeho umístění ve vztahu k SQL.

Pokud jste se zabývali vývojem nebo správou databází, pravděpodobně znáte SQL. SQL, což je zkratka pro Structured Query Language, je standardní dotazovací jazyk pro práci s databázemi. Většina hlavních systémů pro správu relačních databází, jako je MySQL, Oracle, SQL Server, PostgreSQL atd., podporuje SQL tak či onak.

I když však standard SQL poskytuje jasné specifikace, umožňuje také dodavatelům databází přidávat svá vlastní rozšíření. To umožňuje prodejcům poskytovat svým zákazníkům další funkce a funkce, které nemusí nabízet jejich konkurenti.

Zde přichází na řadu T-SQL.

Co je Transact-SQL?

Transact-SQL, často zkrácený na T-SQL nebo dokonce TSQL, je proprietární rozšíření SQL společností Microsoft a Sybase. Transact-SQL rozšiřuje standard SQL o další funkce, které nejsou součástí standardu SQL.

Ačkoli je Transact-SQL (a SQL Server) nejběžněji známý jako věc Microsoftu, ve skutečnosti je výsledkem partnerství mezi Microsoftem a Sybase, které začalo v roce 1987. Toto partnerství bylo zrušeno v roce 1994. Poté byl T-SQL nadále zachován. podporovány databázovými produkty vydanými oběma společnostmi, nicméně každá společnost vyvíjela své databázové produkty svým vlastním směrem. Proto existují určité rozdíly mezi Sybase T-SQL a Microsoft T-SQL.

Transact-SQL je ústředním prvkem SQL Serveru. Většina operací na serveru SQL se provádí pomocí T-SQL. To platí i v případě, že používáte nástroj GUI (jako je SSMS nebo DBeaver) a ve skutečnosti neprovádíte žádné programování. Kdykoli použijete aplikaci k interakci se serverem SQL Server, aplikace použije T-SQL v zákulisí k provedení zadaného úkolu.

Ale SQL Server není jediný systém pro správu databází, který podporuje Transact-SQL. Microsoft Azure SQL Database také podporuje T-SQL. Většina funkcí T-SQL, které aplikace používají, je plně podporována v Microsoft SQL Server i Azure SQL Database (i když existují určité výjimky).

Funkce T-SQL

Některé z funkcí T-SQL zahrnují:

  • Procedurální programování
  • Místní proměnné
  • Různé podpůrné funkce pro zpracování řetězců, zpracování data, matematiku atd.
  • Změny na DELETE a UPDATE prohlášení. Zejména umožňují přidání klauzule FROM, která umožňuje zahrnout spojení.
  • T-SQL má BULK INSERT příkaz, který umožňuje importovat datový soubor do databázové tabulky nebo zobrazení v uživatelem zadaném formátu.

Jednou z hlavních výhod výše uvedených rozšíření je, že máte mnohem větší programovatelnost při použití T-SQL vs SQL. Uložené procedury vám například umožňují začlenit programovací logiku do vaší databáze. Uložené proceduře můžete předat jeden nebo více parametrů a uložená procedura vrátí výstup, který se liší v závislosti na hodnotách parametrů.

O příkazu GO

Každý, kdo používal T-SQL, pravděpodobně zná GO příkaz. Toto klíčové slovo je často umístěno na konci skupiny příkazů.

Nicméně GO příkaz není ve skutečnosti součástí Transact-SQL. Ve skutečnosti GO příkaz nemůže ani zabírat stejný řádek jako příkaz Transact-SQL.

GO je jedním z příkazů, které rozpozná sqlcmd a osql nástroje a také editor kódu SQL Server Management Studio pro usnadnění čitelnosti a provádění dávek a skriptů. GO příkaz signalizuje konec dávky příkazů Transact-SQL obslužným programům serveru SQL Server.

Nástroje SQL Server interpretují GO jako signál, že by měli odeslat aktuální dávku příkazů Transact-SQL do instance SQL Server. Aktuální dávka výpisů se skládá ze všech výpisů zadaných od posledního GO , nebo od začátku ad hoc relace nebo skriptu, pokud se jedná o první GO .

Další proprietární rozšíření SQL

Transact-SQL není jediným rozšířením standardu SQL. Různé databázové systémy mají svá vlastní rozšíření. Například Oracle používá proprietární procedurální jazyk zvaný PL/SQL a PostgreSQL používá procedurální jazyk zvaný PL/pgSQL.

Ačkoli proprietární rozšíření SQL mají své výhody (například rozšířenou funkčnost), mají své nevýhody. Jednou z hlavních nevýhod je, že mohou věci zkomplikovat, pokud někdy potřebujete přenést databázi z jednoho systému do druhého. Pokud se například vaše organizace náhle rozhodne, že bude používat Oracle místo SQL Serveru, možná budete muset projít veškerý kód SQL Server a přepsat jej pro Oracle. To také vyžaduje, abyste se rychle seznámili se syntaxí obou systémů.


  1. Výhody a nevýhody používání SqlCommand Prepare v C#?

  2. Spouštění souborů MySQL *.sql v PHP

  3. Jak migrovat databáze na váš Reseller Server

  4. MySQL SELECT posledních pár dní?