Syntaxe de BigQuery

BigQuery est l'entrepôt de données de Google, entièrement géré et sans serveur, qui permet aux entreprises de stocker et de traiter de grandes quantités de données sans avoir à investir dans une infrastructure. Pour extraire des données de BigQuery, il est possible d'utiliser la syntaxe SQL pour exécuter des requêtes.

Dans cet article, vous trouverez un guide simple de la syntaxe SQL de BigQuery et apprendrez à écrire vos premières requêtes SQL.

Syntaxe SQL de BigQuery

La syntaxe SQL fait référence aux règles du langage que vous devez respecter lorsque vous écrivez des requêtes SQL. Chaque fois que vous écrivez une requête, vous utilisez des mots-clés tels que SELECT, FROM, WHERE et ORDER BY.

Note : Afin d'améliorer la lisibilité, nous suivrons quelques bonnes pratiques pour écrire des requêtes SQL.

1) Nous utiliserons des majuscules pour faire la distinction entre les mots-clés et les tableaux ou colonnes. Par conséquent, nous mettrons les mots-clés en majuscules, mais nous utiliserons des minuscules pour tous les tableaux et toutes les colonnes. 

2) Bien que nous puissions écrire plusieurs déclarations sur la même ligne, nous séparerons les déclarations en utilisant de nouvelles lignes. 

Si vous souhaitez commencer à utiliser BigQuery, vous trouverez ci-dessous un guide de démarrage rapide de la syntaxe SQL.

SELECTIONNER

Nous utiliserons l'instruction SELECT pour sélectionner les colonnes que la requête renverra.

Syntaxe SELECT

SELECT colonne1, colonne2, ...

FROM nom_de_table ;

Dans cet exemple, nous allons vous montrer comment utiliser des requêtes SQL pour extraire des données d'un ensemble de données de basket-ball de la NCAA.

Tout d'abord, nous allons exécuter une requête SQL pour sélectionner trois colonnes - school_ncaa, name et alias - dans cet ensemble de données. 

Après l'instruction SELECT, ajoutez toutes les colonnes que vous souhaitez sélectionner, en les séparant par des virgules. La clause FROM spécifie la table que nous interrogeons pour récupérer les données. 

SELECT école_ncaa, nom, alias   

FROM `bigquery-public-data.ncaa_basketball.mbb_teams` ;

syntaxe bigquery 1

Cette requête a retourné des lignes avec les colonnes suivantes :

  • school_ncaa - Cette colonne contient le nom de l'école associée à chaque équipe.
  • nom - Cette colonne contient le nom de l'équipe pour chaque ligne.
  • alias - Cette colonne contient les alias courants ou les noms abrégés utilisés pour certaines équipes.

Comme vous pouvez le voir, il a renvoyé toutes les données que j'ai demandées, réparties en colonnes. 

Dans cet exemple, j'ai demandé à BigQuery de renvoyer les données de ces trois colonnes. Si vous souhaitez sélectionner toutes les colonnes de l'ensemble de données, utilisez plutôt un astérisque (*).

SELECT * 

FROM `bigquery-public-data.ncaa_basketball.mbb_teams` ;

syntaxe bigquery 2

Nous utiliserons la clause WHERE pour filtrer les données de l'ensemble de données.

Syntaxe WHERE

SELECT colonne1, colonne2, ...

FROM nom_table

ÉTANT DONNÉ l'état ;

Supposons que je veuille extraire des données de toutes les colonnes, mais uniquement pour les lignes dont la colonne nom est égale à ‘Crimson’. 

Décortiquons donc la formule :

SELECT * - Cette option indique que toutes les colonnes doivent être retournées. L'astérisque (*) sélectionne toutes les colonnes.

FROM bigquery-public-data.ncaa_basketball.mbb_teams - Ceci spécifie la table que nous interrogeons, la table mbb_teams.

WHERE name = ‘Crimson’ - Cette clause WHERE filtre les lignes en ne retenant que celles dont la valeur de la colonne name est égale à ‘Crimson’.

SELECT *  

FROM `bigquery-public-data.ncaa_basketball.mbb_teams`

WHERE name = ‘Crimson’ ;

syntaxe bigquery 3

Cette requête SQL BigQuery a renvoyé toutes les colonnes des lignes de la table mbb_teams dont la colonne name est égale à ‘Crimson’.

Je vais maintenant utiliser la condition OR car je veux que BigQuery récupère les lignes qui correspondent aux noms des équipes ‘Crimson’ ou ‘Tigers’. J'ajoute une condition OR à la clause WHERE.

SELECT alias, école_ncaa, nom, marché

FROM `bigquery-public-data.ncaa_basketball.mbb_teams`

WHERE name = ‘Crimson’ OR name = ‘Tigers’ ;

syntaxe bigquery 4

BigQuery a maintenant renvoyé des données pour les lignes dont le nom est ‘Crimson’ ou ‘Tigers’.

Si je souhaite renvoyer plusieurs valeurs avec une clause WHERE, je peux ajouter une condition IN à la formule. Lorsque j'ajoute IN à la clause WHERE, BigQuery renvoie toutes les valeurs entre parenthèses.

SELECT alias, école_ncaa, nom, marché

