SQL Reference

모든 엔지니어를 위한 SQL 함수 사전

🔤 문자열 조작 (String)

목적 MySQL PostgreSQL Oracle SQL Server BigQuery
결합 (Concat) CONCAT(a, b) a || b a || b a + b CONCAT(a, b)
자르기 (Substring) SUBSTRING(s,1,3) SUBSTR(s,1,3) SUBSTR(s,1,3) SUBSTRING(s,1,3) SUBSTR(s,1,3)
길이 (Length) CHAR_LENGTH(s) LENGTH(s) LENGTH(s) LEN(s) LENGTH(s)
검색 (Position) LOCATE('a', s) POSITION('a' in s) INSTR(s, 'a') CHARINDEX('a', s) STRPOS(s, 'a')

📅 날짜 및 시간 (Date & Time)

목적 MySQL PostgreSQL Oracle SQL Server BigQuery
현재 시간 NOW() NOW() SYSDATE GETDATE() CURRENT_DATETIME()
어제 DATE_SUB(NOW(), INTERVAL 1 DAY) NOW() - INTERVAL '1 day' SYSDATE - 1 DATEADD(day, -1, GETDATE()) DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)
차이 (일수) DATEDIFF(end, start) end - start end - start DATEDIFF(day, start, end) DATE_DIFF(end, start, DAY)

🎨 날짜 포맷 변환 (ToString)

형식 MySQL PostgreSQL Oracle SQL Server BigQuery
YYYY-MM-DD DATE_FORMAT(col, '%Y-%m-%d') TO_CHAR(col, 'YYYY-MM-DD') TO_CHAR(col, 'YYYY-MM-DD') FORMAT(col, 'yyyy-MM-dd') FORMAT_DATE('%Y-%m-%d', col)

🚫 NULL 처리

목적 MySQL PostgreSQL Oracle SQL Server BigQuery
NULL이면 0 반환 IFNULL(col, 0)
or COALESCE
COALESCE(col, 0) NVL(col, 0) ISNULL(col, 0)
or COALESCE
IFNULL(col, 0)

🔄 형 변환 (Cast)

목적 MySQL PostgreSQL Oracle SQL Server BigQuery
문자 → 숫자 CAST(s AS UNSIGNED) s::integer TO_NUMBER(s) CAST(s AS INT) CAST(s AS INT64)
문자 → 날짜 CAST(s AS DATE) s::date TO_DATE(s, 'fmt') CAST(s AS DATE) PARSE_DATE('%Y-%m-%d', s)

📦 JSON 조작 (값 추출)

DB 문법 비고
MySQL data->'$.name' 5.7+
PostgreSQL data->>'name' (텍스트로 추출)
BigQuery JSON_EXTRACT_SCALAR(data, '$.name')
SQL Server JSON_VALUE(data, '$.name') 2016+

📊 윈도우 함수 (순위)

함수 설명
ROW_NUMBER() 단순 연번 (1, 2, 3...)
RANK() 중복 순위 건너뜀 (1, 2, 2, 4...)
DENSE_RANK() 중복 순위 유지 (1, 2, 2, 3...)

🔗 문자열 집계 (Group Concat)

DB 문법
MySQL GROUP_CONCAT(col)
PostgreSQL STRING_AGG(col, ',')
Oracle LISTAGG(col, ',') WITHIN GROUP...
SQL Server STRING_AGG(col, ',')
BigQuery STRING_AGG(col, ',')

🧩 정규 표현식 (Regex)

목적 MySQL PostgreSQL BigQuery
매칭 확인 col REGEXP 'pat' col ~ 'pat' REGEXP_CONTAINS(col, 'pat')
치환 (Replace) REGEXP_REPLACE REGEXP_REPLACE REGEXP_REPLACE

🧮 수치 및 수학

목적 MySQL PostgreSQL Oracle SQL Server BigQuery
반올림 (Round) ROUND(col, 2) ROUND(col, 2) ROUND(col, 2) ROUND(col, 2) ROUND(col, 2)
난수 (Random) RAND() RANDOM() DBMS_RANDOM.VALUE RAND() RAND()

🛠 시스템 정보 (Metadata)

목적 MySQL PostgreSQL Oracle SQL Server
테이블 목록 SHOW TABLES \dt SELECT * FROM user_tables SELECT * FROM sys.tables
건수 제한 LIMIT 10 LIMIT 10 FETCH FIRST 10 ROWS ONLY TOP 10 *

SerchCode Pro の全機能