
SUBSTRING, CONCAT, SUBSTRING_INDEX
REPLACE, TRIM, CHAR_LENGTH, LPAD/RPAD, UPPER/LOWER, LEFT/RIGHT
REPLACE(문자열, 바꿀것, 새것)
REPLACE('가성비 노트북!', '가성비', '프리미엄')
→ '프리미엄 노트북!'
해당 문자 여러 개 있으면 전부 바꿈!
TRIM(문자열)
TRIM(' 좋아요! ') → '좋아요!'
가운데 공백은 안 건드림! 앞뒤만!
| 함수 | '좋아요!' 결과 | 설명 |
|---|---|---|
| LENGTH | 13 | 바이트 (한글 3바이트) |
| CHAR_LENGTH | 4 | 글자 수! |
⚠️ 한글 다루면 CHAR_LENGTH!
SELECT
TRIM(comment) AS cleaned_comment,
CHAR_LENGTH(TRIM(comment)) AS comment_length
FROM reviews
LPAD(문자열, 전체길이, 채울문자) -- 왼쪽 채움
RPAD(문자열, 전체길이, 채울문자) -- 오른쪽 채움
LPAD('1', 5, '0') → '00001' -- 왼쪽에 0 채움
RPAD('1', 5, '0') → '10000' -- 오른쪽에 0 채움
SELECT
LPAD(order_number, 5, '0') AS formatted_order
FROM orders
| order_number | formatted_order |
|---|---|
| 1 | 00001 |
| 23 | 00023 |
| 456 | 00456 |
UPPER(문자열) -- 대문자로
LOWER(문자열) -- 소문자로
UPPER('hello') → 'HELLO'
LOWER('HELLO') → 'hello'
SELECT
LOWER(email) AS email
FROM users
LEFT(문자열, N) -- 왼쪽에서 N글자
RIGHT(문자열, N) -- 오른쪽에서 N글자
LEFT('01012345678', 3) → '010'
RIGHT('01012345678', 4) → '5678'
SELECT
RIGHT(phone, 4) AS last_four
FROM users
| 하고 싶은 것 | 함수 |
|---|---|
| 일부 추출 | SUBSTRING(문자열, 시작, 길이) |
| 합치기 | CONCAT(a, b, c) |
| 구분자로 자르기 | SUBSTRING_INDEX(문자열, 구분자, N) |
| 바꾸기 | REPLACE(문자열, 바꿀것, 새것) |
| 공백 제거 | TRIM(문자열) |
| 글자 수 (한글) | CHAR_LENGTH(문자열) |
| 왼쪽 채우기 | LPAD(문자열, 길이, 채울문자) |
| 대문자 | UPPER(문자열) |
| 소문자 | LOWER(문자열) |
| 왼쪽 N글자 | LEFT(문자열, N) |
| 오른쪽 N글자 | RIGHT(문자열, N) |
문자열 함수 완전 정복! 💪
