Google SQL? SQL도 종류가 많다.
Google Standard SQL 이름이 Google SQL로 바뀌었다고 한다. 오늘은 BigQuery에서 사용하는 기본적인 SQL 문법을 알아보자.
사실 SQL은 정말 오랜만에 써본다. 학부 때 기억중 유일한 기억은 `select * from table` 정도. 하지만 이 쿼리는 바로...
스스로 불러온 재앙에 짓눌릴 수 있으니, 상황에 맞게 select 문을 잘 짜보자!
SQL은 ANSI/ISO 표준이지만 SQL 언어에는 다양한 버전이 있다. (예: MySQL, MS SQL Server, Oracle 등) 그러나 ANSI 표준을 준수하기 위해 모두 유사한 방식으로 최소한 주요 명령(예: SELECT, UPDATE, DELETE, INSERT, WHERE)을 지원한다. 하지만 각 DB마다 미묘하게 함수나 type들이 조금씩 달라서 잘 동작하지 않을 때가 있다. 오늘은 그래서 가장 기본인 Google SQL 의 기본 문법을 정리해보자. 위 문법의 우선순위만 알아도 훨씬 수월하다.
query_statement:
query_expr
query_expr:
[ WITH [ RECURSIVE ] { non_recursive_cte | recursive_cte }[, ...] ]
{ select | ( query_expr ) | set_operation }
[ ORDER BY expression [{ ASC | DESC }] [, ...] ]
[ LIMIT count [ OFFSET skip_rows ] ]
select:
SELECT
[ WITH differential_privacy_clause ]
[ { ALL | DISTINCT } ]
[ AS { STRUCT | VALUE } ]
select_list
[ FROM from_clause[, ...] ]
[ WHERE bool_expression ]
[ GROUP BY group_by_specification ]
[ HAVING bool_expression ]
[ QUALIFY bool_expression ]
[ WINDOW window_clause ]
위 문법 중 괄호는 이런 의미를 가진다.
- Square brackets [ ]: 대괄호는 옵션 (Optional clause).생략가능하다.
- Curly braces with vertical bars { a | b | c }: 중괄호는 OR(Logical OR).하나의 옵션을 선택한다.
- Ellipsis ...: 이전 항목이 반복될 수 있음
- Double quotes ": 큰따옴표("")로 묶인 구문이 필요
SELECT 문
SELECT
[ WITH differential_privacy_clause ]
[ { ALL | DISTINCT } ]
[ AS { STRUCT | VALUE } ]
select_list
select_list:
{ select_all | select_expression } [, ...]
select_all:
[ expression. ]*
[ EXCEPT ( column_name [, ...] ) ]
[ REPLACE ( expression [ AS ] column_name [, ...] ) ]
select_expression:
expression [ [ AS ] alias ]
각각의 구문에 관련된 문법은 필요시마다 알아보기로 하자. 예를 들어 join의 기본은 요렇게. 필요할 때마다 하나씩 알아보자!
반응형
'개발일상 > BigQuery' 카테고리의 다른 글
[BigQuery] Python에서 빅쿼리로 데이터프레임 업로드 (0) | 2024.11.22 |
---|---|
[BigQuery] 빅쿼리 단축키 (0) | 2024.07.18 |
[SQL] UNION vs UNION ALL (0) | 2024.06.11 |