SELECT récupère des lignes depuis une table ou une vue.
Syntaxe
SELECT [ ALL | DISTINCT ] select_expr, ...
[ FROM rel_source
[ EVENT_SEARCH 'message_pattern' ]
[ USE EVENT_INDEX 'index_name' ]
[ [ join_type ] JOIN rel_source ...
[ ON condition | USING (column, ... ) ] ] ... ]
[ WHERE condition ]
[ GROUP BY [ ALL | DISTINCT ] expression, ... ]
[ HAVING condition, ... ]
[ ORDER BY expression, ... [ ASC | DESC ] [ NULLS FIRST | NULLS LAST ] ]
[ LIMIT [ ALL | expression ]
[ OFFSET expression ] ]
Types de paramètres fictifs
select_expr
Toute expression renvoyant une valeur. Il peut s’agir d’une constante, d’un appel de fonction, d’un agrégat, d’une fenêtre, ou de l’expression spéciale *. Il s’agit de la partie de la requête qui spécifie la sortie de l’instruction SELECT ; en algèbre relationnelle, elle est connue sous le nom de projection.
Une corrélation (un nom de table ou un alias) ou une expression DQL entre parenthèses.
join_type
Le type de jointure SQL, tel que INNER ou LEFT. Les jointures INNER sont entièrement prises en charge. Les jointures OUTER et CROSS peuvent nécessiter une condition WHERE. Les jointures LEFT et RIGHT sont également prises en charge si la condition est une expression d’équijointure : une comparaison d’égalité telle que <EXPRESSION_1> = <EXPRESSION_2> où les expressions référencent des colonnes de tables différentes et où les types de sortie des deux expressions sont identiques. Une expression USING effectuant une JOIN sur une seule colonne fonctionne également.
condition
Une expression évaluée et interprétée implicitement comme ayant un résultat booléen.
expression
Une expression de valeur. Consultez la section Expressions et opérateurs pour en savoir plus et voir des exemples.
Évaluation
SELECT récupère des lignes depuis zéro ou plusieurs tables. Le traitement général de SELECT est le suivant :
Tous les éléments de FROM sont calculés. Si plusieurs éléments sont spécifiés, ils sont joints entre eux en utilisant le type de jointure spécifié.
Si la clause WHERE est spécifiée, les lignes ne satisfaisant pas la condition sont éliminées de la sortie.
Si la clause GROUP BY est spécifiée ou si des appels de fonctions d’agrégation sont présents dans selectExpr, la sortie est regroupée en ensembles de lignes correspondant à une ou plusieurs valeurs, et les agrégats sont calculés. Si HAVING est présent, les lignes ne satisfaisant pas sa condition sont éliminées de la sortie.
Les lignes de sortie effectives sont calculées à l’aide de selectExpr.
SELECT DISTINCT élimine les lignes en double du résultat.
Si la clause ORDER BY est spécifiée, les lignes renvoyées sont triées dans l’ordre indiqué.
Si la clause LIMIT ou OFFSET est spécifiée, les lignes n’appartenant pas au sous-ensemble spécifié sont éliminées.
Le système peut exécuter la requête de toute manière garantissant la production des résultats spécifiés par cet ordre.
Alias
Les alias sont des noms de substitution pour les expressions de sortie ou les éléments FROM. Un alias est utilisé par souci de concision ou pour lever toute ambiguïté dans les auto-jointures (où la même table est parcourue plusieurs fois).
SELECT*FROMmy_long_hosts_table_nameashosts
Lorsqu’un alias est fourni dans un élément FROM, il masque complètement le nom réel de la table ou de la fonction. Dans l’exemple ci-dessus, le reste de l’expression DQL doit faire référence à my_long_hosts_table_name sous le nom hosts.
Ordinaux
Les expressions des clauses GROUP BY et ORDER BY peuvent être des noms de colonnes, des expressions arbitraires formées à partir des colonnes d’entrée, ou le nom ou le numéro ordinal d’une expression de sortie (une expression SELECT). Les ordinaux des expressions de sortie sont indexés à partir de 1.
Par exemple, la sortie de cette requête est triée d’abord par ex3, puis ex2, puis ex1 :
SELECTex1,ex2,ex3FROMtableORDERBY3,2,1;
UNION
UNION combine les résultats de deux ou plusieurs expressions DQL en une seule table de sortie.
Syntaxe
DQL_expression UNION [ ALL ] DQL_expression ...
[ ORDER BY expressions [ ASC | DESC ] ]
[ LIMIT [ ALL | expression ]
[ OFFSET expression] ]
Types de paramètres fictifs
DQL_expression
Une instruction de requête, telle qu’une instruction SELECT.
L’opérateur UNION supprime les lignes en double du résultat. Pour conserver les lignes en double, utilisez UNION ALL :
Toutes les sous-requêtes d’un UNION doivent avoir le même schéma de sortie. Une requête contenant une requête UNION ne peut comporter qu’une seule expression ORDER BY et LIMIT, toutes deux devant apparaître à la fin. Les UNION chaînés ne peuvent comporter qu’une seule expression ORDER BY et LIMIT à la fin.
WITH
WITH permet d’écrire des instructions auxiliaires à utiliser dans une requête plus large.
Les instructions WITH, souvent appelées expressions de table communes ou CTE, peuvent être considérées comme des tables temporaires définies pour une seule requête. Chaque instruction auxiliaire d’une clause WITH peut être toute expression DQL, et la clause WITH elle-même est attachée à une instruction principale qui peut également être toute expression DQL sans WITH. Les instructions auxiliaires suivantes peuvent référencer des corrélations aliasées dans les instructions auxiliaires précédentes.
Une instruction de requête, telle qu’une instruction SELECT.
Les instructions de modification de données telles que INSERT, UPDATE et DELETE ne sont pas prises en charge dans WITH.
Chaque requête aliasée peut également spécifier son schéma de sortie et ses noms de colonnes.
CREATE
DDSQL permet aux utilisateurs de créer des tables temporaires, d’y insérer des données, et de les interroger et référencer. Ces tables ne sont pas persistées entre les sessions.
L’instruction INSERT de DDSQL suit la norme SQL. DDSQL autorise uniquement les utilisateurs à insérer des données dans des tables temporaires créées avec l’instruction CREATE, et non dans les sources de données en aval.
Bien que l'instruction SHOW fasse partie de la norme SQL, les noms des paramètres d'exécution sont expérimentaux. Ces paramètres sont susceptibles d'être renommés, retypés ou abandonnés à l'avenir.
Lors de l’exécution de requêtes, DDSQL référence des paramètres d’exécution (variables d’environnement) qui ne sont pas spécifiés dans l’instruction de requête elle-même, tels que l’intervalle par défaut à utiliser pour les requêtes de métriques si aucun BUCKET BY n’est spécifié, ou l’horodatage de début et de fin d’une requête.
L’instruction SHOW affiche les valeurs de ces variables.
Syntaxe
SHOW(ALL|parameter)
SHOW ALL affiche tous les paramètres d’exécution disponibles dans le système DDSQL, et SHOW <PARAMETER> affiche uniquement le paramètre spécifié.
SET
Pour modifier un paramètre d’exécution, utilisez l’instruction SET.
Syntaxe
SETvariableName=expression
1
2
rulesets:- %!s(<nil>) # Rules to enforce .
Request a personalized demo
Commencer avec Datadog
Ask AI
AI-generated responses may be inaccurate. Verify important info.