강좌

HOME > 강좌 >
강좌| 리눅스 및 오픈소스에 관련된 강좌를 보실 수 있습니다.
 
스트링 함수
조회 : 6,037  


스트링 함수
1. LENGTH 함수
LENGTH 함수는 특정 문자열의 길이를 반환한다.

CHAR_LENGTH, LENGTHB, LENGTH 함수는 서로 같다.
1) 구문
LENGTH( length_operand )

length_operand :
character string
NULL
length_operand : 길이를 구할 문자열을 지정한다.
2) 예제
다음은 문자열 'Cubrid'의 길이를 반환하는 예제이다.
SELECT LENGTH('Cubrid') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
char_length('Cubrid')
=====================
6
1 rows selected.
다음은 공백문자를 포함한 문자열 'Cubrid '의 길이를 반환한다.
SELECT LENGTH('Cubrid  ') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
char_length('Cubrid  ')
=======================
8
1 rows selected.
다음은 입력 문자가 없을 때의 길이를 반환하는 예제이다.
SELECT LENGTH('') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
char_length('')
===============
0
1 rows selected.
다음은 입력 문자가 NULL일 때의 결과를 반환하는 예제이다.
SELECT LENGTH(NULL) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
char_length('null')
===================
NULL
1 rows selected.
2. CHAR_LENGTH 함수
CHAR_LENGTH 함수는 문자열을 구성하는 문자의 수를 반환한다. CHAR, NCHAR, VARCHAR, VARNCHAR (그리고 이들 데이터 타입에 대한 동의어) 타입의 스트링의 길이를 알아낼 때 사용할 수 있다.
1) 구문
CHAR_LENGTH ( length_operand )

length_operand :
character string
NULL
length_operand : 문자의 수를 구할 문자열을 지정한다. 문자열이 NULL이면 결과 또한 NULL이 반환된다. 문자열의 길이는 문자 단위로 측정되며 정수 값으로 반환된다. 문자열 내에 포함된 공백문자도 반환 값에 포함된다. 문자열을 표현하기 위해서 사용되는 작은 따옴표는 문자열 길이에 포함되지 않는다.
2) 예제
다음은 nation 테이블에서 국가명이 15~16 문자로 이루어진 국가를 반환하는 예제이다.
SELECT CHAR_LENGTH(name), name FROM nation WHERE CHAR_LENGTH(name) BETWEEN 15 AND 16 ORDER BY 1 ASC;
=== <Result of SELECT Command in Line 1> ===
char_length(name)   name
=============================
15         'Solomon Islands'
16         'Papua-New Guinea'
2 rows selected.
3. BIT_LENGTH 함수
BIT_LENGTH 함수는 스트링을 구성하는 비트 수를 정수 값으로 반환한다.
1) 구문
BIT_LENGTH ( bit_length_operand )

bit_length_operand :
bit string
character string
NULL
bit_length_operand : 비트수를 구할 문자열 또는 비트열을 지정한다. 값이 NULL이면 NULL 값을 반환한다.
2) 예제
다음은 문자열 'Cubrid'의 비트 수를 반환하는 예제이다.
SELECT BIT_LENGTH('Cubrid') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
bit_length('Cubrid')
====================
48
1 rows selected.
4. OCTET_LENGTH 함수
스트링의 길이를 바이트 단위로 얻고자 할 때 OCTET_LENGTH 함수를 사용할 수 있다.
1) 구문
OCTET_LENGTH ( octet_length_operand )

octet_length_operand :bit string
character string
NULL
octet_length_operand : 길이를 바이트 단위로 얻고자 하는 문자열 또는 비트열을 지정한다. 값이 NULL이면 NULL을 반환한다. 비트열의 비트 단위 길이가 8의 배수가 아닌 경우, 결과는 8의 배수 단위로 올림된 결과가 반환된다. 예를 들어, 8비트 비트열은 1을, 9비트 비트열은 2를 반환한다.
2) 예제
다음은 문자열 'Cubrid'의 길이를 바이트 단위로 반환하는 예제이다.
SELECT OCTET_LENGTH('Cubrid') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
octet_length('Cubrid')
======================
6
1 rows selected.
5. UPPER 함수
UPPER 함수는 모든 소문자 ASCII 또는 ISO 8859-1 라틴 문자를 대문자로 변환한 형태의 문자열을 반환한다.
1) 구문
UPPER ( upper_operand )

upper_operand :
character string
NULL
upper_operand : 대문자로 변환할 문자열을 지정한다. 값이 NULL이면 결과는 NULL이 반환된다.
2) 예제
다음은 문자열 'Cubrid'를 모두 대문자로 변환하여 반환하는 예제이다.
SELECT UPPER('Cubrid') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
upper('Cubrid')
===============
'CUBRID'
1 rows selected.
6. LOWER 함수
LOWER 함수는 모든 대문자 ASCII 또는 ISO 8859-1 라틴 문자를 소문자로 변환한 형태의 문자열을 반환한다.
1) 구문
LOWER ( lower_operand )

