개발일상/BigQuery

[BigQuery] 빅쿼리/Google SQL 기본 문법 (Query syntax)

김쌀 2024. 10. 28. 06:57

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의 기본은 요렇게. 필요할 때마다 하나씩 알아보자!

출처 : w3 schools
반응형