BigQuery 입문
Matt Forrest
Field CTO
INSERT: 새 행 추가.UPDATE: 기존 행의 값 수정.DELETE: 불필요한 데이터 삭제.MERGE: INSERT, UPDATE, DELETE를 하나로 수행.CREATE TABLE AS: 쿼리 결과로 새 테이블 생성.UPDATE 실행 시 WHERE 조건이 필요합니다-- 괄호 안에 열을 정의
INSERT INTO customers (customer_id, name, email)
-- 각 값은 삽입할 행
VALUES (1, "John Doe", "[email protected]"),
(2, "Jane Doe", "[email protected]"),
(3, "Alice Smith", "[email protected]");
UPDATE customers
-- SET마다 하나의 열을 설정
SET email = "[email protected]"
-- WHERE가 없으면 모든 행이 업데이트됨
WHERE customer_id = 1;
UPDATE 사용UPDATE customers c
SET c.email = e.email
FROM emails e
WHERE c.customer_id = 1;
DELETE는 레코드를 영구적으로 삭제하며 되돌릴 수 없습니다DELETE FROM customers
-- 특정 행만 삭제되도록 WHERE를 포함하세요
WHERE customer_id = 3;
DELETE FROM customers c
JOIN emails e USING (customer_id)
WHERE email = '[email protected]'
INSERT, UPDATE, DELETE를 결합합니다-- 대상 테이블을 customers로 설정 MERGE customers AS target-- 소스는 new_customers USING new_customers AS source-- 매칭 조건 ON target.customer_id = source.customer_id-- 이메일이 다르면 이메일 업데이트 WHEN MATCHED AND target.email != source.email THEN UPDATE SET email = source.email-- 매칭되지 않으면 레코드 삽입 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);
BigQuery 입문