Einführung in Transact-SQL (T-SQL)
- 12-09-2022
- Toanngo92
- 0 Comments
Mục lục
Einführung in Transact SQL (T-SQL)
SQL ist eine gemeinsame Sprache, die in der Datenbankwelt verwendet wird. Die meisten modernen RDBMS-Produkte verwenden eine Art SQL-Dialekt als primäre Abfragesprache. SQL kann verwendet werden, um Objekte wie Tabellen auf einem Datenbankserver zu erstellen oder zu zerstören und um diese Objekte zu manipulieren, z. B. um Daten hinzuzufügen, zu bearbeiten, zu löschen oder Daten von ihnen abzurufen.
Transact-SQL (T-SQL) ist eine von Microsoft übernommene und entwickelte SQL-Version namens T-SQL. Diese Sprache wurde implementiert, um eine standardisierte Art der Kommunikation mit Datenbanken zu implementieren.
Transact-SQL ist eine leistungsstarke Sprache, die Funktionen wie Datentypen, temporäre Objekte und erweiterte gespeicherte Prozeduren bereitstellt. Scrollbare Cursor, bedingte Behandlung, Transaktionssteuerung, Ausnahmen und Fehlerbehandlung werden ebenfalls von Transact-SQL unterstützt.
T-SQL in SQL Server 2019 verbessert die Leistung gegenüber früheren Versionen, erweitert die Funktionen und unterstützt viele erweiterte Funktionen. Zu den Verbesserungen gehören Skalarfunktionen, Paginierung, Sequenzierung, Metadatenzuweisung und bessere Unterstützung bei der Fehlerbehandlung…
Die folgenden Beispiele verwenden alle AdventureWorks2019, installieren Sie AdventureWorks2019 auf dem Computer, um die Beispiele zu testen.
Betrachten Sie die folgende Transact-SQL-Anweisung, bei der es sich um eine SELECT-Anweisung handelt, die verwendet wird, um die Daten der loginID-Spalte der Employee-Tabelle mit JobTitle als „Design Engineer“ in der Employee-Tabelle abzurufen:
USE AdventureWorks2019 SELECT LoginID FROM HumanResources.Employee WHERE JobTitle = 'Design Engineer'
T-SQL enthält viele syntaktische Elemente, die von den meisten Anweisungen verwendet werden oder sich auf diese auswirken. Zu diesen Elementen gehören Datentypen, Prädikate, Funktionsvariablen, Ausdrücke, Ablaufsteuerung, Kommentare und Stapeltrennzeichen.
Liste der T-SQL-Anweisungstypen
SQL Server unterstützt drei Arten von T-SQL-Anweisungen: DDL, DML und DCL
Datendefinitionssprache (DDL)
DDL, das Teil des RDBMS ist, wird verwendet, um alle Eigenschaften der Daten zu definieren und zu verwalten, einschließlich Zeilenlayout, Spaltendefinitionen, Primärschlüsselspalten, Dateispeicherorte und Speicher. Die DDL-Befehle werden verwendet, um die Struktur von Tabellen und Objekten wie View-Trigger, Speicherprozeduren usw. zu erstellen und zu ändern. Für jedes Objekt gibt es Schlüsselwörter CREATE , ALTER , DROP . Beispiel: CREATE TABLE, ALTER TABLE, DROP TABLE
Die meisten DDL-Anweisungen entsprechen einem Standard, wobei Objektname der Name der Tabelle, der Ansicht, des Triggers, der gespeicherten Prozedur … wie folgt ist:
- CREATE Objektname
- ALTER Objektname
- DROP Objektname
Datenmanipulationssprache (DML)
DML wird zum Auswählen (Abrufen), Einfügen (Hinzufügen), Aktualisieren (Aktualisieren) oder Löschen (Löschen) von Daten in durch DDL definierten Objekten (Objects) verwendet. Alle Benutzer in der Datenbank können diese Anweisungen in Operationen auf der Datenbank verwenden.
DML-Anweisungen, die die folgenden Schlüsselwörter enthalten:
- AUSWÄHLEN
- EINFÜGUNG
- AKTUALISIEREN
- LÖSCHEN
Data Control Language (DCL)
Daten sind ein wichtiger Bestandteil der Datenbank, daher sollten geeignete Schritte unternommen werden, um sicherzustellen, dass keine ungültigen Benutzer Zugriff auf die Daten haben. Eine Datensteuerungssprache wird verwendet, um Berechtigungen für Datenbankobjekte zu steuern. Berechtigungen werden mit GRANT-, REVOKE- und DENY-Anweisungen gesteuert. DCL-Anweisungen werden auch verwendet, um die Datenbank zu sichern. Die drei grundlegenden DCL-Anweisungen lauten wie folgt:
- GEWÄHRLEISTUNG (Zuweisung)
- REVOKE (Rückruf)
- VERWEIGERN (ablehnen)
Datentypen
Der Datentyp ist ein Attribut, das den Typ der Daten oder Objekte definiert, die enthalten sein können. Datentypen müssen für Spalten, Parameter, Variablen, Funktionsrückgabedatenwerte und gespeicherte Prozeduren mit Rückgabe bereitgestellt werden. T-SQL enthält eine Reihe von Datentypen wie varchar, text, int … Alle in SQL Server gespeicherten Daten müssen mit einem der grundlegenden Datentypen kompatibel sein.
Objekte haben Datentypen:
- Spalten (Spalten) repräsentieren in Tabellen und Ansichten
- Parameter in gespeicherten Prozeduren
- Variablen (Variablen)
- Funktion, die einen oder mehrere Werte mit einem bestimmten Datentyp zurückgibt
- Gespeicherte Prozeduren, die Code vom Typ Integer zurückgeben
SQL Server unterstützt 3 Arten von Datentypen wie folgt:
Systemdefinierte Datentypen
Dieser Datentyp wird von SQL Server bereitgestellt, wie in der folgenden Tabelle dargestellt:
Kategorie | Datentyp | Spalte dieses Datentyps |
Exakte Numerik (exakte Zahlen/natürliche Zahlen) | int | Belegt 4 Bytes Speicher, zum Speichern von Ganzzahlwerten, kann Werte von -2^31 (-2.147.483.648) bis 2^31-1 (2.147.483.647) speichern |
klein | Belegt 2 Byte Speicher, kann ganzzahlige Werte von -32.768 bis 32m.767 speichern | |
winzig | Belegt 1 Byte Speicher, enthält Werte von 0 bis 255 | |
groß | Benötigt 8 Byte Speicher. Enthält Daten von -2^63 bis 2^63-1 | |
nummerisch | hat eine feste Genauigkeit und Skalierung | |
Geld | belegt 8 Byte Speicherplatz. Stellt Währungsdatenwerte zwischen -2^63/1000 und 2^63-1 dar | |
Ungefähre Zahlen (ungefähre/reelle Zahlen) | schweben | Benötigt 8 Byte Speicher. Zahlendarstellung nach Fließkomma von -1.79E+308 bis 1.79E+38 |
real | Belegt 4 Byte Speicher. Stellt Zahlen nach Gleitkommazahlen von -3,40E+38 bis 3,40E+38 dar | |
Datum (und Uhrzeit | Terminzeit | Stellt Datum und Uhrzeit dar, belegt 8 Bytes im Speicher (2 mal 4 Bytes – Ganzzahl) |
kleinedatetime | Leistung von Datum und Uhrzeit | |
Zeichenkette | verkohlen | Speichern Sie Zeichendaten mit angegebener Länge und Nicht-Unicode |
varchar | Speichert Daten mit variabler Länge und Nicht-Unicode-Zeichen bis zu 8.000 Zeichen | |
Text | Speichert Daten mit variabler Länge und Nicht-Unicode-Zeichen mit einer maximalen Länge von 2^31 – 1 (2.147.483.647) Zeichen | |
nchar | Speichert Unicode-Zeichen mit einer angegebenen Länge | |
nvarchar | Speichert variable Unicode-Zeichendaten. | |
Andere Datentypen | Zeitstempel | Benötigt 8 Byte Speicher. Gespeicherte Werte können automatisch generiert werden, eindeutige binäre numerische Werte generiert und in einer Unix-Zeitstempelsimulationsdatenbank in Echtzeit gespeichert werden. |
binär (n) | Speichert Binärdaten einer bestimmten Länge von bis zu 8000 Bytes. | |
varbinary(n) | Speichert binäre Daten mit variabler Länge, bis zu 8000 Bytes. | |
Bild | Speichert einen variablen Binärwert mit einer maximalen Länge von 2^30-1 (1.073.741.823) Bytes. | |
eindeutige Kennung | Belegt 16 Byte Speicher und generiert automatisch einen eindeutigen Wert, der eine global eindeutige Kennung (GUID) ist. |
Alias-Datentypen (Alias-Datentypen)
Diese Datentypen basieren auf den vom System bereitgestellten Datentypen. Ein Alias-Datentyp wird verwendet, wenn mehrere Tabellen denselben Datentyp in einer Spalte speichern und ähnliche Eigenschaften wie Länge, NULL-Zulässigkeit und Datentyp aufweisen. In solchen Fällen kann ein Alias-Datentyp erstellt werden, der von all diesen Tabellen universell verwendet werden kann.
Alias-Datentypen können über die CREATE TYPE-Anweisung erstellt werden. Die Syntax der CREATE TYPE-Anweisung lautet wie folgt:
CREATE TYPE [schema_name.]type_name FROM base_type [NULL/NOTNULL];
Zum Beispiel:
CREATE TYPE usertype from varchar(20) NOT NULL
Benutzerdefinierte Typen
Benutzer können ihre eigenen Datentypen mithilfe einer Programmiersprache definieren, die von .NET Framework unterstützt wird.
Transact-SQL-Sprachelemente
Transact-SQL-Sprachelemente werden in SQL Server 2019 verwendet, um mit importierten Daten in SQL Server-Datenbanken zu arbeiten. Die Sprachelemente von Transact-SQL umfassen Prädikate, Operatoren, Variablen, Funktionen, Ausdrücke, Ablaufsteuerung und Fehler, Fehler) und Transaktionen, Kommentare und Stapeltrennzeichen.
Prädikate (Prädikat)
Prädikate können als logischer Ausdruck verstanden werden, mit dem ausgewertet wird, ob der Ausdruck TRUE, FALSE oder UNKNOWN zurückgibt.
Die Klauseln in Transact-SQL werden in den folgenden Fällen verwendet:
- Bestimmt, ob ein angegebener Wert mit einem beliebigen Wert in einer Unterabfrage oder einer Liste übereinstimmt
- Geben Sie einen Wertebereich an, der überprüft werden soll
- Wird verwendet, um Zeichen mit einem bestimmten Muster abzugleichen
- Suchen Sie nach genauen oder weniger genauen Übereinstimmungen mit einzelnen Wörtern und Sätzen, Wörtern in einem bestimmten Abstand voneinander oder gewichteten Übereinstimmungen
Beispiel Prädikate Klauseln:
Prädikat | Zum Beispiel |
SELECT PersonType, Title, FirstName,LastName FROM AdventureWorks2019.Person.Person WHERE PersonType IN (‚EM‘,’SC‘) | |
ZWISCHEN | SELECT BusinessEntityID, NationalIDNumber, LoginID, JobTitle, HireDate FROM AdventureWorks2019.HumanResources.Employee WHERE HireDate BETWEEN ’01-01-2010′ AND ’01-01-2013′ |
WIE | SELECT DepartmentID, Name, GroupName, ModifiedDate FROM AdventureWorks2019.HumanResources.Department WHERE Name LIKE ‚P%‘ |
ENTHÄLT | SELECT * FROM AdventureWorks2019.Person.Address WHERE CONTAINS (AddressLine1,’Street‘) |
Betreiber (Operatoren)
Operatoren werden verwendet, um Arithmetik, Vergleiche, Verkettungen oder Zuweisungen von Werten durchzuführen. Beispielsweise können die Daten überprüft werden, um sicherzustellen, dass die Spalte COUNTRY für Kundendaten ausgefüllt ist (oder einen NOT NULL-Wert hat). In Abfragen kann jeder, der die Daten in der Tabelle sehen kann, für die der Operator erforderlich ist, Operationen ausführen. Die entsprechenden Berechtigungen sind erforderlich, bevor die Daten erfolgreich geändert werden können. SQL Server hat sieben Arten von Operatoren:
Operator | Bezeichnung | Beispiel |
Vergleich | Vergleicht einen Wert mit einem anderen Wert, einem Ausdruck | =,<,>,>=,<=,!=,!> |
Logisch | Überprüfung des wahren (logischen) Ergebnisses einer Bedingung | UND, ODER, NICHT |
Arithmetik | Führen Sie arithmetische Operationen wie Addition, Subtraktion, Multiplikation und Division durch | +,-,*,/,% |
Verkettung | Kombiniere 2 Ketten zu einer Schnur | + |
Abtretung | Weisen Sie einer Variablen einen Wert zu | = |
Die Rangfolge der Operatoren:
Befehl | Operator |
Erste | () Klammern |
2 | *, / , % |
3 | + , – |
4 | = , < , > , >= , <= , != , !> |
5 | NICHT |
6 | UND |
7 | ZWISCHEN, IN , ENTHÄLT, WIE ODER |
8 | = |
Beispiel für Operatorvorrang:
DECLARE @Number int; SET @Number = 2 + 2 * (4 + (5 - 3)) SELECT @Number
Das Ergebnis zeigt 14 mit der folgenden Ausführungsreihenfolge an:
1. 2 + 2*(4+(5-3)) 2. 2 + 2*(4+2) 3. 2 + 2*6 4. 2 + 12 5. 14
Funktionen (Funktionen)
Eine Funktion ist eine Reihe von Anweisungen, eine T-SQL-Anweisung besteht aus einer Reihe von Funktionen, die sehr nützlich zum Berechnen oder Arbeiten mit Daten sind. In SQL arbeitet die Funktion mit Daten, gruppiert die Daten, um den angeforderten Wert zurückzugeben, und kann dann die SELECT-Klausel verwenden, um die vom Ausdruck zurückgegebenen Daten abzurufen
Es gibt 4 Arten von Funktionen in SQL Server:
Rowset-Funktionen
In Transact-SQL wird die rowet-Funktion verwendet, um ein Objekt zurückzugeben, das anstelle eines Tabellenverweises verwendet werden kann. Beispielsweise sind OPENDATASOURCE, OPENQUERY, OPENROWSET und OPENXML Rowset-Funktionen.
Aggregatfunktionen
T-SQL bietet eine Reihe von Funktionen zur Unterstützung der Zusammenfassung großer Datenmengen, z. B. SUM, MIN, MAX, AVG, COUNT, COUNTBIG…
Ranking-Funktionen
Viele Aufgaben, wie das Erstellen von Arrays, das Generieren von Ordnungszahlen, das Finden von Rängen usw., können durch die Verwendung der Ranking-Funktionen einfacher und schneller erledigt werden. Beispielsweise sind RANK, DENSE_RANK, NTILE, ROW_NUMBER Rangfolgefunktionen.
Skalare Funktionen
Bei Skalarfunktionen ist die Eingabe ein einzelner Wert und die Ausgabe ebenfalls ein einzelner Wert
Einige Skalarfunktionen in SQL:
Funktionstyp | Beschreibung | Beispiel _ |
Konvertierungsfunktion | Die Konvertierungsfunktion wird verwendet, um den Wert eines Datentyps in einen anderen zu konvertieren. Darüber hinaus kann es verwendet werden, um spezielle Datumsformate zu erhalten. | KONVERTIEREN |
Datums- und Zeitfunktion | Die datetime-Funktion wird verwendet, um mit Datums-Zeit-Daten zu arbeiten, die für die Zeitberechnung nützlich sind | GETDATE, SYSDATETIME, GETUTCDATE, DATEADD, DATEDIFF, JAHR, MONAT, TAG |
Mathematische Funktionen | Mathematische Funktionen führen algebraische Operationen mit numerischen Werten durch. | RAND, RUND, POWER, ABS, ZELLE, BODEN |
Systemfunktionen | SQL Server stellt Systemfunktionen bereit, die Metadaten oder Konfigurationseinstellungen zurückgeben | HOST_ID,HOST_NAME,ISNULL |
String-Funktionen | Zeichenfolgenfunktionen werden verwendet, um Eingaben wie char oder nvarchar zu verarbeiten. Die Ausgabe kann eine Zeichenfolge oder ein numerischer Wert sein | SUBSTRING, LEFT, RIGHT, LEN, DATENLÄNGE, REPLACE, REPLICATE, UPPER, LOWER, RTRIM, LTRIM |
Es gibt auch einige andere skalare Funktionen in SQL Server wie Cursorfunktionen, logische Funktionen, Metadatenfunktionen, Sicherheitsfunktionen…
Variablen (Variablen)
Eine Variable ist ein Objekt, das Datenwerte speichern kann. In T-SQL können Variablen in lokale Variablen und globale Variablen unterteilt werden.
In T-SQL werden lokale Variablen erstellt und zur temporären Speicherung verwendet, wenn SQL-Anweisungen ausgeführt werden. Daten können über lokale Variablen durch SQL-Anweisungen übergeben werden. Dem Namen einer lokalen Variablen wird immer das Schlüsselwort ‚@‘ vorangestellt.
Zum Beispiel:
DECLARE @Search NVARCHAR(30) SET @Search = N'hello'
In früheren Versionen von SQL Server existierte ein Konzept namens globale Variablen, das sich auf integrierte Variablen bezieht, die vom System definiert und verwaltet werden. In SQL Server 2019 werden Substitutionen als Funktionen klassifiziert. Ihnen sind zwei ‚@‘-Zeichen vorangestellt. Die Rückgabewerte dieser Funktionen können mit einer einfachen SELECT-Abfrage abgerufen werden.
Zum Beispiel
SELECT @@LANGUAGE as 'Language'
Sie geben die von SQL Server verwendete Sprache zurück
Einige der Funktionen, die auftreten können:
- @@ERSTES DATE
- @@SPRACHE
- @@LOCK_TIMEOUT
- @@MAX_VERBINDUNGEN
- @@SERVERNAME
- @@AUSFÜHRUNG
Ausdruck (Ausdruck)
Ein Ausdruck ist eine Kombination aus Bezeichnern, Werten und Operatoren, die SQL Server auswerten kann, um ein Ergebnis zu erhalten. Ausdrücke können an vielen verschiedenen Stellen verwendet werden, wenn auf Daten zugegriffen oder diese geändert werden.
Beispiel eines Ausdrucks, der die SELECT-Klausel kombiniert, das aktuelle Jahr erhält und das nächste Jahr berechnet
USE AdventureWorks2019 SELECT SalesOrderID, CustomerID, SalesPersonID, TerritoryID, YEAR(OrderDate) AS CurrentYear, YEAR(OrderDate) + 1 AS NextYear FROM Sales.SalesOrderHeader
Kontrolle von Fluss, Fehlern, Transaktionen
Obwohl transact-SQL in erster Linie eine Datenzugriffssprache ist, unterstützt sie die Ablaufsteuerung für die Ausführung und Fehlererkennung. Die Ablaufsteuerung definiert den Ausführungsablauf von Transact-SQL-Anweisungen, Codeblöcken, benutzerdefinierten Funktionen und Speicherprozeduren.
Allgemeine Flusssteuerungen in T-SQL
Erklärung zur Durchflusskontrolle | Bezeichnung |
ANSONSTEN | Verzweigungssteuerung basierend auf logischer Bedingung |
WÄHREND | Wiederholen Sie Befehle oder Anweisungsblöcke, während die Testbedingung wahr ist |
ANFANG … ENDE | Bereichsdefinition eines T-SQL-Blocks |
VERSUCHEN … FANGEN | Strukturdefinition für Ausnahme- und Fehlerbehandlung |
TRANSAKTION BEGINNEN | Markieren Sie einen Anweisungsblock als Teil einer expliziten Transaktion |
Beispiel für die Verwendung von IF ELSE in T-SQL:
IF DATENAME(weekday, GETDATE()) IN (N'Saturday',N'Sunday') SELECT 'It is a Weekend'; ELSE SELECT 'It is Weekday';
Kommentare
Kommentare sind Zeichenfolgen aus beschreibendem Text, auch bekannt als Kommentare, im Programmcode, die vom Compiler ignoriert werden. Kommentare können in den Quellcode einer Anweisung, eines Codeblocks oder einer Speicherprozedur eingefügt werden. Kommentare erläutern den Zweck des Programms, spezielle Ausführungsbedingungen und bieten Informationen zum Revisionsverlauf…. Syntax:
-- Day la comment inline -- Day la comment inline /*day la comment khoi lenh*/
Chargentrenner
Batch ist ein Satz aus einer oder mehreren T-SQL-Anweisungen, die in einer einzigen Anwendungsausführung gesendet werden. Die Anweisungen in T-SQL in einem Batch werden in eine Ausführungseinheit (eine Ausführung) umgepackt, die als Ausführungsplan bezeichnet wird. Der Prozess der Ausführung der Anweisungssätze innerhalb des Stapels wird als Stapelverarbeitung bezeichnet.
Ein Batchtrennzeichen wird von SQL Server-Clienttools wie SSMS gesteuert, um den Befehl auszuführen. Beispielsweise definieren Sie GO als Batch-Trennzeichen in SSMS.
Beispiel Chargentrenner:
USE AdventureWorks2019 SELECT * FROM HumanResources.Employee GO -- cau lenh tiep theo
Mengen und Prädikatenlogik (Mengen und Prädikatenlogik )
Mengen und Prädikatenlogik sind zwei mathematische Grundlagen, die in SQL Server 2019 verwendet werden. Beide Theorien werden verwendet, um Daten in SQL Server 2019 abzufragen
Mengenlehre (Mengenlehre)
Die Mengenlehre ist eine mathematische Grundlage, die im relationalen Datenbankmodell verwendet wird. Eine Menge ist eine Sammlung verschiedener Objekte, die als Ganzes betrachtet werden. Beispielsweise können alle Angestellten in einer Employee-Tabelle als eine Menge betrachtet werden.
Anwendungen der Mengentheorie | Anwendungen in SQL Server-Abfragen |
Handeln Sie auf einmal am gesamten Set | Fragen Sie die gesamte Tabelle auf einmal ab |
Set-basierte Handhabung und Deklaration | Verwenden Sie Eigenschaften in SQL Server, um bestimmte Daten abzurufen |
Die Elemente in der Menge müssen eindeutig sein | Definieren Sie einen eindeutigen Schlüssel für die Tabelle |
Es gibt keine Sortieranweisungen | Die Ergebnisse der Abfrage werden nicht in beliebiger Reihenfolge abgerufen |
Einer der Mengenoperatoren ist der INTERSECT-Operator. Es gibt die unterschiedlichen Zeilen zurück, die sowohl vom linken als auch vom rechten Eingabeabfrageoperator generiert wurden.
Beispiel für die Verwendung von INTERSECT:
USE AdventureWorks2019 GO SELECT ProductID FROM Production.Product INTERSECT SELECT ProductID FROM Production.WorkOrder;
Prädikatenlogik (Prädikatenlogik)
Weitere logische Prädikatkonzepte finden Sie hier: https://en.wikipedia.org/wiki/Logic_b%E1%BA%ADc_nh%E1%BA%A5t
Die Prädikatenlogik ist ein mathematischer Rahmen, der aus logischen Tests besteht, die ein Ergebnis liefern. Das Ergebnis wird immer als wahr oder falsch angezeigt. In T-SQL basieren Ausdrücke wie WHERE- und CASE-Ausdrücke auf der Prädikatenlogik. Die Prädikatenlogik wird auch in anderen Situationen in T-SQL verwendet
Einige Prädikatenlogiken in T-SQL lauten wie folgt:
- Erzwingen Sie die Vertraulichkeit von Daten mit einer CHECK-Einschränkung
- Flusskontrolle mit der IF .-Anweisung
- Join-Tabellen mit ON .filter
- Filtern Sie Daten in Abfragen mit WHERE- und HAVING-Klauseln
- Stellt bedingte Logik für CASE .-Ausdrücke bereit
- Unterabfrage definieren
Logische Reihenfolge von Operatoren in einer SELECT .-Anweisung
Neben der Syntax der verschiedenen SQL Server-Elemente müssen SQL Server-Benutzer auch wissen, wie die gesamte Abfrage ausgeführt wird. Diese Prozedur ist ein logischer Prozess, der die Abfrage unterbricht und die Abfrage in einer vordefinierten Reihenfolge ausführt. Die SELECT-Anweisung ist eine Abfrage, die verwendet wird, um den logischen Prozess der Ausführung der Abfrage zu erklären.
Syntax der SELECT-Anweisung:
SELECT <select list> FROM <table source> WHERE <search condition> GROUP BY <group by list> HAVING <search condition> ORDER BY <order by list>
Beschreibung der Elemente in der SELECT-Anweisung:
Element | Beschreiben |
SELECT <Auswahlliste> | Definieren Sie die abzurufenden Spalten |
VON <Tabellenquelle> | Definition der abgefragten Tabelle |
WHERE <Suchbedingung> | Zeilen nach Prädikat filtern |
GROUP BY <Gruppieren nach Liste> | Zeilen nach Gruppe sortieren |
HAVING <Suchbedingung> | Gruppen nach Prädikat filtern |
ORDER BY <Ordnen nach Liste> | Ausgabe sortieren. |
Betrachten Sie das folgende Beispiel:
USE AdventureWorks2019 SELECT SalesPersonID,YEAR(OrderDate) AS OrderYear FROM Sales.SalesOrderHeader WHERE CustomerID=30084 GROUP BY SalesPersonID, YEAR(OrderDate) HAVINg COUNT(*) > 1 ORDER BY SalesPersonID,OrderYear;
Im obigen Beispiel ist die Ausführungsreihenfolge der SELECT-Anweisung wie folgt:
- Die FROM-Klausel wird ausgewertet, um die abzufragende Quelltabelle zu bestimmen
- Die WHERE-Klausel wird ausgewertet, um die Zeilen in der Quelltabelle zu filtern, die durch das nach der WHERE-Klausel erwähnte Prädikat definiert ist.
- Als nächstes wird die GROUP BY-Klausel ausgewertet. Diese Klausel sortiert die gefilterten Daten in der WHERE .-Klausel
- Die HAVING-Klausel wird ausgewertet
- Die SELECT-Klausel wird ausgeführt, um anzugeben, welche Spalten dasselbe Abfrageergebnis ausgeben sollen
- Schließlich wird die Anweisung ORDER BY ausgeführt, um die Ausgabe anzuzeigen
USE AdventureWorks2019 -- thu tu thuc thi cua cau lenh select 5.SELECT SalesPersonID,YEAR(OrderDate) AS OrderYear FROM 1.Sales.SalesOrderHeader 2.WHERE CustomerID=30084 3.GROUP BY SalesPersonID, YEAR(OrderDate) 4.HAVINg COUNT(*) > 1 6.ORDER BY SalesPersonID,OrderYear;