티스토리 뷰
SQL 문자열 함수 기본 문법
문자열 함수는 텍스트 데이터를 조작하기 위해 사용되며, 주로 SELECT 문과 함께 사용됩니다.
문자열 함수의 주요 유형은 다음과 같습니다.
주요 문자열 함수 설명
1. CONCAT(): 여러 문자열을 하나로 결합합니다.
CONCAT(string1, string2, ...)
2. SUBSTRING(): 문자열의 일부분을 추출합니다.
SUBSTRING(string, start_position, length)
3. LENGTH(): 문자열의 길이를 반환합니다.
LENGTH(string)
4. UPPER() 및 LOWER(): 문자열을 대문자 또는 소문자로 변환합니다.
UPPER(string)
LOWER(string)
5. TRIM(): 문자열의 앞뒤 공백을 제거합니다.
TRIM(string)
6. REPLACE(): 문자열 내의 특정 부분을 다른 문자열로 대체합니다.
REPLACE(string, old_substring, new_substring)
예시
데이터베이스 테이블 예시
다음과 같은 employees 테이블이 있다고 가정해 봅시다.
employee_id | first_name | last_name | |
1 | John | Doe | john.doe@example.com |
2 | Jane | Smith | jane.smith@example.com |
3 | Emily | Davis | emily.davis@example.com |
예시 1: CONCAT() 사용
SELECT CONCAT(first_name, ' ', last_name) AS full_name
FROM employees;
결과: employees 테이블에서 이름과 성을 결합하여 전체 이름을 생성합니다.
full_name |
John Doe |
Jane Smith |
Emily Davis |
예시 2: SUBSTRING() 사용
SELECT SUBSTRING(email, 1, 5) AS email_prefix
FROM employees;
결과: 각 직원의 이메일 주소에서 첫 5자를 추출합니다.
email_prefix |
john. |
jane. |
emily |
예시 3: LENGTH() 사용
SELECT LENGTH(first_name) AS name_length
FROM employees;
결과: 각 직원의 이름 길이를 반환합니다.
name_length |
4 |
4 |
5 |
예시 4: UPPER() 및 LOWER() 사용
SELECT UPPER(last_name) AS upper_last_name, LOWER(first_name) AS lower_first_name
FROM employees;
결과: 성을 대문자로, 이름을 소문자로 변환합니다.
upper_last_name | lower_first_name |
DOE | john |
SMITH | jane |
DAVIS | emily |
예시 5: TRIM() 사용
SELECT TRIM(' John Doe ') AS trimmed_name;
결과: 문자열의 앞뒤 공백을 제거합니다.
trimmed_name |
John Doe |
예시 6: REPLACE() 사용
SELECT REPLACE(email, 'example.com', 'mycompany.com') AS new_email
FROM employees;
결과: 이메일 주소의 도메인 부분을 변경합니다.
new_email |
john.doe@mycompany.com |
jane.smith@mycompany.com |
emily.davis@mycompany.com |
Good 사용법
1. 데이터 정리 및 형식화: 문자열 함수를 사용하여 데이터를 정리하고 형식화할 수 있습니다.
예를 들어, 이메일 주소에서 불필요한 공백을 제거하거나, 이름을 대문자로 통일하는 작업에 유용합니다.
SELECT TRIM(LOWER(first_name)) FROM employees;
2. 데이터 변환: 데이터를 특정 형식으로 변환할 때도 유용합니다.
예를 들어, 전화번호 형식을 통일하거나 도메인 이름을 대체하는 작업이 가능합니다.
SELECT REPLACE(phone_number, '-', '') FROM customers;
Bad 사용법
1. 성능 문제: 매우 큰 문자열 데이터를 다룰 때 문자열 함수가 성능 문제를 야기할 수 있습니다.
이러한 경우, 필요한 경우에만 함수를 사용하는 것이 좋습니다.
SELECT UPPER(large_text_column) FROM large_table;
2. 잘못된 데이터 변환: 문자열 함수를 사용하여 데이터를 잘못 변환할 수 있습니다.
예를 들어, 모든 이름을 대문자로 변환하면 원래 데이터의 의도가 손상될 수 있습니다.
SELECT UPPER(name) FROM employees; -- 이름이 원래의 형태를 잃음
SQL 문자열 함수는 데이터베이스에서 텍스트 데이터를 조작하고 변환하는 데 매우 유용한 도구입니다.
적절하게 사용하면 데이터를 더 정리되고 일관된 상태로 유지할 수 있습니다.
그러나 성능 문제나 데이터 손상 가능성을 염두에 두고 사용해야 합니다.