Zum Hauptinhalt springen
Übersetzte Seite

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