DBGuide

자주 쓰는 문자열 함수

📖 약 2🏷 SQL 기초

문자열 함수 기초

PostgreSQL은 문자열 처리를 위한 다양한 내장 함수를 제공합니다.

길이와 대소문자

SELECT
    UPPER('hello world')     AS upper_case,   -- 'HELLO WORLD'
    LOWER('HELLO WORLD')     AS lower_case,   -- 'hello world'
    LENGTH('안녕하세요')       AS len,          -- 5
    CHAR_LENGTH('hello')     AS char_len;     -- 5

공백 제거

SELECT
    TRIM('  hello  ')         AS both_trim,   -- 'hello'
    LTRIM('  hello  ')        AS left_trim,   -- 'hello  '
    RTRIM('  hello  ')        AS right_trim;  -- '  hello'

사용자 입력 데이터는 항상 TRIM()으로 공백을 제거한 후 저장하는 것이 좋습니다.

부분 문자열 추출

SELECT
    SUBSTRING('PostgreSQL' FROM 1 FOR 4),  -- 'Post'
    LEFT('PostgreSQL', 4),                  -- 'Post'
    RIGHT('PostgreSQL', 3);                 -- 'SQL'

문자열 연결

-- || 연산자 또는 CONCAT 함수
SELECT
    '이름: ' || last_name || ' ' || first_name AS full_name,
    CONCAT(last_name, ' ', first_name)          AS full_name2,
    CONCAT_WS(', ', city, district, address)    AS full_address
FROM users;

검색과 치환

SELECT
    POSITION('SQL' IN 'PostgreSQL'),      -- 9
    STRPOS('PostgreSQL', 'SQL'),           -- 9 (동일)
    REPLACE('hello world', 'world', 'SQL'); -- 'hello SQL'

채우기와 반복

SELECT
    LPAD('42', 5, '0'),    -- '00042' (왼쪽 0으로 채우기)
    RPAD('42', 5, '-'),    -- '42---' (오른쪽 - 채우기)
    REPEAT('ab', 3);       -- 'ababab'

패턴 매칭 — LIKE

-- % : 임의의 문자열, _ : 임의의 한 글자
SELECT name FROM products WHERE name LIKE '스마트%';     -- '스마트'로 시작
SELECT name FROM products WHERE name LIKE '%폰';         -- '폰'으로 끝남
SELECT code FROM items    WHERE code LIKE 'A__01';       -- A + 2글자 + 01

정규표현식 — REGEXP

-- 이메일 형식 검증
SELECT email
FROM users
WHERE email ~ '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$';

자주 쓰는 함수 요약

함수 설명 예시 결과
UPPER(s) 대문자 변환 'HELLO'
LOWER(s) 소문자 변환 'hello'
LENGTH(s) 문자 수 5
TRIM(s) 양쪽 공백 제거 'hello'
SUBSTRING(s, n, len) 부분 추출 'ello'
REPLACE(s, a, b) 치환 'hXllo'
LPAD(s, n, c) 왼쪽 채우기 '00042'
SPLIT_PART(s, d, n) 구분자로 분리 후 n번째 'world'

댓글

... 으로 작성됩니다

댓글을 불러오는 중...