SQL 첫걸음- 13강

13강. 문자열 연산

1
+ || CONCAT SUBSTRING TRIM CHARACTER_LENGTH

1. 문자열 결합

문자열 결합이란 문자열 데이터를 결합하는 연산을 말한다.
문자열을 결합하는 연산자에는 데이터베이스 제품마다 방언이 있어서 차이가 있다.

1-1) 데이터베이스 제품별 문자열 결합 연산자

  • +: SQL Server
  • ||: Oracle, DB2, PostgreSQ
  • CONCAT: MySQL

+ 연산자, || 연산자, CONCAT함수로 문자열을 결합할 수 있다!

  • 문자열 결합은 2개의 열 데이터를 모아서 1개의 열로 처리하고 싶은 경우에 자주 사용한다.

1-2) 문자열 결합 예시

1
SELECT * FROM sample35;
no price quantity unit
1 100 10
2 230 24
3 1980 5
  • 위의 테이블 sample35에서 quantity열과 unit열의 데이터를 결합해보자.
1
2
3
mysql> SELECT CONCAT(quantity, unit) FROM sample35;
oracle> SELECT quantity || unit FROM sample35;
sql server> SELECT quantity + unit FROM sample35;
CONCAT(quantity, unit)
10개
230캔
5장

sample35의 quantity열은 INTEGER형의 열이고, unit열은 문자열형이다.
CONCAT함수를 이용해 두 열을 결합하였다.
문자열과 수치형 데이터의 결합도 문제없이 연산할 수 있다.

단, 문자열과 수치형 데이터를 결합한 결과는 문자열형이 된다.


2. SUBSTRING 함수

문자열의 일부분을 계산해서 반환해주는 함수
데이터베이스에 따라서는 함수명이 SUBSTR인 경우도 있다.

2-1) 앞 4자리(년도) 추출

1
2
SUBSTRING('20140125001', 1, 4) -> '2014'
# SUBSTRING('문자열', 몇 째 자리부터, 추출할 개수)


2-2) 5째자리부터 2자리(월) 추출

1
SUBSTRING('20140125001', 5, 2) -> '01'

3. TRIM 함수

  • 문자열의 앞뒤로 여분의 스페이스가 있을 경우 이를 제거해주는 함수로
    문자열 도중에 존재하는 스페이스는 제거되지 않는다.

  • 고정길이 문자열형에 대해 많이 사용하는 함수이다.
1
TRIM('ABC   ') -> 'ABC'

4. CHARACTER_LENGTH 함수

  • OCTET_LENGTH 함수: 문자열의 길이를 바이트 단위로 계산해 돌려주는 함수

4-1) 문자세트 별 문자 수와 바이트 수

문자세트 문자 수 바이트 수
EUC-KR 12 19
UTF-8 12 26

문자열 데이터의 길이는 문자세트에 따라 다르다!