lower_operand :
character string
NULL
lower_operand : 소문자로 변환할 문자열을 지정한다. 값이 NULL이면 결과는 NULL이 반환된다.
2) 예제
다음은 문자열 'Cubrid'를 모두 소문자로 변환하여 반환하는 예제이다.
SELECT LOWER('Cubrid') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
lower('Cubrid')
===============
'cubrid'
1 rows selected.
7. TRIM 함수
TRIM 함수는 문자열의 앞과 뒤에 위치한 특정 문자들을 제거한다.
1) 구문
TRIM ( [ [ LEADING | TRAILING | BOTH ]
  [ trim_character_set ] FROM ] trim_operand )trim_character_set :

trim_character_set
:
character string
NULL

trim_operand :
character string literal
string valued attribute
NULL
trim_character_set : 선택 사항인 trim_character_settrim_operand에 의해 지정되는 문자열의 처음 그리고/또는 마지막 부분에서 제거할 문자들을 나타낸다. trim_character_set에 값을 지정하지 않으면, 하나의 공백문자(' ')가 자동으로 지정된다.
trim_operand : 값이 NULL이면 NULL이 반환된다.
문자열의 어느 부분에서 제거할 것인가를 명시하기 위해서 LEADING, TRAILING, 또는 BOTH 키워드를 선택 사항으로 지정할 수 있다. 아무런 키워드도 주어지지 않으면, BOTH가 사용된다.
trim_charactertrim_operand의 문자열은 같은 문자 코드 세트를 가져야 한다.
2) 예제
다음은 문자열의 앞과 뒤에서 문자 i를 제거하는 예제이다.
SELECT TRIM('i' FROM 'iiiiiOlympic') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
trim(both 'i' from 'iiiiiOlympic')
==================================
'Olympic'
1 rows selected.
다음은 문자열의 앞에서만 문자 i를 제거하는 예제이다.
SELECT TRIM(LEADING 'i' FROM 'iiiiiOlympiciiiii') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
trim(leading 'i' from 'iiiiiOlympiciiiii')
==========================================
'Olympiciiiii'
1 rows selected.
8. LTRIM 함수
LTRIM 함수는 문자열에서 특정 문자가 아닌 문자를 만날때까지 왼쪽에서부터 특정 문자를 제거한다.
1) 구문
LTRIM( char1 [, set])

char1 :
character string
NULL

set :
character string
NULL
LTRIM 함수는 char1의 왼쪽에서부터 set 안에 존재하지 않는 문자를 만날 때까지 해당 문자들을 제거한다.
char1 : 문자열을 지정한다. 값이 NULL이면 결과는 NULL이 반환된다.
set : char1에서 제거할 문자를 지정한다. 디폴트 값은 하나의 공백문자(' ')이다. 값이 NULL이면 결과는 NULL이 반환된다.
2) 예제
다음은 문자열 왼쪽에서 문자 X를 제거하는 예제이다.
SELECT LTRIM('XXX123', 'X') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
ltrim('XXX123', 'X')
====================
'123'
1 rows selected.
9. RTRIM 함수
RTRIM 함수는 문자열에서 특정 문자가 아닌 문자를 만날때까지 오른쪽에서부터 특정 문자를 제거한다.
1) 구문
RTRIM( char1 [, set])

char1 :
character string
NULL

set :
character string
NULL
RTRIM 함수는 char1의 오른쪽에서부터 set 안에 존재하지 않는 문자를 만날 때까지 해당 문자들을 제거한다.
char1 : 문자열을 지정한다. 값이 NULL이면 결과는 NULL이 반환된다.
set : char1에서 제거할 문자를 지정한다. 디폴트 값은 하나의 공백문자(' ')이다. 값이 NULL이면 결과는 NULL이 반환된다.
2) 예제
다음은 문자열 오른쪽에서부터 문자 X를 제거하는 예제이다.
SELECT RTRIM('123XXX', 'X') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
rtrim('123XXX', 'X')
====================
'123'
1 rows selected.
10. LPAD 함수
LPAD 함수는 문자열이 일정 길이가 될 때까지 왼쪽에서부터 특정 문자를 덧붙인다.
1) 구문
LPAD( char1, n, [, char2 ] )

char1 :
character string
NULL

n :
integer
NULL

