본문 바로가기
생각은축복이다

SQL 문자열 검색 & 편집 꿀팁

by 미지근한 방바닥 2025. 2. 14.
728x90


PostgreSQL에서 문자열을 검색하거나 편집하는 방법을 잘 활용하면 데이터를 보다 효율적으로 다룰 수 있습니다. 이번 글에서는 실무에서 자주 사용하는 SQL 문자열 처리 꿀팁을 소개해 드릴게요! 💡



 🔎 1. 특정 문자열 포함된 데이터 찾기

1) `LIKE` 활용 (가장 기본적인 방법)

 

SELECT * FROM your_table
WHERE a LIKE '%당근%';


✅ `%당근%` → 앞뒤로 `%`를 붙이면 문자열 어디에든 포함된 데이터를 찾을 수 있어요! (예를 들어, '당근' 대신 '고구마'를 넣으면 '고구마'가 포함된 데이터를 찾을 수 있습니다.)

### 2) `POSITION` 활용 (위치 찾기)

SELECT * FROM your_table
WHERE POSITION('당근' IN a) > 0;


✅ `POSITION('당근' IN 컬럼)` → 특정 문자열이 존재하는 경우, 위치(숫자)를 반환합니다. (예를 들어, '당근'을 '바나나'로 바꿔서 실행하면 '바나나'가 포함된 데이터의 위치를 확인할 수 있습니다.)

### 3) 정규식 `~` 활용 

SELECT * FROM your_table
WHERE a ~ '당근';


✅ `~` 연산자는 정규식을 사용할 수 있어요. 특정 패턴을 찾을 때 유용! (예를 들어, '당근'을 '사과'로 바꿔서 실행하면 '사과'가 포함된 데이터를 찾을 수 있습니다.)

### 4) `ILIKE` 활용 (대소문자 구분 없이 검색)

SELECT * FROM your_table
WHERE a ILIKE '%carrot%';


✅ `ILIKE`는 대소문자 구분 없이 문자열을 찾을 때 사용합니다. (예를 들어, 'carrot' 대신 'banana'를 입력하면 대소문자 관계없이 'banana'가 포함된 데이터를 찾을 수 있습니다.)

---

## ✂️ 2. 문자열 편집하기

### 1) 특정 문자열 바꾸기 (`REPLACE`)

 

SELECT REPLACE(a, '당근', 'Carrot') FROM your_table;


✅ `REPLACE(컬럼, '기존문자', '새문자')` → 모든 '당근'을 'Carrot'으로 변경! (예를 들어, '당근'을 '고구마'로 바꾸면 모든 '고구마'로 변경됩니다.)

### 2) 문자열 일부 추출하기 (`SUBSTRING`)

SELECT SUBSTRING(a FROM 2 FOR 5) FROM your_table;


✅ `SUBSTRING(컬럼 FROM 시작위치 FOR 길이)` → 특정 위치부터 원하는 길이만큼 문자열을 추출! (예를 들어, '2' 대신 '3'을 넣으면 세 번째 글자부터 추출됩니다.)

### 3) 특정 문자의 위치 찾기 (`STRPOS`)

SELECT STRPOS(a, '당근') FROM your_table;


✅ `STRPOS(컬럼, '찾을문자')` → '당근'이 몇 번째 위치에 있는지 찾을 수 있어요. (예를 들어, '당근' 대신 '딸기'를 넣으면 '딸기'가 등장하는 위치를 알 수 있습니다.)

### 4) 문자열 합치기 (`CONCAT`)

SELECT CONCAT(a, ' 좋아!') FROM your_table;


✅ `CONCAT(문자열1, 문자열2, ...)` → 여러 문자열을 하나로 합쳐줍니다. (예를 들어, '좋아!' 대신 '최고!'를 넣으면 다른 문장으로 변경할 수 있습니다.)

🚀 **TIP:** `||` 연산자를 사용해도 문자열을 합칠 수 있어요.

SELECT a || ' 좋아!' FROM your_table;


---

## 🎨 3. 문자열 길이 & 공백 처리

### 1) 문자열 길이 구하기 (`LENGTH`)

SELECT LENGTH(a) FROM your_table;


✅ `LENGTH(컬럼)` → 해당 문자열의 글자 수를 반환합니다.

### 2) 좌우 공백 제거 (`TRIM`, `LTRIM`, `RTRIM`)

SELECT TRIM(a) FROM your_table;  -- 양쪽 공백 제거
SELECT LTRIM(a) FROM your_table; -- 왼쪽 공백 제거
SELECT RTRIM(a) FROM your_table; -- 오른쪽 공백 제거


✅ `TRIM()`을 활용하면 불필요한 공백을 제거할 수 있어요.

---

## 📌 4. 실전 활용 예제

### 🔥 이메일에서 아이디만 추출하기

SELECT SPLIT_PART(email, '@', 1) FROM users;


✅ `SPLIT_PART(문자열, 구분자, 인덱스)` → 이메일에서 `@` 앞부분만 추출! (예를 들어, 'example@gmail.com'이라면 'example'만 출력됩니다.)

### 🔥 특정 문자로 시작하는 데이터 찾기

SELECT * FROM your_table
WHERE a LIKE '당근%';


✅ '당근'으로 시작하는 데이터만 검색할 수 있어요. (예를 들어, '당근'을 '포도'로 변경하면 '포도'로 시작하는 데이터를 찾을 수 있습니다.)

### 🔥 특정 문자로 끝나는 데이터 찾기

SELECT * FROM your_table
WHERE a LIKE '%당근';


✅ '당근'으로 끝나는 데이터만 검색할 수 있어요. (예를 들어, '당근'을 '오렌지'로 변경하면 '오렌지'로 끝나는 데이터를 찾을 수 있습니다.)

---

실무에서 꼭 필요한 SQL 문자열 처리 기술이니, 직접 따라 해보면서 익혀보세요! 😎🚀

728x90