이번 포스팅부터는 문자열 함수들에 대해서 알아봅시다! SQL 문자열 함수는 텍스트 데이터를 가공하거나 분석할 때 사용하는 핵심 도구입니다. 사용자 이름, 이메일 주소, 설명 등의 문자열 데이터를 다룰 때 아래 함수들이 자주 사용됩니다.
다루는 함수 목록:
LENGTH()
UPPER() / LOWER()
CONCAT()
SUBSTRING()
💡 모든 예시는 company_db라는 예시 데이터베이스 안에 employees 및 projects 테이블을 기반으로 작성됩니다.
🏗️ 예시 데이터베이스 구조
CREATE TABLE employees (
emp_id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
department VARCHAR(50),
salary DECIMAL(10,2),
hire_date DATE
);
CREATE TABLE projects (
project_id INT PRIMARY KEY,
emp_id INT,
project_name VARCHAR(100),
start_date DATE,
end_date DATE,
budget DECIMAL(10,2),
FOREIGN KEY (emp_id) REFERENCES employees(emp_id)
);
INSERT INTO employees VALUES
(1, 'Alice', 'Kim', 'Engineering', 6500.50, '2020-05-20'),
(2, 'Bob', 'Lee', 'Marketing', 5400.00, '2021-03-15'),
(3, 'Charlie', 'Park', 'Engineering', 7100.00, '2019-11-05'),
(4, 'Diana', 'Choi', 'HR', 4300.75, '2022-01-10');
INSERT INTO projects VALUES
(101, 1, 'AI Platform', '2023-01-01', '2023-12-31', 100000.00),
(102, 2, 'Rebranding', '2023-03-15', '2023-08-30', 40000.00),
(103, 1, 'Data Lake', '2024-01-01', NULL, 80000.00),
(104, 3, 'Automation', '2022-06-01', '2022-12-31', 60000.00);
1. LENGTH(string) — 문자열 길이 반환
✔️ 사용 목적
- 문자열의 길이(문자 수)를 확인합니다.
- 사용자 입력 길이 검증, 필터링, 전처리에 유용합니다.
✔️ 구문 설명
string: 길이를 확인하고자 하는 문자열 컬럼 또는 값
✔️ 예제
SELECT first_name, LENGTH(first_name) AS name_length
FROM employees;
예시 결과:
| first_name | name_length |
|---|
| Alice | 5 |
| Bob | 3 |
| Charlie | 7 |
| Diana | 5 |
2. UPPER(string) / LOWER(string) — 대소문자 변환
✔️ 사용 목적
- 입력값의 대소문자 차이를 제거하여 정규화하거나
- 출력 형식을 일관성 있게 유지하고 싶을 때 사용합니다.
✔️ 예제
SELECT department,
UPPER(department) AS dept_upper,
LOWER(department) AS dept_lower
FROM employees;
예시 결과:
| department | dept_upper | dept_lower |
|---|
| Engineering | ENGINEERING | engineering |
| HR | HR | hr |
3. CONCAT(string1, string2, ...) — 문자열 이어붙이기
✔️ 사용 목적
- 이름, 주소 등 여러 텍스트 필드를 하나의 문장으로 연결할 때 사용합니다.
✔️ 예제
SELECT first_name, last_name,
CONCAT(first_name, ' ', last_name) AS full_name
FROM employees;
예시 결과:
| first_name | last_name | full_name |
|---|
| Alice | Kim | Alice Kim |
| Bob | Lee | Bob Lee |
| Charlie | Park | Charlie Park |
| Diana | Choi | Diana Choi |
4. SUBSTRING(string, start, length) — 문자열 자르기
✔️ 사용 목적
- 설명, 코드 등 긴 문자열의 앞부분을 미리보기로 보여줄 때 사용합니다.
✔️ 구문 설명
string: 자르고 싶은 원본 문자열
start: 몇 번째 글자부터 자를지 (1부터 시작)
length: 얼마나 자를지 (글자 수)
✔️ 예제
SELECT project_name,
SUBSTRING(project_name, 1, 5) AS short_title
FROM projects;
예시 결과:
| project_name | short_title |
|---|
| AI Platform | AI Pl |
| Rebranding | Rebra |
| Data Lake | Data |
| Automation | Autom |
✅ 정리 요약: 문자열 함수 비교
| 함수 | 기능 요약 | 활용 예시 |
|---|
LENGTH() | 문자열의 길이 반환 | 입력값 제한, 설명 길이 측정 |
UPPER() | 모든 글자를 대문자로 변환 | 이름/코드 비교 시 정규화 |
LOWER() | 모든 글자를 소문자로 변환 | 이메일 검색 등 대소문자 무시 |
CONCAT() | 여러 문자열을 하나로 결합 | 이름 합치기, 주소 합치기 등 |
SUBSTRING() | 문자열 일부만 추출 | 설명 미리보기, 코드 앞자리 분류 |
다음 파트에서는 날짜/시간 함수를 다뤄보겠습니다. See you!