char2 :
character string
NULL
LPAD 함수는 char1의 전체 길이가 n이 될 때까지 char1의 왼쪽 끝에서부터 char2를 덧붙인다.
char1 : 덧붙이는 대상 문자열을 지정한다. char1의 길이가 n보다 크면, char1을 길이 n으로 잘라내어 반환한다. char1이 더블 바이트 문자 세트(한국어 등)의 첫 번째 바이트에서 절단될 경우에 더블 바이트 문자 세트의 첫 번째 바이트를 제거하고 공백문자 하나를 덧붙인다. 값이 NULL이면 결과는 NULL이 반환된다.
n : 전체 길이를 지정한다. 값이 NULL이면 결과는 NULL이 반환된다.
char2 : 덧붙일 문자열을 지정한다. 하나의 공백문자(' ')가 char2의 디폴트 값으로 사용된다. 값이 NULL이면 결과는 NULL이 반환된다.
2) 예제
다음은 문자열이 6자리가 될 때까지 문자 X를 왼쪽에 덧붙이는 예제이다.
SELECT LPAD('123', 6, 'X') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
lpad('123', 6, 'X')
===================
'XXX123'
1 rows selected.
다음은 문자열을 4자리로 잘라내어 반환하는 예제이다.
SELECT LPAD('123456', 4, 'X') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
lpad('123456', 4, 'X')
======================
'1234'
1 rows selected.
11. RPAD 함수
RPAD 함수는 문자열이 일정 길이가 될 때까지 오른쪽에서부터 특정 문자를 덧붙인다.
1) 구문
RPAD( char1, n, [, char2 ] )

char1 :
character string
NULL

n :
integer
NULL

char2 :
character string
NULL
RPAD 함수는 char1의 전체 길이가 n이 될 때까지 char1의 오른쪽 끝에서부터 char2를 덧붙인다.
char1 : 덧붙이는 대상 문자열을 지정한다. char1의 길이가 n보다 크면, char1을 길이 n으로 잘라내어 반환한다. char1이 더블 바이트 문자 세트(한국어 등)의 첫 번째 바이트에서 절단될 경우에 더블 바이트 문자 세트의 첫 번째 바이트를 제거하고 공백문자 하나를 덧붙인다. 값이 NULL이면 결과는 NULL이 반환된다.
n : 전체 길이를 지정한다. 값이 NULL이면 결과는 NULL이 반환된다.
char2 : 덧붙일 문자열을 지정한다. 하나의 공백문자(' ')가 char2의 디폴트 값으로 사용된다. 값이 NULL이면 결과는 NULL이 반환된다.
2) 예제
다음은 문자열이 6자리가 될 때까지 문자 X를 오른쪽에 덧붙이는 예제이다.
SELECT RPAD('123', 6, 'X') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
rpad('123', 6, 'X')
===================
'123XXX'
1 rows selected.
다음은 문자열을 4자리로 잘라내어 반환하는 예제이다.
SELECT RPAD('123456', 4, 'X') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
rpad('123456', 4, 'X')
======================
'1234'
1 rows selected.
12. LIKE 함수
LIKE 함수는 특정 텍스트 부분과 일치하는 인스턴스를 탐색한다. 고정 길이 또는 가변 길의 문자열 타입을 가지는 속성만을 LIKE 함수를 이용하여 비교할 수 있다. LIKE로 비교하기 위해서는 문자열들이 반드시 같은 문자 코드 세트를 가져야 하며, 비트열에 대해서 LIKE 비교를 할 수 없다.
1) 구문
like_operand [ NOT ] LIKE like_operand [ ESCAPE like_operand ]

like_operand
character string
NULL
첫 번째 like_operand로 주어진 문자열의 첫 문자부터 시작하여, 두 번째 like_operand로 주어진 문자열 패턴을 탐색한다.
LIKE 함수는 다음의 문자들로 구성될 수 있다.
문자열 패턴 내의 "_" (언더스코어) 기호는 어떠한 하나의 문자를 의미한다.
문자열 패턴 내의 "%" 기호는 어떠한 문자들의 조합을 나타내며, 아무런 문자도 포함하지 않을 수 있다.
그 외에 어떠한 문자들은 그 자체를 의미한다.
실제로 _ 기호나 % 기호를 찾고 싶은 경우에는 ESCAPE 옵션을 통해 하나의 문자로 구성된 like_operand를 지정해야 한다. 문자열 내에서 ESCAPE 문자는 항상 _ 기호나 % 기호 앞에 위치해야 한다. 또한, _ 기호나 % 기호는 이러한 확장 문자(escape character)로 쓰일 수 없다. 예를 들어, '10%'와 같은 값을 찾기 위해서는 역슬래쉬()와 같은 확장 문자를 쓸 수 있으며, 실제 문자열은 '10\%'와 같이 입력되어야 한다.
LIKE 함수의 확장 문자에 대한 디폴트 값은 정의되어 있지 않다.
LIKE 함수의 어떠한 like_operand에 대해 NULL이 입력되면, 결과는 NULL이 반환된다.
2) 예제
다음은 nation 테이블에서 문자열 패턴 '_in%'에 매칭되는 국가명을 검색하는 예제이다. 이 경우에 문자열의 첫 문자는 어떠한 한 글자를 가지고 있고, 두 번째와 세 번째 문자가 각각 in이어야 하고, 문자열의 나머지 부분은 어떠한 문자의 조합이어도 된다.
SELECT name FROM nation WHERE name LIKE '_in%';
=== <Result of SELECT Command in Line 1> ===
name
=====
'Singapore'
'Finland'
2 rows selected.
13. CHR 함수
CHR 함수는 주어지는 ASCII 코드 값에 해당하는 문자를 반환한다.
1) 구문
CHR ( number_operand )
number_operand : ASCII 문자를 반환할 숫자 값을 지정한다.
2) 예제
다음은 ASCII 코드 90에 해당하는 문자를 반환하는 예제이다.
SELECT CHR(90) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
chr(90)
=======
'Z'
1 rows selected.
14. POSITION 함수
POSITION 함수는 한 스트링 내에서 다른 스트링의 위치를 반환하는 함수이다. 두 개의 비트열과 두 개의 문자열을 입력으로 주어질 수는 있지만, 문자열 내에서 비트열 위치를 구하는 것은 에러로 처리된다.

