Oto krótki przegląd różnicy między SQL a T-SQL (Transact-SQL). Nie tyle różnice jako takie, ale bardziej wyjaśnienie T-SQL i jego umiejscowienia w stosunku do SQL.
Jeśli zajmowałeś się tworzeniem lub administrowaniem bazami danych, prawdopodobnie znasz SQL. SQL, co oznacza Structured Query Language, to standardowy język zapytań do pracy z bazami danych. Większość głównych systemów zarządzania relacyjnymi bazami danych, takich jak MySQL, Oracle, SQL Server, PostgreSQL itp., obsługuje SQL w taki czy inny sposób.
Jednak chociaż standard SQL zapewnia jasne specyfikacje, umożliwia również dostawcom baz danych dodawanie własnych rozszerzeń. Dzięki temu dostawcy mogą oferować swoim klientom dodatkowe funkcje i funkcje, które mogą nie być oferowane przez ich konkurentów.
Tutaj wkracza T-SQL.
Co to jest Transact-SQL?
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.
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. Partnerstwo to zostało rozwiązane w 1994 roku. Po tym, T-SQL nadal był obsługiwane 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.
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).
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.
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 wyciągów.
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.