코딩/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() 조합도 좋음