본문 바로가기
SQL/SQL 스터디

SQL 독학: 9가지 자주 쓰는 문자열 함수 알아보기

by davi_kr 2023. 4. 23.
반응형

SQLD 공부 및 데이터 분석을 하기 위해 DB에 있는 값들을 불러올 때, SQL을 많이 활용했습니다.

이전에 독학하면서 공부했던 내용을 기록으로 남겨둡니다.

 

예시) user 테이블

 

id name email ssn 비고
1 Alice alice@example.com 123-45-6789  
2 Bob bob@example.com 234-56-7890  
3 Charlie charlie@example.com 345-67-8901  

 

1. UPPER - 문자열 대문자로 변환

SELECT id, UPPER(name) AS upper_name
FROM users;

 

id upper_name
1 ALICE
2 BOB
3 CHARLIE

 

2. LOWER - 문자열 소문자로 변환

SELECT id, LOWER(name) AS lower_name
FROM users;

 

id lower_name
1 alice
2 bob
3 charlie

 

3. LENGTH - 문자열 길이 계산

SELECT id, LENGTH(name) AS name_length
FROM users;

 

id name_length
1 5
2 3
3 7

 

4. CONCAT - 문자열 연결

SELECT id, CONCAT(name, '(', email, ')') AS name_and_email
FROM users;

 

id name_and_email
1 Alice(alice@example.com)
2 Bob(bob@example.com)
3 Charlie(charlie@example.com)

 

5. SUBSTRING - 문자열 일부 추출

 

5-1. ssn에서 첫 3글자 가져오기

SELECT id, SUBSTRING(ssn, 1, 3) AS first_3_digits
FROM users;

 

id first_3_digits
1 123
2 234
3 345

 

5-2. 이메일 주소에서 사용자 이름 부분만 추출하기

SELECT id, SUBSTRING(email FROM 1 FOR POSITION('@' IN email) - 1) AS username
FROM users;

 

id username
1 alice
2 bob
3 charlie

 

5-3. 주민번호에서 생년월일 부분만 추출하기(우리나라 기준으로 예시를 들기 위해 다른 테이블을 사용해보겠습니다.)

 

예시) user1 테이블

id name email ssn
1 Alice alice@example.com 900101-1234
2 Bob bob@example.com 880301-5678
3 Charlie charlie@example.com 950715-9012

 

SELECT id, SUBSTRING(ssn FROM 1 FOR 6) AS birth_date
FROM users1;

 

id birth_date
1 900101
2 880301
3 950715

 

6. REPLACE - 문자열 내 특정 문자열 대체

SELECT id, REPLACE(email, 'example.com', 'test.com') AS new_email
FROM users;

 

id new_email
1 alice@test.com
2 bob@test.com
3 charlie@test.com

 

7. TRIM - 문자열 앞뒤 공백 제거

 

예시) books 테이블

id book_title author price
1 The Catcher in the Rye J.D. Salinger 15.99
2 To Kill a Mockingbird Harper Lee 12.99
3 Moby-Dick Herman Melville 19.99

 

SELECT id, TRIM(book_title) AS trimmed_title
FROM books;

 

id trimmed_title
1 TheCatcherintheRye
2 ToKillaMockingbird
3 Moby-Dick

 

8. POSITION - 문자열 내 특정 문자열 위치 찾기

 

SELECT id, POSITION('@' IN email) AS at_position
FROM users;

 

id at_position
1 6
2 4
3 9

 

9. CHAR_LENGTH - 문자열 길이 계산

 

SELECT id, CHAR_LENGTH(name) AS name_char_length
FROM users;

 

id name_char_length
1 5
2 3
3 7

 

반응형

댓글