| 분류 | 문법 | 의미 | 예시 / 포인트 |
|---|---|---|---|
| 문자열 자르기 | SUBSTRING(str, start, len) | 문자열 일부 추출 | SUBSTRING('ABCDE',2,3) → BCD |
| 문자열 길이 | LENGTH(str) | 바이트 길이 | 한글 있으면 주의 |
| 문자 개수 | CHAR_LENGTH(str) | 실제 문자 수 | 한글 포함 시 이쪽이 안전 |
| 문자열 연결 | CONCAT(a,b,...) | 문자열 이어붙이기 | CONCAT(first,' ',last) |
| 대문자 | UPPER(str) | 대문자로 변환 | |
| 소문자 | LOWER(str) | 소문자로 변환 | |
| 문자열 포함 | LIKE '%abc%' | abc 포함 | % = 0글자 이상 |
| 접두사 | LIKE 'abc%' | abc로 시작 | |
| 접미사 | LIKE '%abc' | abc로 끝 | |
| 한 글자 wildcard | _ | 정확히 한 글자 | LIKE 'A__' |
| 문자열 치환 | REPLACE(str,'old','new') | 문자열 교체 | REPLACE(phone,'-','') |
| 공백 제거 | TRIM(str) | 앞뒤 공백 제거 | LTRIM, RTRIM도 있음 |
| NULL 대체 | COALESCE(col, value) | NULL이면 대체값 | COALESCE(phone,'없음') |
WHERE phone REGEXP '^[0-9]+$' 이렇게 사용함.
| 문법 | 의미 | 예시 |
|---|---|---|
^ | 문자열 시작 | '^A' |
$ | 문자열 끝 | 'Z$' |
. | 아무 문자 1개 | |
[0-9] | 숫자 1개 | |
[A-Z] | 대문자 1개 | |
[a-z] | 소문자 1개 | |
+ | 1번 이상 반복 | [0-9]+ |
* | 0번 이상 반복 | [A-Z]* |
{n} | 정확히 n번 | [0-9]{3} |
\| | OR | cat\|dog |
() | 그룹 | ^(cat\|dog)$ |
| 문법 | 의미 | 예시 / 포인트 |
|---|---|---|
CURDATE() | 현재 날짜 | 시간 제외 |
NOW() | 현재 날짜+시간 | |
YEAR(date) | 연도 추출 | |
MONTH(date) | 월 추출 | |
DAY(date) | 일 추출 | |
DATEDIFF(a,b) | a-b 일수 차이 | DATEDIFF(end,start) |
DATE_ADD(date, INTERVAL n DAY) | 날짜 더하기 | |
DATE_SUB(date, INTERVAL n MONTH) | 날짜 빼기 | |
DATE_FORMAT(date, format) | 출력 형식 변경 | %Y-%m-%d |
| 포맷 | 의미 |
|---|---|
%Y | 4자리 연도 |
%m | 2자리 월 |
%d | 2자리 일 |
%H | 시 |
%i | 분 |
%s | 초 |
| 문제 표현 | 추천 패턴 |
|---|---|
| 2026년 10월 데이터 | date >= '2026-10-01' AND date < '2026-11-01' |
| 두 날짜 차이가 30일 이상 | DATEDIFF(end_date, start_date) >= 30 |
출력 형식 YYYY-MM-DD | DATE_FORMAT(date_col, '%Y-%m-%d') |
| 특정 연도 | YEAR(date_col) = 2026 |
| 특정 월 | MONTH(date_col) = 10 |