
ABS(x): 절대값을 반환합니다.ABS(-10) → 10CEIL(x): 숫자보다 크거나 같은 최소의 정수를 반환합니다.CEIL(4.1) → 5FLOOR(x): 작거나 같은 최대의 정수를 반환합니다.FLOOR(4.1) → 4ROUND(x, d): 소수점 d자리까지 반올림하여 숫자를 반환합니다.ROUND(4.5678, 2) → 4.57TRUNCATE(x, d): 숫자를 소수점 d자리까지 잘라냅니다 (반올림하지 않음).TRUNCATE(4.5678, 2) → 4.56MOD(x, y): x를 y로 나눈 나머지를 반환합니다.MOD(10, 3) → 1TRIM(str): 문자열 양쪽에 있는 지정된 문자를 제거합니다. 기본적으로 공백을 제거합니다.TRIM(' hello ') → 'hello'UPPER(str): 문자열을 대문자로 변환합니다.UPPER('hello') → 'HELLO'LOWER(str): 문자열을 소문자로 변환합니다.LOWER('HELLO') → 'hello'ASCII(str): 문자에 대응하는 아스키 코드를 반환합니다.ASCII('A') → 65LENGTH(str): 문자열의 길이를 반환합니다 (바이트 단위로 계산).LENGTH('한글') → 6 (한글은 3바이트로 계산)CHAR_LENGTH(str): 문자의 개수를 반환합니다 (문자 단위로 계산).CHAR_LENGTH('한글') → 2SUBSTR(str, start, length): 문자열의 일부를 잘라서 반환합니다.SUBSTR('abcdef', 2, 3) → 'bcd'STR_TO_DATE(str, format): 문자열을 날짜 형식으로 변환합니다.STR_TO_DATE('2025-03-27', '%Y-%m-%d') → 2025-03-27DATE_FORMAT(date, format): 날짜를 문자열로 변환합니다.DATE_FORMAT('2025-03-27', '%Y-%m-%d') → '2025-03-27'DATE(date): 날짜 부분만 반환합니다.DATE('2025-03-27 14:00:00') → 2025-03-27DATEDIFF(date1, date2): 두 날짜 간의 차이를 반환합니다 (일 단위).DATEDIFF('2025-03-27', '2025-03-20') → 7SYSDATE(): 현재 날짜와 시간을 반환합니다.SYSDATE() → 2025-03-27 12:00:00IS NULL: 값이 NULL인지 확인합니다.column_name IS NULL → 해당 값이 NULL이면 TRUEIS NOT NULL: 값이 NULL이 아닌지 확인합니다.column_name IS NOT NULL → 해당 값이 NULL이 아니면 TRUEIFNULL(expr, alt_value): 첫 번째 값이 NULL일 경우 두 번째 값을 반환합니다.IFNULL(NULL, 'default') → 'default'집계 함수는 여러 행의 데이터를 하나의 값으로 요약하는 함수입니다. 예:
COUNT(*): 행의 개수를 반환합니다.SUM(column): 해당 열의 합을 반환합니다.AVG(column): 해당 열의 평균을 반환합니다.MIN(column): 해당 열의 최소값을 반환합니다.MAX(column): 해당 열의 최대값을 반환합니다.SELECT COUNT(*), AVG(price)
FROM products;
이 쿼리는 products 테이블의 모든 행 수와 가격의 평균을 계산합니다.
윈도우 함수는 결과를 창(window)으로 나누어 계산하는 함수입니다. 각 행을 기준으로 값을 계산할 수 있습니다.
ROW_NUMBER(), RANK(), DENSE_RANK() 등:ROW_NUMBER(): 각 행에 고유한 순번을 부여합니다. 순위가 동일한 값에도 별개의 번호를 부여합니다.RANK(): 동일한 값에 대해 같은 순위를 부여하며, 그 뒤의 순위는 건너뛰기 (1, 2, 2, 4, 5...)DENSE_RANK(): RANK()와 비슷하지만, 순위 건너뛰기가 없음 (1, 2, 2, 3, 4...)PERCENT_RANK(): 백분율 순위를 계산하여 0과 1 사이의 값으로 반환합니다.SELECT name, score, ROW_NUMBER() OVER (ORDER BY score DESC) AS row_num
FROM students;
이 쿼리는 학생들의 점수를 기준으로 순위를 매깁니다.
DATEDIFF(now(), 입사일) → 현재 날짜와 입사일의 차이(근무일수) 계산합니다.DATE_ADD(date, INTERVAL n DAY) → 날짜에 n일 추가합니다.DATE_SUB(date, INTERVAL n DAY) → 날짜에서 n일 빼기합니다.SELECT DATEDIFF(NOW(), '2022-01-01') AS work_days;
위 쿼리는 2022년 1월 1일 이후 현재까지의 근무일 수를 반환합니다.