Introduzione a BigQuery
Matt Forrest
Field CTO
INSERT: aggiunge nuove righe di dati.UPDATE: modifica valori esistenti in una riga.DELETE: rimuove dati non desiderati da tabelle.MERGE: combina INSERT, UPDATE e DELETE in un'unica istruzione.CREATE TABLE AS: crea una nuova tabella da un Risultato della query.WHERE quando esegui un UPDATE-- Definisci le colonne tra parentesi
INSERT INTO customers (customer_id, name, email)
-- Ogni tupla è una riga da inserire
VALUES (1, "John Doe", "[email protected]"),
(2, "Jane Doe", "[email protected]"),
(3, "Alice Smith", "[email protected]");
UPDATE customers
-- Imposta una colonna per ogni istruzione SET
SET email = "[email protected]"
-- Includi sempre WHERE, altrimenti verranno aggiornate
-- tutte le righe
WHERE customer_id = 1;
UPDATE insieme a subquery o joinUPDATE customers c
SET c.email = e.email
FROM emails e
WHERE c.customer_id = 1;
DELETE rimuove i record in modo permanente e non è reversibileDELETE FROM customers
-- Includi WHERE per eliminare solo righe specifiche
WHERE customer_id = 3;
DELETE FROM customers c
JOIN emails e USING (customer_id)
WHERE email = '[email protected]'
INSERT, UPDATE e DELETE in un'unica operazione-- Imposta la tabella customers come target MERGE customers AS target-- La sorgente è new_customers USING new_customers AS source-- Condizione di corrispondenza ON target.customer_id = source.customer_id-- Se le email non corrispondono, aggiorna l'email WHEN MATCHED AND target.email != source.email THEN UPDATE SET email = source.email-- Se non c'è corrispondenza, inserisci il record 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);
Introduzione a BigQuery