byworld 님의 블로그

mysql 자주쓰는 함수들 정리 본문

TIL

mysql 자주쓰는 함수들 정리

byworld 님의 블로그 2026. 5. 10. 04:17
 

자주 쓰는 SQL 함수 정리 

MySQL 기준으로 코테/실무 초반에 자주 쓰는 것들

 

함수 의미 예시 결과
COUNT() 개수 COUNT(*) row 수
SUM() 합계 SUM(price) 총합
AVG() 평균 AVG(score) 평균
MAX() 최댓값 MAX(score) 최대
MIN() 최솟값 MIN(score) 최소
ROUND(x,n) 반올림 ROUND(3.1415,2) 3.14
FLOOR(x) 내림 FLOOR(3.9) 3
CEIL(x) 올림 CEIL(3.1) 4
ABS(x) 절댓값 ABS(-5) 5
MOD(a,b) 나머지 MOD(10,3) 1
POWER(a,b) 거듭제곱 POWER(2,3) 8

문자열 함수


함수 의미 예시 결과
CONCAT() 문자열 합치기 CONCAT('A','B') AB
UPPER() 대문자 UPPER('abc') ABC
LOWER() 소문자 LOWER('ABC') abc
LENGTH() 길이 LENGTH('abc') 3
SUBSTRING() 부분 문자열 SUBSTRING('abcdef',2,3) bcd
REPLACE() 치환 REPLACE('apple','p','x') axxle
TRIM() 공백 제거 TRIM(' hi ') hi

NULL 처리

함수 의미 예시
IFNULL(a,b) a가 NULL이면 b IFNULL(TLNO,'NONE')
COALESCE(a,b,c) NULL 아닌 첫 값 COALESCE(NULL,5,10)

날짜 함수

함수 의미 예시
NOW() 현재 날짜+시간 NOW()
CURDATE() 오늘 날짜 CURDATE()
YEAR() 연도 추출 YEAR(date)
MONTH() 월 추출 MONTH(date)
DAY() 일 추출 DAY(date)
DATEDIFF() 날짜 차이 DATEDIFF(a,b)
DATE_FORMAT() 날짜 포맷 DATE_FORMAT(date,'%Y-%m-%d')

조건/분기

함수 의미 예시
CASE WHEN if-else CASE WHEN score>=90 THEN 'A' END
IF(cond,a,b) 조건 분기 IF(score>=60,'PASS','FAIL')

패턴 검색


 

표현 의미
LIKE 'A%' A로 시작
LIKE '%A' A로 끝
LIKE '%A%' A 포함
_ 한 글자 wildcard

예:

 
WHERE name LIKE 'A__'
 

 

A로 시작하는 3글자
 

 


그룹/집계 관련


문법 의미
GROUP BY 그룹화
HAVING 그룹 조건
ORDER BY 정렬
LIMIT 개수 제한
DISTINCT 중복 제거

NULL 관련 핵심


문법 의미
IS NULL NULL 여부
IS NOT NULL NULL 아님
NOT EXISTS 존재 안 함
NOT IN 포함 안 됨 (NULL 주의)

JOIN

문법 의미
INNER JOIN 공통만
LEFT JOIN 왼쪽 기준
RIGHT JOIN 오른쪽 기준

자주 쓰는 실전 패턴

여러 값 비교

 
WHERE a IN ('x','y','z')
 

NULL 대체

 
IFNULL(col,'NONE')
 

그룹 평균 조건

 
GROUP BY dept
HAVING AVG(score) >= 80
 

존재 여부 검사

 
WHERE EXISTS (
    SELECT 1 ...
)
 

재귀 트리 탐색

 
WITH RECURSIVE ...