Transact-SQL, często skracany do T-SQL lub nawet TSQL, jest zastrzeżonym rozszerzeniem SQL firmy Microsoft i Sybase. Transact-SQL rozszerza standard SQL o dodatkowe funkcje, które nie są zawarte w standardzie SQL.
Oto przykład prostej instrukcji T-SQL:
CREATE DATABASE Movies;
Jest to tak proste, jak mógłby być przykład T-SQL. Spowoduje to utworzenie nowej bazy danych o nazwie Movies
.
Jednak T-SQL zapewnia inne opcje, które należy uwzględnić w tej instrukcji, takie jak lokalizacja plików bazy danych, rozmiar tych plików, jaki powinien być ich maksymalny rozmiar i inne.
Funkcje T-SQL
Niektóre funkcje T-SQL obejmują:
- Programowanie proceduralne
- Zmienne lokalne
- Różne funkcje pomocnicze do przetwarzania ciągów, przetwarzania dat, matematyki itp.
- Zmiany w
DELETE
iUPDATE
sprawozdania. W szczególności pozwalają na dodanie klauzuli FROM, która umożliwia dołączanie złączeń. - T-SQL ma
BULK INSERT
instrukcja, która pozwala zaimportować plik danych do tabeli bazy danych lub wyświetlić w formacie określonym przez użytkownika.
Jedną z głównych zalet powyższych rozszerzeń jest znacznie większa programowalność podczas korzystania z T-SQL w porównaniu z SQL. Procedury składowane umożliwiają na przykład włączenie logiki programowania do bazy danych. Możesz przekazać jeden lub więcej parametrów do procedury składowanej, a procedura składowana zwróci dane wyjściowe, które różnią się w zależności od wartości parametrów.
T-SQL zawiera również dużą liczbę wbudowanych funkcji, a także obsługuje funkcje zdefiniowane przez użytkownika.
Przykład wbudowanej funkcji
Oto kolejny podstawowy przykład , tym razem wykorzystujący jedną z wbudowanych funkcji T-SQL:
SELECT GETDATE();
Wynik:
2018-05-06 23:30:37.003
W tym przypadku używamy funkcji GETDATE()
T-SQL'a funkcja zwracająca aktualną datę i godzinę. Jest używany razem z SELECT
instrukcja, która jest powszechną instrukcją SQL do zwracania danych.
Możemy również użyć tej funkcji jako argumentu dla innej funkcji. Oto przykład:
SELECT FORMAT(GETDATE(), 'MMM');
Wynik:
May
W tym przypadku używamy T-SQL FORMAT()
funkcja wyodrębniania tylko części daty dotyczącej miesiąca i prezentowania jej w określonym formacie. Możesz zobaczyć więcej przykładów daty/godziny w Jak formatować datę i godzinę w SQL Server.
Historia T-SQL
Chociaż Transact-SQL (i SQL Server) jest powszechnie znany jako produkt Microsoftu, w rzeczywistości jest to wynik partnerstwa między Microsoft i Sybase, które rozpoczęło się w 1987 roku. To partnerstwo zostało rozwiązane w 1994 roku.
Następnie T-SQL był nadal wspierany przez produkty bazodanowe wydane przez obie firmy, jednak każda firma rozwijała swoje produkty bazodanowe we własnym kierunku. Dlatego istnieją pewne różnice między Sybase T-SQL i Microsoft T-SQL.
Narzędzia T-SQL i GUI
Transact-SQL ma kluczowe znaczenie dla SQL Server. Większość operacji w SQL Server jest wykonywana przy użyciu T-SQL. Dzieje się tak, nawet jeśli używasz narzędzia GUI (takiego jak SSMS lub DBeaver) i nie robisz żadnego programowania. Za każdym razem, gdy używasz aplikacji do interakcji z SQL Server, aplikacja używa T-SQL w tle do wykonania określonego zadania.
Ale SQL Server nie jest jedynym systemem zarządzania bazami danych, który obsługuje Transact-SQL. Baza danych Microsoft Azure SQL obsługuje również T-SQL. Większość funkcji T-SQL używanych przez aplikacje jest w pełni obsługiwana zarówno w Microsoft SQL Server, jak i Azure SQL Database (chociaż istnieją pewne wyjątki).
Informacje o poleceniu GO
Każdy, kto używał T-SQL, prawdopodobnie zna GO
Komenda. To słowo kluczowe jest często umieszczane na końcu serii instrukcji. Na przykład pierwszy przykład powyżej może być napisany tak:
CREATE DATABASE Movies; GO
Jednak GO
polecenie nie jest w rzeczywistości częścią Transact-SQL. W rzeczywistości GO
polecenie nie może nawet zajmować tego samego wiersza co instrukcja Transact-SQL.
GO
to jedno z poleceń rozpoznawanych przez sqlcmd i osql narzędzia, a także edytor kodu SQL Server Management Studio, który ułatwia czytelność i wykonywanie wsadów i skryptów. GO
polecenie sygnalizuje koniec partii instrukcji Transact-SQL do narzędzi SQL Server.
Narzędzia SQL Server interpretują GO
jako sygnał, że powinni wysłać bieżącą partię instrukcji Transact-SQL do wystąpienia programu SQL Server. Bieżąca partia wyciągów składa się ze wszystkich wyciągów wprowadzonych od ostatniego GO
, lub od początku sesji ad hoc lub skryptu, jeśli jest to pierwszy GO
.
Inne zastrzeżone rozszerzenia SQL
Transact-SQL nie jest jedynym rozszerzeniem standardu SQL. Różne systemy baz danych mają swoje własne rozszerzenia. Na przykład Oracle używa zastrzeżonego języka proceduralnego o nazwie PL/SQL, a PostgreSQL używa języka proceduralnego o nazwie PL/pgSQL.
Chociaż zastrzeżone rozszerzenia SQL mają swoje zalety (takie jak rozszerzona funkcjonalność), mają też swoje wady. Jedną z głównych wad jest to, że mogą utrudnić sprawę, jeśli kiedykolwiek będziesz musiał przenieść bazę danych z jednego systemu do drugiego. Na przykład, jeśli Twoja organizacja nagle zdecyduje, że będzie używać Oracle zamiast SQL Server, może być konieczne przejrzenie całego kodu SQL Server i przepisanie go dla Oracle. Wymaga to również zaznajomienia się ze składnią obu systemów.