Aller au contenu principal
Page traduite

Cette page a été traduite de l'anglais avec l'aide de l'IA. En cas de divergence, la version anglaise fait référence.

Structure lexicale

Voir aussi :
[ Hiérarchie des ressources StackQL ] [ Mots-clés ] [ Types de données ] [ DESCRIBE ]

La structure lexicale et la grammaire de StackQL sont calquées sur l'implémentation du langage de MySQL (une adaptation de la norme ANSI SQL-92), avec quelques extensions. Les instructions StackQL servent à interroger des ressources cloud (avec la grammaire SELECT) ou à créer, modifier ou supprimer de l'infrastructure à l'aide d'instructions standard du langage de manipulation de données (DML) telles que INSERT, UPDATE, REPLACE et DELETE. De plus, les opérations hors DML, par exemple démarrer une instance, ou lire ou écrire un objet dans un bucket AWS S3, sont implémentées sous forme de procédures de provider intégrées (comparables aux procédures stockées d'un SGBD). Les procédures de provider intégrées sont appelées avec l'instruction EXEC.

Le langage dédié SQL de StackQL permet une programmation de l'infrastructure aussi bien déclarative que procédurale.


Syntaxe​

Les opérations StackQL se composent d'une ou de plusieurs instructions terminées par un point-virgule (;). Les instructions comprennent des mots-clés, des identifiants, des paramètres et des valeurs ; voici un exemple d'instruction StackQL qui crée un disque de 10 GB dans GCP :

INSERT INTO google.compute.disks (project, zone, name, sizeGb)
SELECT 'myProject', 'australia-southeast1-a', 'my10GbDisk', 10;

Dans l'exemple ci-dessus, INSERT, INTO et SELECT sont des mots-clés, google.compute.disks est un identifiant, project, zone, name, sizeGb sont des paramètres, et 'myProject', 'australia-southeast1-a', 'my10GbDisk', 10 sont des valeurs.

Mots-clés​

Les mots-clés ne sont pas sensibles à la casse : INSERT et insert sont traités de manière équivalente, mais par convention ils sont souvent écrits en majuscules. La liste complète des mots-clés se trouve dans la section Mots-clés.

Identifiants​

Les identifiants sont des symboles qui représentent des objets dans la hiérarchie des ressources d'un fournisseur cloud. Les identifiants se composent de plusieurs parties ; pour plus d'informations sur les identifiants, consultez la rubrique Hiérarchie des ressources StackQL.

Paramètres et valeurs​

Les paramètres sont définis par la ressource ; une instruction DESCRIBE permet de les trouver pour une ressource donnée d'un fournisseur cloud. Les valeurs sont des objets typés, scalaires ou complexes, qui correspondent aux paramètres. Pour plus d'informations sur les paramètres et les valeurs, consultez les rubriques DESCRIBE et Types de données.

Variables​

Un identifiant préfixé par un dollar, tel que $region, déréférence une variable de session affectée avec SET ; il est remplacé par la valeur typée de la variable avant que l'instruction ne soit planifiée. Un '$region' entre guillemets simples est un littéral de chaîne de caractères. Dans une clause FROM, une $variable se résout en nom de relation, et IDENTIFIER($variable) se résout en nom de colonne dans les positions d'expression. Un chemin entre guillemets doubles et préfixé par un dollar, tel que "$.auth.aws.password", est une cible de configuration d'exécution acceptée par SET et UNSET. Les variables de session sont disponibles à partir de StackQL v1.0, consultez Variables de session.

Opérateurs​

|| est l'opérateur de concaténation de chaînes et a une priorité plus élevée que les opérateurs de comparaison. OR est la disjonction booléenne. Les versions de StackQL antérieures à v1.0 reconnaissaient || comme l'unité lexicale OR.

Commentaires​

StackQL prend en charge les commentaires sur plusieurs lignes et les commentaires en ligne dans les instructions StackQL ; des exemples de commentaires sont présentés ci-dessous :

/* This
Is a
Multiline
Comment
*/

--This is an inline comment