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
aUPDATE
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ů.