문자열함수
-
[MySQL강의노트] 제7강 MySQL 함수 - 문자열 관련 함수들2009.09.20
[MySQL강의노트] 제7강 MySQL 함수 - 문자열 관련 함수들
MySQL 함수
문자열 함수
코드변환과 관련된 함수들
ASCII(str)
문자열 중 가장 왼쪽 문자의 ASCII 코드 값을 리턴합니다. NULL의 경우 NULL을 출력합니다.
SELECT ASCII('ABC'); -- 65
ORD(str)
멀티 바이트 문자열의 가장 왼쪽 문자의 코드값을 리턴합니다.
CHAR(N, ... [USING character_name])
숫자 값에 해당하는 문자들을 리턴합니다.
SELECT CHAR(65, 66, 15380608 USING utf8); -- AB가
BIN(N)
숫자 값을 이진수로 리턴합니다. CONV(N, 10, 2)와 같습니다.
HEX(N or str)
숫자 N을 16진수로 리턴합니다. 문자열의 경우 두자리의 16진수 문자열로 리턴합니다.
UNHEX(str)
16진수 문자열을 문자열로 리턴합니다.
문자열 길이를 구하는 함수들
BIT_LENGTH(str)
문자열의 길이를 bit 단위로 출력합니다.
SELECT BIT_LENGTH('가A'); -- 32 UTF-8 인코딩일 경우 한글은 3byte이며 영문은 1byte로 처리합니다.
LENGTH(str), OCTET_LENGTH(str)
byte단위의 길이를 리턴합니다.
CHAR_LENGTH(str)
글자 수를 리턴합니다. 멀티 바이트 문자의 경우 한 글자로 취급합니다. LENGTH()의 경우 바이트 단위로 글자 수를 셉니다.
SELECT CHAR_LENGTH('가나다'); -- 3
SELECT LENGTH('가나다'); -- 9 (UTF-8 인코딩일 경우 한글은 3byte 처리)
공백 처리 함수들
LTRIM(str)
문자열 왼쪽의 공백을 모두 제거하여 리턴합니다.
RTRIM(str)
문자열 오른쪽의 공백을 모두 제거하여 리턴합니다.
TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str), TRIM([remstr FROM] str)
문자열 str에서 양쪽으로 모든 remstr 문자열을 제거합니다. remstr이 지정되지 않으면 공백을 제거합니다. BOTH는 양쪽, LEADING은 문자열 왼쪽, TRAILING은 문자열 오른쪽의 모든 remstr 문자열을 제거합니다.
SPACE(N)
N개의 공백 문자열을 리턴합니다.
문자열 처리 함수들
CONCAT(str1, str2)
문자열들을 연결하여 리턴합니다.
SELECT CONCAT('ABC', 'DEF'); -- ABCDEF
CONCAT_WS(separator, str1, str2)
문자열들은 구분자로 연결하여 연결합니다.
SELECT CONCAT_WS(',', 'ABC', 'DEF'); -- ABC,DEF
INSERT(str, pos, len, newstr)
문자열 str을 POS 위치부터 len 길이만큼 잘라낸 후 그 자리를 newstr로 대체합니다.
INSTR(str, substr)
str에서 substr이 처음 나타나는 지점의 위치를 리턴합니다. LOCATE()와 인자의 순서가 바뀌었을 뿐 기능은 같습니다.
POSITION(substr IN str)
LOCATE(substr, str)와 동일한 표현입니다.
LOCATE(substr, str), LOCATE(substr, str, pos)
문자열 str에서 substr이 처음 나타나는 지점의 위치를 리턴합니다. 두 번째 문법은 str에서 pos 위치부터 시작해서 substr이 나타나는 지점의 위치를 리턴합니다.
SUBSTR(str, pos), SUBSTR(str FROM pos), SUBSTR(str, pos, len), SUBSTR(str FROM pos FOR len)
SUBSTRING()과 동일한 표현입니다.
SUBSTRING(str, pos), SUBSTRING(str FROM pos), SUBSTRING(str, pos, len), SUBSTRING(str FROM pos FOR len)
문자열 str를 pos 위치부터 끝까지 문자열를 리턴합니다. 두번째 문법은 문자열 str를 pos 위치부터 len 길이만큼 리턴합니다.
SUBSTRING_INDEX(str, delim, count)
문자열 str을 구분자 delim으로 분리하여 count번째 위치만큼 리턴합니다. count가 양수이면 문자열의 왼쪽부터 순서를 세고, 음수이면 오른쪽부터 순서를 셉니다.
SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2); -- www.mysql
LEFT(str, len)
문자열 str에서 왼쪽으로부터 len 길이만큼 리턴합니다.
RIGHT(str, len)
문자열 str을 오른쪽에서 len 길이만큼 리턴합니다.
MID(str, pos, len)
SUBSTRING(str, pos, len)과 동일한 표현입니다.
REPLACE(str, from_str, to_str)
문자열 str에서 from_str을 찾아서 to_str로 대치하여 리턴합니다.
REVERSE(str)
문자열을 뒤집어서 리턴합니다.
UPDATE t SET BLOB col=LOAD_FILE('file.txt') WHERE id=1;
LPAD(str, len, padstr)
문자열 str의 len길이가 될 때까지 왼쪽에 padstr을 반복하여 붙여서 리턴합니다.
RPAD(str, len, padstr)
문자열 str의 len길이가 될 때까지 오른쪽에 padstr을 반복하여 붙여서 리턴합니다.
REPEAT(str, count)
문자열 str을 count만큼 반복시켜서 리턴합니다.
FORMAT(X, D)
숫자 X를 "#,###,###.##"과 같은 형식으로 리턴합니다. D는 표시할 소수점 자리를 나타냅니다.
QUOTE(str)
문자열 str내에 작은 따옴표가 있을 경우 SQL 문장이 오류가 발생할 수 있기 때문에 이를 이스케이프 문자를 사용하여 처리합니다. 예를 들어 INSERT할 데이터 안에 작은 따옴표가 들어있을 경우 QUOTE() 함수로 묶어 주면 정상적으로 추가할 수 있습니다.
LCASE(str), LOWER(str)
문자열을 소문자로 변환하여 리턴합니다.
UCASE(str), UPPER(str)
문자열을 대문자 문자열로 리턴합니다.
LOAD_FILE(file_name)
문자열 파일을 읽어들입니다.