개발지식 먹는 하마 님의 블로그
SQL 문법 - 문자열 본문
우리가 C++이나 Java에서 문자열을 자르고 붙이고 별 짓을 다하는 것처럼 SQL에서도 이와 같은 역할을 하는 문자열 함수가 존재한다.
[WHERE 패턴 조건, LIKE]
LIKE는 문자열 함수는 아니지만 문자열을 다루는 절이기 때문에 편의상 이곳에 정리하였다.
LIKE 구문 | 기능 | 응용 |
'A%' | A로 시작하는 문자 | |
'%A' | A로 끝나는 문자 | |
'%A%' | A를 포함하는 문자 | '%A%A%A%' : 문자열 내에 A가 3번 이상 들어가는 문자열 |
'A_' | A로 시작하는 두글자의 문자열 |
'%A _ _ A%' : A와 A사이에 두 글자가 있는 문자열 |
'[ ^A ]' | 첫번째 문자가 A가 아닌 모든 문자열 찾기 |
|
'[ A, B, C]' | 첫번째 문자가 A 또는 B 또는 C인 문자열 찾기 | |
'[ A - C ]' |
< LIKE와 ILIKE의 차이점 >
LIKE는 대소문자를 구분하기 때문에 정확하게 문자를 기입해야한다.
반면, ILIKE는 대소문자를 구분하지 않기 때문에 철자가 일치하는 모든 문자열을 반환한다.
[문자열 조작 함수]
- CONCAT
두 개 이상의 문자열을 연결한다. - SUBSTRING / SUBSTR(컬럼명, 시작 위치, 글자 수)
문자열의 시작 위치부터 글자 수만큼 추출한다. - LENGTH
문자열의 길이를 반환한다. - REPLACE
문자열 내의 특정 부분을 다른 문자열로 대체한다. - TRIM
문자열의 앞뒤 공백을 제거한다.
SELECT
CONCAT('안녕하세요', ' ', '반갑습니다') AS concat_result,
SUBSTRING('Hello World', 7, 11) AS substring_result,
LENGTH('Hello World') AS length_result,
REPLACE('Hello World', 'Hello', 'Bye') AS replace_result,
TRIM(' Hello World ') AS trim_result;
[대소문자 변환 함수]
- UPPER
문자열을 대문자로 변환한다. - LOWER
문자열을 소문자로 변환한다.
SELECT
UPPER('Hello') AS upper_result,
LOWER('WORLD') AS lower_result;
[문자열 위치 함수]
- LEFT (컬럼명, 개수)
문자열의 왼쪽에서부터 지정된 수의 문자를 반환한다. - RIGHT (컬럼명, 개수)
문자열의 오른쪽에서부터 지정된 수의 문자를 반환한다.
* 지정된 수의 오른쪽 부터가 아님을 주의하자! 아래 예제의 경우 ll이 아닌 ld가 출력된다. - INSTR
문자열 내에서 부분 문자열의 위치를 찾는다.
SELECT
LEFT('Hello World', 4) AS left_result,
RIGHT('Hello World', 2) AS right_result,
INSTR('Hello World', 'd') AS instr_result;
[그 외 유용한 함수]
- REVERSE
문자열을 거꾸로 뒤집는다. - REPEAT
문자열을 지정된 횟수만큼 반복한다.
SELECT
REVERSE('evol') AS reverse_result,
REPEAT ('SQL', 2) AS repeat_result;
'MySQL' 카테고리의 다른 글
SQL - 피벗 테이블 (0) | 2025.01.17 |
---|---|
SQL 문법 - 서브쿼리, CTEs (0) | 2025.01.16 |
SQL 문법 - 조인 (0) | 2025.01.16 |
SQL 문법 - 조건 (0) | 2025.01.15 |
MySQL 스타일 가이드 (0) | 2025.01.14 |