# SELECT
SQL에서 가장 기초가 되는 SELECT
# 행과 열
- 행 : row, →, 새로운 row는 가로로 한 줄이 추가됩니다. 하나의 row가 하나의 데이터를 의미합니다
- 예 : 거래 History에서 하나의 row가 거래를 의미
- 열 : column, ↓, column은 원형 기둥이란 뜻이 있어서 세로를 의미하며, 각 데이터의 특정 속성 값이라고 생각하면 됩니다
- 예 : 거래의 구매 시간, 거래의 구매자
# SELECT문
선택하고 싶은 데이터를 선택할 때, SELECT
라는 명령어를 사용합니다. 기본적으로 다음과 같은 형태를 가집니다
- 문법 : SELECT 선택할 컬럼
SELECT
col1, col2
FROM Dataset.Table
SELECT 후에 컬럼 명을 작성하고, 여러 컬럼을 보고 싶은 경우 쉼표를 사용해서 구분하면 됩니다.
참고로 FROM
은 어떤 테이블에서 데이터를 참조할 것인지를 명시하는 명령어입니다.
- 문법 : FROM Dataset.Table
# 모든 컬럼 선택(*)
테이블의 모든 컬럼을 선택하고 싶은 경우 *
를 사용합니다.
SELECT
*
FROM Dataset.Table
TIP
단, 빅쿼리는 탐색하는 데이터 용량에 비례해서 비용이 부과되므로 *을 자제하는 것이 비용적으로 유리합니다. 제일 기본이 되는 테이블에선 컬럼을 명시적으로 나열하고, 그 이후에 *을 사용하는 것을 추천합니다
TIP
테이블에 들어간 데이터를 확인하고 싶은 경우, 테이블을 클릭한 후 "미리보기"를 클릭하면 데이터를 볼 수 있습니다
# * EXCEPT
만약 100개의 컬럼 중 하나만 제외하고 모두 SELECT하고 싶은 경우엔 * EXCEPT
를 사용합니다
- 문법 : * EXCEPT (제외할 컬럼)
SELECT
* EXCEPT(col3, col4)
FROM Dataset.Table
# ORDER BY
SELECT한 결과를 특정 컬럼 기준으로 정렬하고 싶은 경우(시간 순으로 정렬하거나, COUNT가 많은 순으로) ORDER BY
사용합니다.
ORDER BY는 쿼리문의 최하단에 위치하곤 합니다(ORDER BY 아래엔 보통 LIMIT만 나옵니다)
- 문법 : ORDER BY 정렬할_컬럼 정렬_방식
- 정렬 방식은 ASC(오름차순), DESC(내림차순)가 있으며 정렬 방식을 명시하지 않으면 기본값으로 ASC가 사용됩니다
SELECT
col1, col2
FROM Dataset.Table
ORDER BY col3, col4
# LIMIT
SELECT한 결과 갯수(Row 수)를 제한하고 싶은 경우 LIMIT
을 사용하면 됩니다.
LIMIT은 쿼리문의 최하단에 위치하며, ORDER BY와 함께 사용되곤 합니다(정렬한 후, 상위 10개 값만 출력하는 경우)
- 문법 : LIMIT 제한할_숫자
단, LIMIT을 사용해도 빅쿼리 쿼리로 탐색하는 비용은 줄어들지 않습니다. 쿼리를 탐색하는 비용을 줄이기 위해선 파티션을 사용하면 좋습니다
SELECT
col1, col2
FROM Dataset.Table
LIMIT 10
# AS
SELECT한 컬럼의 이름을 변경하고 싶은 경우, AS
를 사용합니다. 결과의 이름을 지어주는 행위를 별칭(Alias)을 지어준다고 표현합니다
- 문법 : SELECT col1 AS new_col_name
SELECT
col1 AS col2
FROM Dataset.Table
# DISTINCT
중복 값을 제거하고 고유한 값을 남기고 싶은 경우 DISTINCT
를 사용합니다.
DISTINCT 단독으로 사용하면 중복 값을 제거할 수 있으며, COUNT와 함께 사용해서 COUNT(DISTINCT col)의 형태로 고유한 값만 COUNT합니다.
- 문법 : SELECT DISTINCT col1, col2
SELECT
DISTINCT
col1,
col2
FROM Dataset.Table
# SQL 구문 형태
SQL은 일종의 문법(약속)이므로 문법을 지켜주셔야 정상적으로 실행할 수 있습니다
SELECT 문을 먼저 작성하고, FROM 절을 작성해주세요. 현재까지 배운 부분은 모두 고유의 순서를 가지고 있습니다.
SELECT
column,
column2
FROM Dataset.Table
ORDER BY column2 DESC
LIMIT 1000
← BigQuery 화면 설명 WHERE →