데이터 출처
FROM은 처리할 테이블이나 결과를 지정한다.
조회·집계부터 COPY INTO, 데이터 수정, 객체 정의, 권한 관리까지 목적에 따라 SQL을 찾고 Snowflake와 BigQuery의 구문·조건·효과를 비교하세요.
조회 비교 23개 그룹과 작업 22개 항목을 수록합니다. 대표 예제이며 모든 옵션이나 제품 명령을 망라하지 않습니다.
작업 구문 확인: 2026-10-06
| 영역 | 구문·기능 | 수록 상태 | 공식 자료 |
|---|---|---|---|
| 조회·분석 | SELECT / JOIN / GROUP BY / WINDOW | 대표 예제 포함 | Snowflake · BigQuery |
| 적재·내보내기 | COPY INTO / LOAD DATA / EXPORT DATA | 대표 예제 포함 | Snowflake · BigQuery |
| 데이터 변경 | INSERT / UPDATE / DELETE / MERGE / TRUNCATE | 대표 예제 포함 | Snowflake · BigQuery |
| 객체 정의 | TABLE / VIEW / SCHEMA / FUNCTION / PROCEDURE | 대표 예제 포함 | Snowflake · BigQuery |
| 트랜잭션·권한·스크립트 | TRANSACTION / GRANT / REVOKE / DECLARE / INFORMATION_SCHEMA | 대표 예제 포함 | Snowflake · BigQuery |
| 자동화·파이프라인 | PIPE / STREAM / TASK / DYNAMIC TABLE / scheduled queries | 공식 자료 참조만 제공 | Snowflake · BigQuery |
| 외부·특수 테이블 | EXTERNAL TABLE / ICEBERG / SNAPSHOT / CLONE / MATERIALIZED VIEW | 공식 자료 참조만 제공 | Snowflake · BigQuery |
| 계정·컴퓨팅 자원 | ACCOUNT / USER / ROLE / WAREHOUSE / IAM / reservations | 공식 자료 참조만 제공 | Snowflake · BigQuery |
| 보안·공유 | POLICY / MASKING / ROW ACCESS / sharing / connections | 공식 자료 참조만 제공 | Snowflake · BigQuery |
| 기계 학습·제품 확장 | ML / Cortex / search indexes / vector indexes / applications | 공식 자료 참조만 제공 | Snowflake · BigQuery |
COPY INTO <table> / LOAD DATA INTOCOPY INTO <location> / EXPORT DATACREATE STAGE / FROM FILESVALIDATION_MODE / LOAD DATAINSERT INTO / INSERT INTOUPDATE / UPDATEDELETE FROM / DELETE FROMMERGE INTO / MERGE INTOTRUNCATE TABLE / TRUNCATE TABLECREATE TABLE / CREATE TABLECREATE TABLE AS SELECT / CREATE TABLE AS SELECTCREATE VIEW / CREATE VIEWALTER TABLE / ALTER TABLEDROP TABLE / DROP TABLEBEGIN TRANSACTION / BEGIN TRANSACTIONGRANT / GRANTREVOKE / REVOKECREATE SCHEMA / CREATE SCHEMASHOW TABLES / INFORMATION_SCHEMADECLARE / DECLARECREATE FUNCTION / CREATE FUNCTIONCREATE PROCEDURE / CREATE PROCEDURE조회와 주요 작업 명령을 다룹니다. 수록 표에서 예제와 자료 참조 범위를 확인하세요.
FROM은 처리할 테이블이나 결과를 지정한다.
WITH와 FROM의 하위 쿼리는 같은 중간 결과를 표현할 수 있다.
일치 / 왼쪽 전체 / 양쪽 전체 / 모든 조합.
LEFT JOIN에서는 조건 위치에 따라 남는 행이 달라진다.
복합 값의 요소를 행으로 펼친다.
WHERE는 집계 전, HAVING은 집계 후, QUALIFY는 window 후.
무엇을 세고 어떤 요약값을 구할지 선택한다.
WITHIN GROUP은 집계할 값의 순서를 정한다. BigQuery 집계 함수는 괄호 안에 ORDER BY를 쓴다.
중복, NULL, 최댓값을 가진 행, 입력 개수를 집계 함수 안에서 제어한다.
GROUP BY는 집계 단위를 만들고 DISTINCT는 선택한 출력 행의 중복을 없앤다.
Aggregate: N행→그룹당 1행. Window: N행→N행.
연번 / 동순위와 건너뛰기 / 동순위와 연속 순위.
같은 순서에서 앞뒤 값을 각 행에 붙인다.
IGNORE·RESPECT NULLS는 함수가 보는 값을, NULLS FIRST·LAST는 행의 정렬 위치를 바꾼다.
ROWS는 행 위치, RANGE는 정렬 값으로 범위를 정한다.
비교는 TRUE / FALSE / NULL을 반환하고 논리 연산이 결합한다.
NULL과의 등호 비교는 모름이다. IS NULL로 판정한다.
CASE는 여러 조건, IF / IFF는 두 결과를 간결하게 쓴다.
변환 불가 값: CAST는 오류, 안전 버전은 NULL.
ABS는 절댓값, ROUND는 지정 자릿수로 반올림.
같은 문자열에 네 가지 연산을 적용한다.
기능은 같고 인수 순서와 단위 문법이 다르다.
둘 다 7로 보여도 자료형이 다르다.
같은 A·B로 중복 유지 / 제거 / 공통 / 왼쪽만 비교한다.
열 위치가 달라도 같은 이름끼리 맞춘다.
중복 제거 → 정렬 → 앞부분 건너뛰기 → 제한 수만큼 반환.
Snowflake · 선택한 제품에서 실행할 SQL 예제입니다. 이 페이지에서는 실행하지 않습니다. 공식 문서와 대조했으며 클라우드 계정에서의 실행은 검증하지 않았습니다.
Snowflake는 데이터베이스, BigQuery는 프로젝트가 선택되어 있다고 가정합니다. tbi_lab은 연습용 스키마 또는 데이터 세트입니다.
빈 orders와 id,amount 헤더가 있는 CSV를 준비하세요. Snowflake 내부 스테이지 csv_stage 또는 BigQuery와 위치 조건이 맞는 Cloud Storage에 업로드하고 YOUR_BUCKET을 바꾸세요.
권한이 있는 연습 환경을 사용하세요. 이름·저장 위치·권한 대상을 확인하세요. 클라우드 실행과 저장에는 요금이 발생할 수 있습니다.
COPY INTO tbi_lab.orders
FROM @tbi_lab.csv_stage/orders.csv
FILE_FORMAT = (TYPE = CSV SKIP_HEADER = 1)
ON_ERROR = 'ABORT_STATEMENT';파일의 행을 테이블에 적재합니다. 적재 결과와 대상 행을 확인합니다.
SELECT id, amount FROM tbi_lab.orders ORDER BY id;ON_ERROR는 오류 처리 방식입니다. ABORT_STATEMENT는 문장을 중단합니다. 적재 이력으로 재실행 시 파일을 건너뛸 수 있으며 FORCE=TRUE는 중복을 만들 수 있습니다.
공식 자료 · Snowflake 1
# load-filesSnowflake · 선택한 제품에서 실행할 SQL 예제입니다. 이 페이지에서는 실행하지 않습니다. 공식 문서와 대조했으며 클라우드 계정에서의 실행은 검증하지 않았습니다.
Snowflake는 데이터베이스, BigQuery는 프로젝트가 선택되어 있다고 가정합니다. tbi_lab은 연습용 스키마 또는 데이터 세트입니다.
두 행이 있는 orders와 쓰기 가능한 위치를 준비하세요. Snowflake는 csv_stage, BigQuery는 YOUR_BUCKET을 바꾼 Cloud Storage를 사용합니다.
권한이 있는 연습 환경을 사용하세요. 이름·저장 위치·권한 대상을 확인하세요. 클라우드 실행과 저장에는 요금이 발생할 수 있습니다.
COPY INTO @tbi_lab.csv_stage/export_run/
FROM (SELECT id, amount FROM tbi_lab.orders)
FILE_FORMAT = (TYPE = CSV)
HEADER = TRUE;조회 결과를 CSV 파일로 저장합니다. 저장 위치에서 확인합니다.
LIST @tbi_lab.csv_stage/export_run/;매번 새 출력 위치를 쓰세요. 파일이 여러 개 생성될 수 있습니다. 파일 수와 내용을 확인하세요.
공식 자료 · Snowflake 1
# unload-filesSnowflake · 선택한 제품에서 실행할 SQL 예제입니다. 이 페이지에서는 실행하지 않습니다. 공식 문서와 대조했으며 클라우드 계정에서의 실행은 검증하지 않았습니다.
Snowflake는 데이터베이스, BigQuery는 프로젝트가 선택되어 있다고 가정합니다. tbi_lab은 연습용 스키마 또는 데이터 세트입니다.
tbi_lab과 필요한 생성·조회 권한을 준비하세요.
권한이 있는 연습 환경을 사용하세요. 이름·저장 위치·권한 대상을 확인하세요. 클라우드 실행과 저장에는 요금이 발생할 수 있습니다.
CREATE FILE FORMAT tbi_lab.csv_format
TYPE = CSV SKIP_HEADER = 1;
CREATE STAGE tbi_lab.csv_stage
FILE_FORMAT = (FORMAT_NAME = 'tbi_lab.csv_format');Snowflake에 빈 내부 스테이지와 CSV 형식 정의를 만듭니다.
LIST @tbi_lab.csv_stage;스테이지 생성만으로 파일이 올라가지 않습니다. Snowsight나 PUT 지원 클라이언트로 orders.csv를 업로드하세요. PUT은 내부 스테이지용입니다.
공식 자료 · Snowflake 1 · Snowflake 2 · Snowflake 3
# stage-formatSnowflake · 선택한 제품에서 실행할 SQL 예제입니다. 이 페이지에서는 실행하지 않습니다. 공식 문서와 대조했으며 클라우드 계정에서의 실행은 검증하지 않았습니다.
Snowflake는 데이터베이스, BigQuery는 프로젝트가 선택되어 있다고 가정합니다. tbi_lab은 연습용 스키마 또는 데이터 세트입니다.
빈 orders와 id,amount 헤더가 있는 CSV를 준비하세요. Snowflake 내부 스테이지 csv_stage 또는 BigQuery와 위치 조건이 맞는 Cloud Storage에 업로드하고 YOUR_BUCKET을 바꾸세요.
권한이 있는 연습 환경을 사용하세요. 이름·저장 위치·권한 대상을 확인하세요. 클라우드 실행과 저장에는 요금이 발생할 수 있습니다.
COPY INTO tbi_lab.orders
FROM @tbi_lab.csv_stage/orders.csv
FILE_FORMAT = (TYPE = CSV SKIP_HEADER = 1)
VALIDATION_MODE = 'RETURN_ERRORS';Snowflake에서 행을 추가하지 않고 파일 오류를 반환합니다.
SELECT id, amount FROM tbi_lab.orders ORDER BY id;VALIDATION_MODE는 적재 없이 검증합니다. 변환 SELECT와 함께 쓸 수 없습니다. 오류를 고친 후 일반 COPY를 실행하세요.
공식 자료 · Snowflake 1
# validate-loadSnowflake · 선택한 제품에서 실행할 SQL 예제입니다. 이 페이지에서는 실행하지 않습니다. 공식 문서와 대조했으며 클라우드 계정에서의 실행은 검증하지 않았습니다.
Snowflake는 데이터베이스, BigQuery는 프로젝트가 선택되어 있다고 가정합니다. tbi_lab은 연습용 스키마 또는 데이터 세트입니다.
tbi_lab.orders(id, amount)에 (1,100), (2,200)이 있는 상태에서 시작합니다. 각 예제 전에 초기 상태로 되돌리세요. 연속 실행 단계가 아닙니다.
권한이 있는 연습 환경을 사용하세요. 이름·저장 위치·권한 대상을 확인하세요. 클라우드 실행과 저장에는 요금이 발생할 수 있습니다.
INSERT INTO tbi_lab.orders (id, amount)
VALUES (3, 300);id=3, amount=300인 행을 추가합니다.
SELECT id, amount FROM tbi_lab.orders ORDER BY id;공식 자료 · Snowflake 1
# insert-rowsSnowflake · 선택한 제품에서 실행할 SQL 예제입니다. 이 페이지에서는 실행하지 않습니다. 공식 문서와 대조했으며 클라우드 계정에서의 실행은 검증하지 않았습니다.
Snowflake는 데이터베이스, BigQuery는 프로젝트가 선택되어 있다고 가정합니다. tbi_lab은 연습용 스키마 또는 데이터 세트입니다.
tbi_lab.orders(id, amount)에 (1,100), (2,200)이 있는 상태에서 시작합니다. 각 예제 전에 초기 상태로 되돌리세요. 연속 실행 단계가 아닙니다.
권한이 있는 연습 환경을 사용하세요. 이름·저장 위치·권한 대상을 확인하세요. 클라우드 실행과 저장에는 요금이 발생할 수 있습니다.
UPDATE tbi_lab.orders SET amount = 150 WHERE id = 1;id=1의 amount를 150으로 바꿉니다.
SELECT id, amount FROM tbi_lab.orders ORDER BY id;같은 WHERE의 SELECT로 변경 대상을 먼저 확인하세요. BigQuery의 UPDATE와 DELETE에는 WHERE가 필요합니다.
공식 자료 · Snowflake 1
# update-rowsSnowflake · 선택한 제품에서 실행할 SQL 예제입니다. 이 페이지에서는 실행하지 않습니다. 공식 문서와 대조했으며 클라우드 계정에서의 실행은 검증하지 않았습니다.
Snowflake는 데이터베이스, BigQuery는 프로젝트가 선택되어 있다고 가정합니다. tbi_lab은 연습용 스키마 또는 데이터 세트입니다.
tbi_lab.orders(id, amount)에 (1,100), (2,200)이 있는 상태에서 시작합니다. 각 예제 전에 초기 상태로 되돌리세요. 연속 실행 단계가 아닙니다.
권한이 있는 연습 환경을 사용하세요. 이름·저장 위치·권한 대상을 확인하세요. 클라우드 실행과 저장에는 요금이 발생할 수 있습니다.
DELETE FROM tbi_lab.orders WHERE id = 2;id=2인 행을 삭제합니다.
SELECT id, amount FROM tbi_lab.orders ORDER BY id;같은 WHERE의 SELECT로 변경 대상을 먼저 확인하세요. BigQuery의 UPDATE와 DELETE에는 WHERE가 필요합니다.
공식 자료 · Snowflake 1
# delete-rowsSnowflake · 선택한 제품에서 실행할 SQL 예제입니다. 이 페이지에서는 실행하지 않습니다. 공식 문서와 대조했으며 클라우드 계정에서의 실행은 검증하지 않았습니다.
Snowflake는 데이터베이스, BigQuery는 프로젝트가 선택되어 있다고 가정합니다. tbi_lab은 연습용 스키마 또는 데이터 세트입니다.
tbi_lab.orders(id, amount)에 (1,100), (2,200)이 있는 상태에서 시작합니다. 각 예제 전에 초기 상태로 되돌리세요. 연속 실행 단계가 아닙니다.
권한이 있는 연습 환경을 사용하세요. 이름·저장 위치·권한 대상을 확인하세요. 클라우드 실행과 저장에는 요금이 발생할 수 있습니다.
MERGE INTO tbi_lab.orders AS t
USING (SELECT 1 AS id, 150 AS amount
UNION ALL SELECT 3, 300) AS s
ON t.id = s.id
WHEN MATCHED THEN UPDATE SET amount = s.amount
WHEN NOT MATCHED THEN INSERT (id, amount)
VALUES (s.id, s.amount);id=1을 150으로 수정하고 id=3, amount=300을 추가합니다.
SELECT id, amount FROM tbi_lab.orders ORDER BY id;하나의 수정 대상 키에 여러 입력 행이 일치하지 않게 확인하세요. 중복 처리 방식은 제품과 작업에 따라 다릅니다.
공식 자료 · Snowflake 1
# merge-rowsSnowflake · 선택한 제품에서 실행할 SQL 예제입니다. 이 페이지에서는 실행하지 않습니다. 공식 문서와 대조했으며 클라우드 계정에서의 실행은 검증하지 않았습니다.
Snowflake는 데이터베이스, BigQuery는 프로젝트가 선택되어 있다고 가정합니다. tbi_lab은 연습용 스키마 또는 데이터 세트입니다.
tbi_lab.orders(id, amount)에 (1,100), (2,200)이 있는 상태에서 시작합니다. 각 예제 전에 초기 상태로 되돌리세요. 연속 실행 단계가 아닙니다.
권한이 있는 연습 환경을 사용하세요. 이름·저장 위치·권한 대상을 확인하세요. 클라우드 실행과 저장에는 요금이 발생할 수 있습니다.
TRUNCATE TABLE tbi_lab.orders;행은 0개가 되고 열 정의는 남습니다.
SELECT COUNT(*) AS rows_left FROM tbi_lab.orders;모든 행이 대상이며 WHERE로 필터링할 수 없습니다.
공식 자료 · Snowflake 1
# truncate-tableSnowflake · 선택한 제품에서 실행할 SQL 예제입니다. 이 페이지에서는 실행하지 않습니다. 공식 문서와 대조했으며 클라우드 계정에서의 실행은 검증하지 않았습니다.
Snowflake는 데이터베이스, BigQuery는 프로젝트가 선택되어 있다고 가정합니다. tbi_lab은 연습용 스키마 또는 데이터 세트입니다.
tbi_lab을 준비하고 새 객체 이름이 사용되지 않았는지 확인하세요.
권한이 있는 연습 환경을 사용하세요. 이름·저장 위치·권한 대상을 확인하세요. 클라우드 실행과 저장에는 요금이 발생할 수 있습니다.
CREATE TABLE tbi_lab.orders (id INTEGER, amount NUMBER(12,2));id와 amount 열이 있는 빈 테이블을 만듭니다.
DESCRIBE TABLE tbi_lab.orders;이 예제는 기존 데이터를 덮어쓰는 OR REPLACE를 사용하지 않습니다.
공식 자료 · Snowflake 1
# create-tableSnowflake · 선택한 제품에서 실행할 SQL 예제입니다. 이 페이지에서는 실행하지 않습니다. 공식 문서와 대조했으며 클라우드 계정에서의 실행은 검증하지 않았습니다.
Snowflake는 데이터베이스, BigQuery는 프로젝트가 선택되어 있다고 가정합니다. tbi_lab은 연습용 스키마 또는 데이터 세트입니다.
tbi_lab.orders(id, amount)에 (1,100), (2,200)이 있는 상태에서 시작합니다. 각 예제 전에 초기 상태로 되돌리세요. 연속 실행 단계가 아닙니다.
tbi_lab을 준비하고 새 객체 이름이 사용되지 않았는지 확인하세요.
권한이 있는 연습 환경을 사용하세요. 이름·저장 위치·권한 대상을 확인하세요. 클라우드 실행과 저장에는 요금이 발생할 수 있습니다.
CREATE TABLE tbi_lab.large_orders AS
SELECT id, amount FROM tbi_lab.orders WHERE amount >= 200;amount가 200 이상인 행을 새 테이블에 저장합니다.
SELECT * FROM tbi_lab.large_orders ORDER BY id;이 예제는 기존 데이터를 덮어쓰는 OR REPLACE를 사용하지 않습니다.
공식 자료 · Snowflake 1
# create-as-selectSnowflake · 선택한 제품에서 실행할 SQL 예제입니다. 이 페이지에서는 실행하지 않습니다. 공식 문서와 대조했으며 클라우드 계정에서의 실행은 검증하지 않았습니다.
Snowflake는 데이터베이스, BigQuery는 프로젝트가 선택되어 있다고 가정합니다. tbi_lab은 연습용 스키마 또는 데이터 세트입니다.
tbi_lab.orders(id, amount)에 (1,100), (2,200)이 있는 상태에서 시작합니다. 각 예제 전에 초기 상태로 되돌리세요. 연속 실행 단계가 아닙니다.
tbi_lab을 준비하고 새 객체 이름이 사용되지 않았는지 확인하세요.
권한이 있는 연습 환경을 사용하세요. 이름·저장 위치·권한 대상을 확인하세요. 클라우드 실행과 저장에는 요금이 발생할 수 있습니다.
CREATE VIEW tbi_lab.large_orders_view AS
SELECT id, amount FROM tbi_lab.orders WHERE amount >= 200;조회 정의를 저장합니다. 일반 뷰는 결과 행의 복사본을 보관하지 않습니다.
SELECT * FROM tbi_lab.large_orders_view ORDER BY id;ALTER VIEW와 DROP VIEW는 뷰 정의를 변경·삭제합니다. 원본 테이블 의존성을 확인하세요.
공식 자료 · Snowflake 1
# create-viewSnowflake · 선택한 제품에서 실행할 SQL 예제입니다. 이 페이지에서는 실행하지 않습니다. 공식 문서와 대조했으며 클라우드 계정에서의 실행은 검증하지 않았습니다.
Snowflake는 데이터베이스, BigQuery는 프로젝트가 선택되어 있다고 가정합니다. tbi_lab은 연습용 스키마 또는 데이터 세트입니다.
tbi_lab.orders(id, amount)에 (1,100), (2,200)이 있는 상태에서 시작합니다. 각 예제 전에 초기 상태로 되돌리세요. 연속 실행 단계가 아닙니다.
권한이 있는 연습 환경을 사용하세요. 이름·저장 위치·권한 대상을 확인하세요. 클라우드 실행과 저장에는 요금이 발생할 수 있습니다.
ALTER TABLE tbi_lab.orders ADD COLUMN note VARCHAR;note 열을 추가하며 기존 행의 값은 NULL입니다.
DESCRIBE TABLE tbi_lab.orders;열 추가 예제입니다. 열 삭제나 자료형 변경에는 별도 데이터·의존성 확인이 필요합니다.
공식 자료 · Snowflake 1
# alter-tableSnowflake · 선택한 제품에서 실행할 SQL 예제입니다. 이 페이지에서는 실행하지 않습니다. 공식 문서와 대조했으며 클라우드 계정에서의 실행은 검증하지 않았습니다.
Snowflake는 데이터베이스, BigQuery는 프로젝트가 선택되어 있다고 가정합니다. tbi_lab은 연습용 스키마 또는 데이터 세트입니다.
tbi_lab.orders(id, amount)에 (1,100), (2,200)이 있는 상태에서 시작합니다. 각 예제 전에 초기 상태로 되돌리세요. 연속 실행 단계가 아닙니다.
권한이 있는 연습 환경을 사용하세요. 이름·저장 위치·권한 대상을 확인하세요. 클라우드 실행과 저장에는 요금이 발생할 수 있습니다.
DROP TABLE tbi_lab.orders;테이블 정의와 데이터를 삭제합니다.
SHOW TABLES LIKE 'ORDERS' IN SCHEMA tbi_lab;복구 여부는 제품 보존 설정 등에 따라 다릅니다. 복구를 가정하지 마세요.
공식 자료 · Snowflake 1
# drop-tableSnowflake · 선택한 제품에서 실행할 SQL 예제입니다. 이 페이지에서는 실행하지 않습니다. 공식 문서와 대조했으며 클라우드 계정에서의 실행은 검증하지 않았습니다.
Snowflake는 데이터베이스, BigQuery는 프로젝트가 선택되어 있다고 가정합니다. tbi_lab은 연습용 스키마 또는 데이터 세트입니다.
권한이 있는 연습 환경을 사용하세요. 이름·저장 위치·권한 대상을 확인하세요. 클라우드 실행과 저장에는 요금이 발생할 수 있습니다.
CREATE SCHEMA tbi_lab;
USE SCHEMA tbi_lab;객체를 저장할 tbi_lab을 만듭니다.
SELECT CURRENT_DATABASE(), CURRENT_SCHEMA();현재 데이터베이스에 스키마를 만들고 USE SCHEMA로 기본 위치를 바꿉니다.
공식 자료 · Snowflake 1 · Snowflake 2
# namespaceSnowflake · 선택한 제품에서 실행할 SQL 예제입니다. 이 페이지에서는 실행하지 않습니다. 공식 문서와 대조했으며 클라우드 계정에서의 실행은 검증하지 않았습니다.
Snowflake는 데이터베이스, BigQuery는 프로젝트가 선택되어 있다고 가정합니다. tbi_lab은 연습용 스키마 또는 데이터 세트입니다.
tbi_lab을 준비하고 새 객체 이름이 사용되지 않았는지 확인하세요.
권한이 있는 연습 환경을 사용하세요. 이름·저장 위치·권한 대상을 확인하세요. 클라우드 실행과 저장에는 요금이 발생할 수 있습니다.
CREATE FUNCTION tbi_lab.add_one(x INTEGER)
RETURNS INTEGER LANGUAGE SQL
AS $$ x + 1 $$;입력값에 1을 더하는 함수를 만듭니다.
SELECT tbi_lab.add_one(2) AS result;공식 자료 · Snowflake 1
# user-functionSnowflake · 선택한 제품에서 실행할 SQL 예제입니다. 이 페이지에서는 실행하지 않습니다. 공식 문서와 대조했으며 클라우드 계정에서의 실행은 검증하지 않았습니다.
Snowflake는 데이터베이스, BigQuery는 프로젝트가 선택되어 있다고 가정합니다. tbi_lab은 연습용 스키마 또는 데이터 세트입니다.
tbi_lab을 준비하고 새 객체 이름이 사용되지 않았는지 확인하세요.
권한이 있는 연습 환경을 사용하세요. 이름·저장 위치·권한 대상을 확인하세요. 클라우드 실행과 저장에는 요금이 발생할 수 있습니다.
CREATE PROCEDURE tbi_lab.answer()
RETURNS INTEGER LANGUAGE SQL
AS $$
BEGIN
RETURN 3;
END;
$$;호출 시 3을 반환하는 프로시저를 만듭니다.
CALL tbi_lab.answer();공식 자료 · Snowflake 1
# procedureSnowflake · 선택한 제품에서 실행할 SQL 예제입니다. 이 페이지에서는 실행하지 않습니다. 공식 문서와 대조했으며 클라우드 계정에서의 실행은 검증하지 않았습니다.
Snowflake는 데이터베이스, BigQuery는 프로젝트가 선택되어 있다고 가정합니다. tbi_lab은 연습용 스키마 또는 데이터 세트입니다.
tbi_lab.orders(id, amount)에 (1,100), (2,200)이 있는 상태에서 시작합니다. 각 예제 전에 초기 상태로 되돌리세요. 연속 실행 단계가 아닙니다.
권한이 있는 연습 환경을 사용하세요. 이름·저장 위치·권한 대상을 확인하세요. 클라우드 실행과 저장에는 요금이 발생할 수 있습니다.
BEGIN TRANSACTION;
UPDATE tbi_lab.orders SET amount = 150 WHERE id = 1;
ROLLBACK;변경을 취소하므로 id=1의 amount는 100으로 유지됩니다.
SELECT id, amount FROM tbi_lab.orders ORDER BY id;COMMIT은 확정, ROLLBACK은 취소입니다. Snowflake DDL은 진행 중인 트랜잭션을 암묵적으로 커밋하므로 섞지 마세요.
공식 자료 · Snowflake 1
# transactionSnowflake · 선택한 제품에서 실행할 SQL 예제입니다. 이 페이지에서는 실행하지 않습니다. 공식 문서와 대조했으며 클라우드 계정에서의 실행은 검증하지 않았습니다.
Snowflake는 데이터베이스, BigQuery는 프로젝트가 선택되어 있다고 가정합니다. tbi_lab은 연습용 스키마 또는 데이터 세트입니다.
orders와 권한을 변경할 관리 권한이 필요합니다. Snowflake의 tbi_reader 역할 또는 BigQuery 수신 그룹을 미리 확인하세요.
권한이 있는 연습 환경을 사용하세요. 이름·저장 위치·권한 대상을 확인하세요. 클라우드 실행과 저장에는 요금이 발생할 수 있습니다.
GRANT SELECT ON TABLE tbi_lab.orders TO ROLE tbi_reader;지정한 대상에 테이블 읽기 권한을 부여합니다.
SHOW GRANTS ON TABLE tbi_lab.orders;테이블 SELECT 외에도 데이터베이스·스키마 USAGE와 warehouse 권한을 확인하세요.
공식 자료 · Snowflake 1
# permissions-grantSnowflake · 선택한 제품에서 실행할 SQL 예제입니다. 이 페이지에서는 실행하지 않습니다. 공식 문서와 대조했으며 클라우드 계정에서의 실행은 검증하지 않았습니다.
Snowflake는 데이터베이스, BigQuery는 프로젝트가 선택되어 있다고 가정합니다. tbi_lab은 연습용 스키마 또는 데이터 세트입니다.
orders와 권한을 변경할 관리 권한이 필요합니다. Snowflake의 tbi_reader 역할 또는 BigQuery 수신 그룹을 미리 확인하세요.
권한이 있는 연습 환경을 사용하세요. 이름·저장 위치·권한 대상을 확인하세요. 클라우드 실행과 저장에는 요금이 발생할 수 있습니다.
REVOKE SELECT ON TABLE tbi_lab.orders FROM ROLE tbi_reader;지정한 직접 권한을 회수합니다. 다른 경로의 접근 권한은 남을 수 있습니다.
SHOW GRANTS ON TABLE tbi_lab.orders;다른 역할이나 상위 리소스에서 상속된 접근은 이 REVOKE로 회수되지 않습니다. 실제 유효 권한을 확인하세요.
공식 자료 · Snowflake 1
# permissions-revokeSnowflake · 선택한 제품에서 실행할 SQL 예제입니다. 이 페이지에서는 실행하지 않습니다. 공식 문서와 대조했으며 클라우드 계정에서의 실행은 검증하지 않았습니다.
Snowflake는 데이터베이스, BigQuery는 프로젝트가 선택되어 있다고 가정합니다. tbi_lab은 연습용 스키마 또는 데이터 세트입니다.
tbi_lab과 필요한 생성·조회 권한을 준비하세요.
권한이 있는 연습 환경을 사용하세요. 이름·저장 위치·권한 대상을 확인하세요. 클라우드 실행과 저장에는 요금이 발생할 수 있습니다.
SHOW TABLES IN SCHEMA tbi_lab;접근 가능한 테이블과 열의 메타데이터를 반환합니다.
DESCRIBE TABLE tbi_lab.orders;공식 자료 · Snowflake 1 · Snowflake 2
# inspect-objectsSnowflake · 선택한 제품에서 실행할 SQL 예제입니다. 이 페이지에서는 실행하지 않습니다. 공식 문서와 대조했으며 클라우드 계정에서의 실행은 검증하지 않았습니다.
Snowflake는 데이터베이스, BigQuery는 프로젝트가 선택되어 있다고 가정합니다. tbi_lab은 연습용 스키마 또는 데이터 세트입니다.
권한이 있는 연습 환경을 사용하세요. 이름·저장 위치·권한 대상을 확인하세요. 클라우드 실행과 저장에는 요금이 발생할 수 있습니다.
EXECUTE IMMEDIATE $$
DECLARE n INTEGER DEFAULT 2;
BEGIN
RETURN n + 1;
END;
$$;변수를 2에서 3으로 바꾸고 3을 반환합니다.
환경의 결과·접근 설정·저장 위치를 예상 변화와 대조하세요.
BEGIN…END는 절차 블록이며 BEGIN TRANSACTION과 구별됩니다.
공식 자료 · Snowflake 1 · Snowflake 2
# script한 고객의 주문이 3건이면 결합 결과에 그 고객이 3번 나타납니다. 주문 수와 SQL을 바꾸며 일치하는 행을 확인해 보세요.
SELECT 또는 WITH로 시작하는 읽기 전용 SQL 한 문장을 실행합니다. 테이블은 customers와 orders입니다. 최대 200행을 표시합니다.
예제를 선택하거나 SQL을 편집한 뒤 실행하세요.
먼저 FROM으로 고객 테이블 customers를 읽고, AS c로 이 쿼리 안에서 customers를 c라고 부릅니다.
다음으로 INNER JOIN으로 주문 테이블 orders를 결합합니다. AS o로 orders를 o라고 부르고, ON c.id = o.customer_id로 고객 번호 c.id와 주문의 고객 번호 o.customer_id가 같은 쌍만 남깁니다. 고객에게 주문이 여러 건이면 그 수만큼 행이 생깁니다.
SELECT로 고객 번호 c.id, 이름 c.name, 주문 번호 o.id를 가져옵니다. AS order_id는 o.id의 출력 열 이름을 order_id로 정합니다.
마지막으로 ORDER BY c.id, o.id로 고객 번호 오름차순, 같은 고객 안에서는 주문 번호 오름차순으로 정렬합니다.
c.id의 점 .은 테이블 별칭과 열 이름을 연결합니다. 쉼표 ,는 열이나 식을 구분하고 세미콜론 ;은 SQL 문장을 끝냅니다.
실행기는 SQLite를 사용하며 위의 Snowflake / BigQuery 선택과 별개입니다. 가상 데이터로 브라우저 안에서 실행합니다. 입력은 저장하거나 전송하지 않습니다. 첫 실행 시 외부 CDN에서 실행 엔진을 불러옵니다.