SQL 공백 문자 처리 완벽 가이드
MySQL, MSSQL, Oracle, PostgreSQL에서 공백 문자를 제거하는 방법을 알아보세요.
MySQL 공백 처리
TRIM 함수:
-- 앞뒤 공백 제거
SELECT TRIM(' 안녕하세요 ') AS result;
-- 결과: '안녕하세요'
-- 앞 공백만 제거
SELECT LTRIM(' 안녕하세요') AS result;
-- 결과: '안녕하세요'
-- 뒤 공백만 제거
SELECT RTRIM('안녕하세요 ') AS result;
-- 결과: '안녕하세요'
-- REPLACE로 모든 공백 제거
SELECT REPLACE('안녕 하세요', ' ', '') AS result;
-- 결과: '안녕하세요'MySQL 특수 기능:
- TRIM은 기본적으로 앞뒤 공백만 제거합니다
- REPLACE 함수로 모든 공백을 제거할 수 있습니다
- REGEXP_REPLACE를 사용하여 정규식으로 공백을 제거할 수 있습니다 (MySQL 8.0+)
MSSQL 공백 처리
TRIM 함수:
-- 앞뒤 공백 제거 (SQL Server 2017+)
SELECT TRIM(' 안녕하세요 ') AS result;
-- 결과: '안녕하세요'
-- 이전 버전에서는 LTRIM + RTRIM 사용
SELECT LTRIM(RTRIM(' 안녕하세요 ')) AS result;
-- REPLACE로 모든 공백 제거
SELECT REPLACE('안녕 하세요', ' ', '') AS result;
-- 결과: '안녕하세요'MSSQL 특수 기능:
- SQL Server 2017 이상에서 TRIM 함수 지원
- 이전 버전은 LTRIM과 RTRIM을 조합하여 사용
- REPLACE 함수로 특정 문자 제거 가능
Oracle 공백 처리
TRIM 함수:
-- 앞뒤 공백 제거
SELECT TRIM(' 안녕하세요 ') AS result FROM DUAL;
-- 결과: '안녕하세요'
-- 앞 공백만 제거
SELECT LTRIM(' 안녕하세요') AS result FROM DUAL;
-- 뒤 공백만 제거
SELECT RTRIM('안녕하세요 ') AS result FROM DUAL;
-- REPLACE로 모든 공백 제거
SELECT REPLACE('안녕 하세요', ' ', '') AS result FROM DUAL;
-- 결과: '안녕하세요'
-- REGEXP_REPLACE로 정규식 사용
SELECT REGEXP_REPLACE('안녕 하세요', '\s+', ' ') AS result FROM DUAL;
-- 결과: '안녕 하세요' (여러 공백을 하나로)Oracle 특수 기능:
- REGEXP_REPLACE를 사용하여 정규식으로 공백 처리 가능
- TRIM은 기본적으로 앞뒤 공백만 제거
- REPLACE로 특정 문자 제거 가능
PostgreSQL 공백 처리
TRIM 함수:
-- 앞뒤 공백 제거
SELECT TRIM(' 안녕하세요 ') AS result;
-- 결과: '안녕하세요'
-- 앞 공백만 제거
SELECT LTRIM(' 안녕하세요') AS result;
-- 뒤 공백만 제거
SELECT RTRIM('안녕하세요 ') AS result;
-- REPLACE로 모든 공백 제거
SELECT REPLACE('안녕 하세요', ' ', '') AS result;
-- 결과: '안녕하세요'
-- REGEXP_REPLACE로 정규식 사용
SELECT REGEXP_REPLACE('안녕 하세요', '\s+', ' ', 'g') AS result;
-- 결과: '안녕 하세요'PostgreSQL 특수 기능:
- REGEXP_REPLACE를 사용하여 정규식으로 공백 처리 가능
- 'g' 플래그로 모든 매칭 항목 교체
- TRIM은 기본적으로 앞뒤 공백만 제거
공통 패턴 및 팁
UPDATE 문에서 공백 제거:
-- MySQL UPDATE table_name SET column_name = TRIM(column_name); -- MSSQL UPDATE table_name SET column_name = LTRIM(RTRIM(column_name)); -- Oracle UPDATE table_name SET column_name = TRIM(column_name); -- PostgreSQL UPDATE table_name SET column_name = TRIM(column_name);
WHERE 절에서 공백 체크:
-- 공백만 있는 값 찾기 SELECT * FROM table_name WHERE TRIM(column_name) = ''; -- 공백이 있는 값 찾기 SELECT * FROM table_name WHERE column_name LIKE '% %'; -- 공백이 없는 값 찾기 SELECT * FROM table_name WHERE column_name NOT LIKE '% %';
자주 묻는 질문 (FAQ)
Q: MySQL에서 공백 체크는 어떻게 하나요?
A: TRIM 함수를 사용하여 공백을 제거한 후 빈 문자열과 비교하거나, LENGTH 함수를 사용하여 길이를 확인할 수 있습니다.
Q: MSSQL에서 ISNULL과 공백을 함께 체크하려면?
A: ISNULL(TRIM(column_name), '') = ''또는 LEN(TRIM(ISNULL(column_name, ''))) = 0를 사용하세요.