코딩/SQL
SQL : 문자열 관련 함수
americanoallday
2025. 4. 11. 09:39
🧵 1. 문자열 길이 관련 함수
함수명 | 설명 | 예시 |
LENGTH(str) | 문자열의 바이트 수 반환 | LENGTH('abc') → 3, LENGTH('가') → 3 |
CHAR_LENGTH(str) | 문자열의 문자 수 반환 | CHAR_LENGTH('가') → 1 |
✂️ 2. 문자열 추출
함수명 |
설명 | 예시 |
LEFT(str, n) | 왼쪽부터 n글자 추출 | LEFT('banana', 3) → 'ban' |
RIGHT(str, n) | 오른쪽부터 n글자 추출 | RIGHT('banana', 3) → 'ana' |
SUBSTRING(str, start, length) | 특정 위치부터 일정 길이 추출 | SUBSTRING('banana', 2, 3) → 'ana' |
SUBSTRING_INDEX(str, delim, n) | 구분자 기준 n번째까지 추출 | SUBSTRING_INDEX('a@b@c', '@', 2) → 'a@b' |
🔍 3. 문자열 검색
함수명 |
설명 | 예시 |
INSTR(str, substr) | substr이 처음 등장하는 위치 반환 | INSTR('banana', 'na') → 3 |
LOCATE(substr, str) | 위와 동일 (자리만 바뀜) | LOCATE('na', 'banana') → 3 |
LIKE, NOT LIKE | 특정 패턴과 일치 여부 확인 | WHERE name LIKE '%kim%' |
🔧 4. 문자열 변경/조합
함수명 | 설명 | 예시 |
REPLACE(str, from, to) | 문자열 치환 | REPLACE('hello', 'l', 'x') → 'hexxo' |
CONCAT(str1, str2, ...) | 문자열 연결 | CONCAT('Hi', ' ', 'Sunyoung') → 'Hi Sunyoung' |
CONCAT_WS(delim, str1, ...) | 구분자와 함께 문자열 연결 | CONCAT_WS('-', '2025', '04', '11') → '2025-04-11' |
REVERSE(str) | 문자열 뒤집기 | REVERSE('abc') → 'cba' |
🧼 5. 문자열 정리/포맷
함수명 |
설명 | 예시 |
LOWER(str) | 모두 소문자로 변환 | LOWER('ABC') → 'abc' |
UPPER(str) | 모두 대문자로 변환 | UPPER('abc') → 'ABC' |
TRIM(str) | 앞뒤 공백 제거 | TRIM(' SQL ') → 'SQL' |
LTRIM(str) | 왼쪽 공백 제거 | LTRIM(' SQL') → 'SQL' |
RTRIM(str) | 오른쪽 공백 제거 | RTRIM('SQL ') → 'SQL' |
🕹 예제 실습
1️⃣ 이메일에서 도메인만 뽑기
SELECT SUBSTRING(email, INSTR(email, '@') + 1) AS domain FROM users;
2️⃣ 이름에 ‘el’이 들어간 동물 찾기 (대소문자 구분 없이)
SELECT * FROM ANIMAL_INS WHERE LOWER(NAME) LIKE '%el%';
3️⃣ 상품 코드 앞 2자리만 추출해서 카테고리 구분
SELECT LEFT(PRODUCT_CODE, 2) AS CATEGORY FROM PRODUCT;
✨ 꿀팁
• 한글, 이모지, 특수문자 다루려면 CHAR_LENGTH() 사용해야 문자 수 정확히 셈
• 문자열 포맷 처리하려면 CONCAT_WS() + DATE_FORMAT() 조합도 좋음