FROM `bigquery-public-data.ncaa_basketball.mbb_teams`

WHERE name IN (‘Crimson’, ’Tigers’, ’Gators’) ;

syntaxe bigquery 5

Si vous souhaitez ajouter plusieurs filtres ou plusieurs critères à remplir dans les résultats de la requête, vous devez utiliser la condition AND. La condition ET ne renvoie des valeurs que si les deux conditions sont remplies.

Dans cet exemple, je souhaite que BigQuery renvoie des valeurs uniquement pour ces équipes : Tigres d'Auburn ou Tigres de Clemson. Les deux critères doivent donc être remplis. Le nom doit être “Tigers” et l'école doit être Auburn ou Clemson. Voici la formule que j'utiliserai :

SELECT alias, école_ncaa, nom, marché

FROM `bigquery-public-data.ncaa_basketball.mbb_teams`

WHERE name = ‘Tigers’ AND school_ncaa = ‘Auburn’ OR school_ncaa = ‘Clemson’ ;

syntaxe bigquery 6

Supposons maintenant que je veuille que BigQuery filtre les lignes dont le nom commence par ‘A’. Contrairement aux exemples précédents, où j'ai utilisé l'instruction WHERE pour renvoyer des valeurs exactes, j'utiliserai ici l'opérateur LIKE pour une correspondance partielle des chaînes. Voici comment utiliser la commande LIKE :

SELECT alias, école_ncaa, nom, marché

FROM `bigquery-public-data.ncaa_basketball.mbb_teams`

WHERE name LIKE ‘A%’ ;

syntaxe bigquery 7

Voici quelques exemples de la manière dont vous pouvez utiliser la commande LIKE pour filtrer des données sur la base de critères spécifiques.

LIKE 

Résultat

LIKE ‘a%’

Retourne les valeurs qui commencent par “a”

LIKE ‘%a’

Retourne les valeurs qui se terminent par “a”

LIKE ‘%ty%’ (littéralement : "%ty%")’

Retourne les valeurs qui ont “ty” dans n'importe quelle position

LIKE ‘_s%’ (en anglais)’

Retourne les valeurs qui ont “s” en deuxième position

LIKE ‘a%s’

Retourne les valeurs qui commencent par “a” et se terminent par “s”

Si je souhaite que BigQuery filtre les lignes dont le nom commence par ‘A’, mais exclue les noms commençant par ‘Ag’, je peux ajouter une commande NOT LIKE.

SELECT alias, école_ncaa, nom, marché

FROM `bigquery-public-data.ncaa_basketball.mbb_teams`

WHERE name LIKE ‘A%’ AND name NOT LIKE ‘Ag%’ ;

syntaxe bigquery 8

ORDER BY

L'instruction ORDER BY est utilisée pour trier les valeurs d'une colonne spécifique par ordre croissant ou décroissant.

ORDER BY syntaxe

SELECT colonne1, colonne2, ...

FROM nom_table

ORDER BY column1, column2, ... ASC|DESC ;

Je vais écrire une requête pour récupérer les données filtrées par un nom d'équipe spécifique et classer les résultats par école dans l'ordre croissant. Lorsque j'ordonne les résultats par ordre croissant, la condition ASC est facultative.

SELECT alias, école_ncaa, nom, marché

FROM `bigquery-public-data.ncaa_basketball.mbb_teams`

WHERE name = ‘Tigers’

ORDER BY school_ncaa ;

syntaxe bigquery 9

Comme vous pouvez le voir, BigQuery a trié les noms des écoles par ordre alphabétique. Si j'ajoute la condition DESC, les noms des écoles seront triés par ordre décroissant.

SELECT alias, école_ncaa, nom, marché

FROM `bigquery-public-data.ncaa_basketball.mbb_teams`

WHERE name = ‘Tigers’

ORDER BY school_ncaa DESC ;

syntaxe bigquery 10

Comment connecter BigQuery à Google Sheets ?

Et voilà ! Voilà comment vous pouvez écrire vos premières requêtes en utilisant SQL dans BigQuery. Si vous utilisez des feuilles de calcul, consultez cet article sur récupérer automatiquement les données de BigQuery vers Google Sheets.

Gérer facilement de grands ensembles de données

Utilisez Sheetgo pour connecter BigQuery à Google Sheets et traiter efficacement des données volumineuses.

Vous pouvez aussi aimer...

Au-delà de la RPA : Pourquoi l'avenir de l'automatisation des feuilles de calcul est axé sur les données

Vous avez cherché "RPA" pour éliminer les tâches répétitives. Mais que se passe-t-il si le problème n'est pas la tâche, mais les données ? Le "réflexe RPA" Chaque équipe...

Comment connecter votre lac aux utilisateurs professionnels - avec une base de données sans code

Vous avez investi dans un Lakehouse moderne. Pourquoi votre équipe financière vous demande-t-elle encore des exportations CSV ? Le paradoxe des données modernes Vous avez construit un...
science des données

Gestion des stocks de bijoux : comment choisir le bon système ?

La gestion des stocks de bijoux est plus complexe que dans d'autres secteurs. Avec des articles de grande valeur, des matières premières précieuses et des...