Diese Seite wurde mit KI-Unterstützung aus dem Englischen übersetzt. Bei Abweichungen ist die englische Version maßgeblich.
Lexikalische Struktur
Siehe auch:
[ StackQL-Ressourcenhierarchie ] [ Schlüsselwörter ] [ Datentypen ] [ DESCRIBE ]
Die lexikalische Struktur und Grammatik von StackQL orientiert sich an der Sprachimplementierung von MySQL (einer Adaption des ANSI-SQL-92-Standards) mit einigen Erweiterungen. StackQL-Anweisungen dienen dazu, Cloud-Ressourcen abzufragen (mit der SELECT-Grammatik) oder Infrastruktur mit standardmäßigen Data-Manipulation-Language-Anweisungen (DML) wie INSERT, UPDATE, REPLACE und DELETE zu erstellen, zu ändern oder zu löschen. Darüber hinaus sind Nicht-DML-Operationen, etwa das Starten einer Instanz oder das Abrufen oder Ablegen eines Objekts in einem Bucket in AWS S3, als integrierte Provider-Prozeduren implementiert (vergleichbar mit Stored Procedures in einem DBMS). Integrierte Provider-Prozeduren werden mit der EXEC-Anweisung aufgerufen.
Die domänenspezifische SQL-Sprache von StackQL ermöglicht sowohl deklarative als auch prozedurale Infrastrukturprogrammierung.
Syntax
StackQL-Operationen bestehen aus einer oder mehreren Anweisungen, die mit einem Semikolon (;) abgeschlossen werden. Anweisungen enthalten Schlüsselwörter, Bezeichner, Parameter und Werte; eine beispielhafte StackQL-Anweisung zum Erstellen eines 10-GB-Laufwerks in GCP wäre:
INSERT INTO google.compute.disks (project, zone, name, sizeGb)
SELECT 'myProject', 'australia-southeast1-a', 'my10GbDisk', 10;
Im obigen Beispiel sind INSERT, INTO und SELECT Schlüsselwörter, google.compute.disks ist ein Bezeichner, project, zone, name, sizeGb sind Parameter und 'myProject', 'australia-southeast1-a', 'my10GbDisk', 10 sind Werte.
Schlüsselwörter
Bei Schlüsselwörtern wird nicht zwischen Groß- und Kleinschreibung unterschieden, INSERT und insert werden also gleich behandelt; gemäß Konvention werden sie jedoch häufig großgeschrieben. Eine vollständige Liste der Schlüsselwörter finden Sie im Abschnitt Schlüsselwörter.
Bezeichner
Bezeichner sind Symbole, die Objekte in der Ressourcenhierarchie eines Cloud-Anbieters repräsentieren. Bezeichner bestehen aus mehreren Teilen; weitere Informationen zu Bezeichnern finden Sie im Thema StackQL-Ressourcenhierarchie.
Parameter und Werte
Parameter werden durch die Ressource festgelegt; sie lassen sich mit einer DESCRIBE-Anweisung für eine bestimmte Ressource eines Cloud-Anbieters ermitteln. Werte sind typisierte skalare oder komplexe Objekte, die Parametern zugeordnet sind. Weitere Informationen zu Parametern und Werten finden Sie in den Themen DESCRIBE und Datentypen.
Variablen
Ein Bezeichner mit Dollar-Präfix wie $region dereferenziert eine mit SET zugewiesene Sitzungsvariable; er wird durch den typisierten Wert der Variablen ersetzt, bevor die Anweisung geplant wird. Ein in einfache Anführungszeichen gesetztes '$region' ist ein String-Literal. In einer FROM-Klausel wird eine $variable zu einem Relationsnamen aufgelöst, und IDENTIFIER($variable) wird an Ausdruckspositionen zu einem Spaltennamen aufgelöst. Ein in doppelte Anführungszeichen gesetzter Pfad mit Dollar-Präfix wie "$.auth.aws.password" ist ein Laufzeitkonfigurationsziel, das von SET und UNSET akzeptiert wird. Sitzungsvariablen sind ab StackQL v1.0 verfügbar, siehe Sitzungsvariablen.
Operatoren
|| ist der Operator für die String-Verkettung und bindet stärker als Vergleichsoperatoren. OR ist die boolesche Disjunktion. StackQL-Releases vor v1.0 haben || als OR tokenisiert.
Kommentare
StackQL unterstützt mehrzeilige Kommentare und Inline-Kommentare innerhalb von StackQL-Anweisungen; Beispiele für Kommentare sind nachfolgend dargestellt:
/* This
Is a
Multiline
Comment
*/
--This is an inline comment