Introduction à BigQuery
Matt Forrest
Field CTO
INSERT : ajouter de nouvelles lignes.UPDATE : modifier des valeurs existantes dans une ligne.DELETE : supprimer des données inutiles d'une table.MERGE : combine INSERT, UPDATE et DELETE en une seule instruction.CREATE TABLE AS : crée une nouvelle table à partir d'un RÉSULTAT DE LA REQUÊTE.WHERE avec une instruction UPDATE-- Définir les colonnes entre parenthèses
INSERT INTO customers (customer_id, name, email)
-- Chaque ligne de VALUES est une ligne à insérer
VALUES (1, "John Doe", "[email protected]"),
(2, "Jane Doe", "[email protected]"),
(3, "Alice Smith", "[email protected]");
UPDATE customers
-- Définir une colonne par instruction SET
SET email = "[email protected]"
-- Inclure WHERE sinon toutes les
-- lignes seront mises à jour
WHERE customer_id = 1;
UPDATE avec des sous-requêtes ou des jointuresUPDATE customers c
SET c.email = e.email
FROM emails e
WHERE c.customer_id = 1;
DELETE supprime définitivement les enregistrements et ne peut pas être annuléDELETE FROM customers
-- Inclure WHERE pour ne supprimer que des lignes ciblées
WHERE customer_id = 3;
DELETE FROM customers c
JOIN emails e USING (customer_id)
WHERE email = '[email protected]'
INSERT, UPDATE et DELETE en une seule opération-- Définit la table customers comme cible MERGE customers AS target-- La source est new_customers USING new_customers AS source-- Condition d'appariement ON target.customer_id = source.customer_id-- Si les emails ne correspondent pas, mettre à jour l'email WHEN MATCHED AND target.email != source.email THEN UPDATE SET email = source.email-- Si aucun appariement, insérer l'enregistrement WHEN NOT MATCHED THEN INSERT (customer_id, name, email) VALUES (source.customer_id, source.name, source.email);
CREATE TABLE active_customers AS
SELECT customer_id, name, email
FROM customers
WHERE last_active_date > DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY);
Introduction à BigQuery