POSITION 함수는 1부터 시작하는 정수 인덱스 값을 반환한다. 이것은 탐색이 스트링의 첫 번째 위치에서부터 시작된다는 것을 의미한다. 입력이 문자열이면 위치는 문자 단위로 측정되며, 비트열이면 비트 단위로 측정된다.
1) 구문
POSITION ( position_operand   IN  position_operand )

position_operand :
bit string
character string
NULL
스트링 내에서 한 스트링의 위치가 이 함수에 의해서 결정되며, position_operand가 발견되지 않으면 0이 반환된다.
position operand : 위치를 반환할 문자열을 지정한다. 값이 공백 스트링이면 1이 반환된다. NULL이면 NULL이 반환된다.
POSITION 함수는 가끔 다른 함수와 연결되어서 사용된다. 예를 들어, 특정 스트링에서 일부 스트링을 추출하고 싶은 경우에 POSITION 함수의 결과를 SUBSTRING 함수의 입력으로 사용할 수 있다. 이와 같은 예는 SUBSTRING 함수 설명 부분에 나와있다.
2) 예제
다음은 문자열 'United States of America'에서 'of'의 위치를 반환하는 예제이다.
SELECT POSITION('of' IN 'United States of America') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
position('of' IN 'United States of America')
============================================
15
1 rows selected.
15. INSTR 함수
INSTR 함수는 POSITION 함수와 유사하게 한 스트링 내에서 다른 스트링의 위치를 반환하는 함수이나, 탐색을 시작할 위치를 지정할 수 있다.
1) 구문
INSTR( string , substring [, position ] )
주어진 string 내에서 substring을 탐색한다.
string : 입력 문자열을 지정한다.
substring : 위치를 반환할 문자열을 지정한다.
position : 선택 사항으로 탐색을 시작할 string의 위치를 나타낸다. 생략되면 디폴트 값인 1이 적용된다. string의 첫 번째 위치는 1로 지정된다. 값이 음수이면 string의 끝에서부터 거꾸로 개수만큼을 세어 위치한 곳에서부터 string의 앞부분을 향해 탐색한다.
2) 예제
다음은 문자열 'Seawind Beach Resort' 중 문자열 Sea의 위치를 반환하는 예제이다.
SELECT INSTR('Seawind Beach Resort', 'Sea') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
instr('Seawind Beach Resort', 'Sea')
====================================
1
1 rows selected.
다음은 문자열 'Seawind Beach Resort' 중 앞에서 15번째 위치부터 문자열 Resort의 위치를 반환하는 예제이다.
SELECT INSTR('Seawind Beach Resort', 'Resort', 15) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
instr('Seawind Beach Resort', 'Resort', 15)
===========================================
15
1 rows selected.
다음은 문자열 'Seawind Beach Resort' 중 앞에서 5번째 위치부터 문자열 Beach의 위치를 반환하는 예제이다.
SELECT INSTR('Seawind Beach Resort', 'Beach', 5) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
instr('Seawind Beach Resort', 'Beach', 5)
=========================================
9
1 rows selected.
다음은 문자열 'Seawind Beach Resort' 중 끝에서 9번째 위치부터 문자열 Beach의 위치를 반환하는 예제이다.
SELECT INSTR('Seawind Beach Resort', 'Beach', -9) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
instr('Seawind Beach Resort', 'Beach', -9)
==========================================
0
1 rows selected.

[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1625


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
큐브리드