[SQL] 문자열 / 날짜 / REGEXP

ungnam·5일 전

문자열

분류문법의미예시 / 포인트
문자열 자르기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,'없음')

REGEXP

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}
\|ORcat\|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

날짜 포맷

포맷의미
%Y4자리 연도
%m2자리 월
%d2자리 일
%H시
%i분
%s초

날짜 조건 실전 패턴

문제 표현추천 패턴
2026년 10월 데이터date >= '2026-10-01' AND date < '2026-11-01'
두 날짜 차이가 30일 이상DATEDIFF(end_date, start_date) >= 30
출력 형식 YYYY-MM-DDDATE_FORMAT(date_col, '%Y-%m-%d')
특정 연도YEAR(date_col) = 2026
특정 월MONTH(date_col) = 10
profile
꾸준함을 잃지 말자.

0개의 댓글