CodeGym /행동 /SQL SELF /문자열 다루기: LENGTH(), SUBSTRING(), TRIM(), POSITION(), REPLA...

문자열 다루기: LENGTH(), SUBSTRING(), TRIM(), POSITION(), REPLACE(), INITCAP()

SQL SELF
레벨 6 , 레슨 0
사용 가능

이름, 주소, 이메일 같은 텍스트를 다룰 때 거의 항상 두 가지 중 하나를 하게 돼:

  • 문자열의 일부를 추출하기
  • 길이 알아내기
  • 불필요한 공백 지우기
  • 부분 문자열 찾거나/바꾸기
  • 출력 포맷팅하기

예를 들어, 이런 게 필요할 수 있어:

  • 전체 이름에서 성만 출력하기.
  • 성이 'П'로 시작하는 학생 찾기.
  • 모든 공백을 언더스코어로 바꾸기.
  • 성을 첫 글자만 대문자로 출력하기.

이런 작업들은 PostgreSQL의 문자열 함수로 쉽게 해결할 수 있어.

LENGTH() — 문자열 길이

LENGTH() 함수는 문자열의 문자 개수를 반환해.

문법:

LENGTH(string)

예시:

SELECT name, LENGTH(name) AS name_length
FROM students;
name name_length
Art 3
Song 4
Pal 3

이건 이름, 비밀번호, 기타 텍스트의 길이 체크할 때 유용해.

SUBSTRING() — 문자열 일부 추출

문자열에서 서브스트링을 뽑을 수 있어 — 예를 들어, 성의 처음 3글자나 이메일의 도메인 부분 등.

문법:

SUBSTRING(string FROM start FOR length)
  • start — 첫 글자 위치 (1부터 시작)
  • length — 몇 글자를 추출할지

예시 1: 성의 처음 3글자

SELECT last_name, SUBSTRING(last_name FROM 1 FOR 3) AS prefix
FROM students;
last_name prefix
Song Son
Pal Pal

예시 2: 이메일 도메인

SELECT email, SUBSTRING(email FROM POSITION('@' IN email) + 1) AS domain
FROM students;
email domain
otto@example.com example.com
maria@gmail.com gmail.com

TRIM() — 불필요한 공백 제거

문자열 앞/뒤의 공백(또는 다른 문자)을 지워줘.

문법:

TRIM([LEADING | TRAILING | BOTH] chars FROM string)

근데 보통은 이렇게 간단하게 써:

TRIM(string)

예시:

SELECT '[' || TRIM('   Art   ') || ']' AS cleaned;
cleaned
[Art]

특히 사용자가 직접 데이터를 입력할 때(예: 앞에 공백 넣는 경우) 중요해.

POSITION() — 서브스트링 위치 찾기

서브스트링이 시작되는 위치를 반환해.

문법:

POSITION(substring IN string)

예시:

SELECT email, POSITION('@' IN email) AS at_position
FROM students;
email at_position
otto@example.com 5
anna.pal@gmail.com 9

SUBSTRING()이랑 같이 써서 문자열 일부를 추출할 수도 있어.

REPLACE() — 서브스트링 바꾸기

모든 서브스트링을 다른 걸로 바꿔줘.

문법:

REPLACE(string, from_substring, to_substring)

예시: 공백을 언더스코어로 바꾸기

SELECT name, REPLACE(name, ' ', '_') AS fixed_name
FROM students;
name fixed_name
Otto Art Otto_Art
Maria Chi Maria_Chi

INITCAP() — 첫 글자 대문자

문자열을 각 단어의 첫 글자만 대문자로, 나머지는 소문자로 바꿔줘.

문법:

INITCAP(string)

예시:

SELECT INITCAP('anna pal') AS full_name;
full_name
Anna Pal

이름 표준화할 때 편해.

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION