개발지식 먹는 하마 님의 블로그

SQL 문법 - 문자열 본문

MySQL

SQL 문법 - 문자열

devhippo 2025. 1. 15. 17:07

우리가 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