# 스크립팅

스크립팅(Scripting)은 하나의 요청으로 BigQuery에 여러 쿼리를 전송할 수 있습니다. 스크립트 프로그래밍 언어인 파이썬처럼 IF, WHILE 문을 사용할 수 있고, DECLARE를 사용해 변수를 선언하고 SET으로 값을 할당할 수 있습니다. 할당된 값은 그 아래 쿼리문에서 사용할 수 있습니다.

그 외에도 RAISE를 사용해 오류 메세지를 발생시킬 수 있고, CALL을 사용해 프로시져를 호출할 수 있습니다.

여기선 많이 사용하는 부분 위주로 설명하며, 나머지 내용은 공식 문서 (opens new window)를 참고해주세요.



# DECLARE, SET

변수를 설정해서 값을 할당한 후, 쿼리를 실행하고 싶은 경우 사용합니다. 일반 쿼리문과 다르게 세미 콜론(;)이 꼭 필요합니다

DECLARE 변수이름 타입 DEFAULT default로 사용할 값;
SET 변수 설정;

SELECT
DECLARE x INT64;
SET x=5;

SELECT x, x+1


# IF

조건이 TRUE인 경우 SELECT 문1을 실행하고, 조건이 일치않으면 그 아래의 SELECT문을 실행합니다.

IF 조건문 THEN SELECT1
  ELIF 조건문2 THEN SELECT2
  ELSE SELECT3
END IF;


# WHILE

WHILE boolean_expression DO
  SELECTEND WHILE;


# LOOP

BREAK 또는 LEAVE 문이 루프를 종료할 때까지 SELECT문을 실행합니다. LOOP는 EXECUTE IMMEDIATE 문에 중첩될 수 없습니다(동적으로 실행되지 않습니다)

LOOP
  SELECTEND LOOP;
DECLARE x INT64 DEFAULT 0;
LOOP
  SET x = x + 1;
  IF x >= 10 THEN
    LEAVE;
  END IF;
END LOOP;
SELECT x;