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

Co je T-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.

Zde je příklad jednoduchého příkazu T-SQL:

CREATE DATABASE Movies;

To je tak jednoduché, jak by mohl příklad T-SQL dostat. Tím se vytvoří nová databáze s názvem Movies .

T-SQL však poskytuje další možnosti, které mají být zahrnuty do tohoto příkazu, například kde by měly být umístěny databázové soubory, velikost těchto souborů, jaká by měla být jejich maximální velikost a další.

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

T-SQL také obsahuje velké množství vestavěných funkcí a také podpůrných funkcí definovaných uživatelem.

Příklad vestavěné funkce

Zde je další základní příklad, tentokrát s použitím jedné z integrovaných funkcí T-SQL:

SELECT GETDATE();

Výsledek:

2018-05-06 23:30:37.003

V tomto případě používáme GETDATE() T-SQL funkce pro vrácení aktuálního data a času. Toto se používá spolu s SELECT příkaz, což je běžný příkaz SQL pro vracení dat.

Tuto funkci můžeme také použít jako argument pro jinou funkci. Zde je příklad:

SELECT FORMAT(GETDATE(), 'MMM');

Výsledek:

May

V tomto případě použijeme T-SQL FORMAT() funkce extrahovat pouze část měsíce z data a prezentovat ji v určitém formátu. Další příklady data/času můžete vidět v Jak formátovat datum a čas na serveru SQL.

Historie T-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.

V návaznosti na to byl T-SQL nadále podporován 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.

Nástroje T-SQL a GUI

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 v zákulisí použije T-SQL 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).

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 dávky příkazů. Například první příklad výše by mohl být také napsán takto:

CREATE DATABASE Movies;
GO

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. Příklad Oracle Dynamic SQL pro vložení záznamu pomocí DBMS_SQL

  2. úloha cron k odstranění starých dat z postgresu na debianu

  3. Jak zrušit identitu sloupce v tabulce SQL Server - SQL Server / Výukový program T-SQL 44

  4. Získejte tabulku a sloupec vlastnící sekvenci