Introductie tot BigQuery
Matt Forrest
Field CTO
INSERT: Voeg nieuwe rijen toe.UPDATE: Wijzig bestaande waarden in een rij.DELETE: Verwijder ongewenste data uit tabellen.MERGE: Combineert INSERT, UPDATE en DELETE in één instructie.CREATE TABLE AS: Maakt een nieuwe tabel op basis van een queryresultaat.WHERE-voorwaarde bij een UPDATE-- Definieer de kolommen tussen haakjes
INSERT INTO customers (customer_id, name, email)
-- Elke waarde is een rij die wordt ingevoegd
VALUES (1, "John Doe", "[email protected]"),
(2, "Jane Doe", "[email protected]"),
(3, "Alice Smith", "[email protected]");
UPDATE customers
-- Stel per SET-instructie één kolom in
SET email = "[email protected]"
-- Neem WHERE op, anders worden
-- alle rijen geüpdatet
WHERE customer_id = 1;
UPDATE met subquery's of joinsUPDATE customers c
SET c.email = e.email
FROM emails e
WHERE c.customer_id = 1;
DELETE verwijdert records definitief en kan niet ongedaan worden gemaaktDELETE FROM customers
-- Voeg WHERE toe om alleen specifieke rijen te verwijderen
WHERE customer_id = 3;
DELETE FROM customers c
JOIN emails e USING (customer_id)
WHERE email = '[email protected]'
INSERT, UPDATE en DELETE in één bewerking-- Stelt de customers-tabel in als doel MERGE customers AS target-- De bron is new_customers USING new_customers AS source-- Match-voorwaarde ON target.customer_id = source.customer_id-- Als e-mails niet overeenkomen, update de e-mail WHEN MATCHED AND target.email != source.email THEN UPDATE SET email = source.email-- Als er geen match is, voeg het record in 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);
Introductie tot BigQuery