Database
 sql >> Datenbank >  >> RDS >> Database

Was ist T-SQL?

Transact-SQL, oft mit T-SQL oder sogar TSQL abgekürzt, ist die proprietäre Erweiterung von Microsoft und Sybase zu SQL. Transact-SQL erweitert den SQL-Standard um zusätzliche Funktionen, die nicht im SQL-Standard enthalten sind.

Hier ist ein Beispiel für eine einfache T-SQL-Anweisung:

CREATE DATABASE Movies;

Dies ist so einfach wie ein T-SQL-Beispiel nur sein könnte. Dadurch wird eine neue Datenbank namens Movies erstellt .

T-SQL bietet jedoch andere Optionen, die in diese Anweisung aufgenommen werden können, wie z. B. wo sich die Datenbankdateien befinden sollen, die Größe dieser Dateien, wie hoch ihre maximale Größe sein sollte und mehr.

T-SQL-Funktionen

Zu den Features von T-SQL gehören:

  • Prozedurale Programmierung
  • Lokale Variablen
  • Verschiedene Unterstützungsfunktionen für Zeichenfolgenverarbeitung, Datumsverarbeitung, Mathematik usw.
  • Änderungen am DELETE und UPDATE Aussagen. Insbesondere ermöglichen sie das Hinzufügen einer FROM-Klausel, die das Einfügen von Joins ermöglicht.
  • T-SQL hat einen BULK INSERT Anweisung, mit der Sie eine Datendatei in eine Datenbanktabelle importieren oder in einem benutzerdefinierten Format anzeigen können.

Einer der Hauptvorteile der oben genannten Erweiterungen besteht darin, dass Sie viel mehr Programmierbarkeit haben, wenn Sie T-SQL im Vergleich zu SQL verwenden. Gespeicherte Prozeduren ermöglichen es Ihnen beispielsweise, Programmierlogik in Ihre Datenbank zu integrieren. Sie können einen oder mehrere Parameter an eine gespeicherte Prozedur übergeben, und die gespeicherte Prozedur gibt eine Ausgabe zurück, die je nach den Werten der Parameter variiert.

T-SQL enthält außerdem eine große Anzahl integrierter Funktionen sowie unterstützende benutzerdefinierte Funktionen.

Ein Beispiel für eine eingebaute Funktion

Hier ist ein weiteres einfaches Beispiel, diesmal mit einer der integrierten Funktionen von T-SQL:

SELECT GETDATE();

Ergebnis:

2018-05-06 23:30:37.003

In diesem Fall verwenden wir GETDATE() von T-SQL Funktion, um das aktuelle Datum und die Uhrzeit zurückzugeben. Dies wird zusammen mit dem SELECT verwendet -Anweisung, die eine allgemeine SQL-Anweisung zum Zurückgeben von Daten ist.

Wir können diese Funktion auch als Argument für eine andere Funktion verwenden. Hier ist ein Beispiel:

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

Ergebnis:

May

In diesem Fall verwenden wir das T-SQL FORMAT() Funktion, um nur den Monatsteil des Datums zu extrahieren und in einem bestimmten Format darzustellen. Weitere Datums-/Uhrzeitbeispiele finden Sie unter How to Format the Date &Time in SQL Server.

Geschichte von T-SQL

Obwohl Transact-SQL (und SQL Server) am häufigsten als eine Sache von Microsoft bekannt ist, ist es eigentlich das Ergebnis einer Partnerschaft zwischen Microsoft und Sybase, die 1987 begann. Diese Partnerschaft wurde 1994 aufgelöst.

Danach wurde T-SQL weiterhin von Datenbankprodukten unterstützt, die von beiden Unternehmen veröffentlicht wurden, jedoch entwickelte jedes Unternehmen seine Datenbankprodukte in seine eigene Richtung. Daher gibt es einige Unterschiede zwischen Sybase T-SQL und Microsoft T-SQL.

T-SQL und GUI-Tools

Transact-SQL ist von zentraler Bedeutung für SQL Server. Die meisten Vorgänge in SQL Server werden mit T-SQL ausgeführt. Dies gilt auch dann, wenn Sie ein GUI-Tool (wie SSMS oder DBeaver) verwenden und nicht wirklich programmieren. Jedes Mal, wenn Sie eine Anwendung verwenden, um mit SQL Server zu interagieren, verwendet die Anwendung im Hintergrund T-SQL, um die angegebene Aufgabe auszuführen.

Aber SQL Server ist nicht das einzige Datenbankverwaltungssystem, das Transact-SQL unterstützt. Microsoft Azure SQL-Datenbank unterstützt auch T-SQL. Die meisten von Anwendungen verwendeten T-SQL-Funktionen werden sowohl in Microsoft SQL Server als auch in Azure SQL-Datenbank vollständig unterstützt (obwohl es einige Ausnahmen gibt).

Über den GO-Befehl

Jeder, der T-SQL verwendet hat, wird wahrscheinlich mit GO vertraut sein Befehl. Dieses Schlüsselwort wird oft am Ende einer Reihe von Anweisungen platziert. Das erste obige Beispiel könnte beispielsweise auch so geschrieben werden:

CREATE DATABASE Movies;
GO

Aber das GO Der Befehl ist nicht wirklich Teil von Transact-SQL. Tatsächlich ist das GO Befehl kann nicht einmal dieselbe Zeile wie eine Transact-SQL-Anweisung belegen.

GO ist einer der Befehle, die von sqlcmd erkannt werden und osql Dienstprogramme sowie SQL Server Management Studio Code Editor, um die Lesbarkeit und Ausführung von Batches und Skripts zu erleichtern. Das GO signalisiert das Ende eines Stapels von Transact-SQL-Anweisungen an die SQL Server-Dienstprogramme.

SQL Server-Dienstprogramme interpretieren GO als Signal, dass sie den aktuellen Batch von Transact-SQL-Anweisungen an eine Instanz von SQL Server senden sollen. Der aktuelle Stapel von Anweisungen besteht aus allen Anweisungen, die seit dem letzten GO eingegeben wurden , oder seit dem Start der Ad-hoc-Sitzung oder des Skripts, wenn dies das erste GO ist .

Andere proprietäre SQL-Erweiterungen

Transact-SQL ist nicht die einzige Erweiterung des SQL-Standards. Verschiedene Datenbanksysteme haben ihre eigenen Erweiterungen. Beispielsweise verwendet Oracle eine proprietäre prozedurale Sprache namens PL/SQL und PostgreSQL verwendet eine prozedurale Sprache namens PL/pgSQL.

Obwohl proprietäre SQL-Erweiterungen ihre Vorteile haben (z. B. erweiterte Funktionalität), haben sie auch ihre Nachteile. Ein großer Nachteil ist, dass sie die Dinge erschweren können, wenn Sie jemals eine Datenbank von einem System auf ein anderes portieren müssen. Wenn Ihre Organisation beispielsweise plötzlich beschließt, Oracle anstelle von SQL Server zu verwenden, müssen Sie möglicherweise den gesamten SQL Server-Code durchgehen und ihn für Oracle neu schreiben. Dazu müssen Sie sich auch mit der Syntax beider Systeme vertraut machen.