mysql 문자열 함수...펌
문자열 관련 함수
- 문자열 함수 - 문자열 함수에서 사용되는 문자열의 길이가 MySQL 서버 파라미터 중의 max_allowed_packet - 값보다 크면 함수의 결과로 NULL 이 리턴된다. 그리고 모든 문자열 함수에서 문자열의 - 첫번째 문자의 위치값은 숫자로 1이다. 0이 아님에 유의하자. - 또한 참고로 알아둘 것은 일반적으로 얘기할때 '문자' 와 '문자열' 은 의미가 다르다. - 여기서 말하는 '문자' 는 한 character 의 문자 즉 문자 하나를 의미하며 - '문자열' 은 여러개의 character 로 이루어진 문자열은 의미한다.
- ASCII(str) - 문자열 str 의 가장 왼쪽에 있는 문자의 아스키 코드값을 가져온다. str 에 문자 대신 - 숫자가 들어가면 숫자를 문자열 형태로 변환하여 가장 왼쪽 문자의 아스키코드 값을 가져온다.
mysql> select ascii('a'); mysql>
- ORD(str) - 문자열 str 의 가장 왼쪽에 있는 문장의 아스키 코드값을 가져온다. 특히 한글과 같이 2byte - 이상으로 이루어진 문자에 대해서도 비트연산을 톤해 값을 가져올 수 있다. - 따라서 한글과 같은 문자의 아스키 값을 가져올 때 사용할 수 있다.
mysql> select ord('가'); mysql>
- CONV(N, from_base, to_base) - from_base 진수로 N 인 수를 to_base 진수로 변환한다. - 예를 들어 CONV(5, 10, 2) 는 10 진수로 5 인수를 2 진수로 변환한 값 101 을 가져온다.
mysql> select conv(5,10,2); mysql>
- BIN(N) - N 을 2 진수로 표현한 문자열을 가져온다.
mysql> select bin(12); mysql>
- OCT(N) - N 을 8 진수로 표현한 문자열을 가져온다.
mysql> select oct(12); mysql>
- HEX(N_or_S) - N_or_S 가 숫자이면 16 진수로 표현한 문자열을 가져오고, - N_or_S 가 문자열이면 16 진수 숫자를 가져온다.
mysql> select hex(255), hex('abc'); mysql>
- CHAR(N, ...) - 아스키 코드 값 N 을 문자로 변환한 뒤 합쳐서 하나의 문자열을 가져온다.
mysql> select char(77,121,83,81,76); mysql>
- CONCAT(str1, str2, ...) - 문자열을 합친다. str 이 숫자형인 경우 문자형으로 변환한 뒤 합친다.
mysql> select concat('My','S','QL'); mysql>
- CONCAT_WS(separator, srt1, str2, ...) - 문자열 사이에 구분자를 두어 합친다.
mysql> select concat_ws('_','MySQL','Database');
mysql>
- LENGTH(str) 혹은 OCTET_LENGTH(str) 혹은 - CHAR_LENGTH(str) 혹은 CHARACTER_LENGTH(str) - 문자열의 길이를 가져온다.
mysql> select length('text'); mysql>
- BIT_LENGTH(str) - 문자열의 길이를 bit 값으로 가져온다.
mysql> select bit_length('text'); mysql>
- LOCATE(substr,str) 혹은 POSITION(substr IN str) - str 에서 substr 이 처름 나타나는 지점의 위치를 가져온다. mysql> select locate('bar','foobarbar'); +---------------------------+ mysql>
- LOCATE(substr, str, pos) - str 에서 pos 위치부터 시작해서 substr 이 처음 나타나는 지점의 위치를 가져온다.
mysql> select locate('bar','foobarbar',5); mysql>
- INSTR(str, substr) - str 에서 substr 이 처음 나타나는 지점의 위치를 가져온다. - 인자 순서만 바뀌었을 뿐 LOCATE(substr,str) 와 기능은 같다.
mysql> select instr('foobarbar','bar'); mysql>
- LPAD(str, len, padstr) - 문자열이 len 만큼 길이가 될 때까지 str 의 왼쪽에 padstr 을 계속 붙인다.
mysql> select lpad('hi',4,'??'); mysql>
- RPAD(str, len, padstr) - 문자열이 len 만큼 길이가 될 때까지 str 의 오른쪽에 padstr 을 계속 붙인다.
mysql> select rpad('hi',5,'?'); mysql>
- LEFT(str, len) - str 문자열에서 len 길이만큼 왼쪽부터 잘라서 가져온다.
mysql> select left('foobarbar',5); mysql>
- RIGHT(str, len) - str 문자열에서 len 길이만큼 오른쪽부터 잘라서 가져온다.
mysql> select right('foodbarbar',4); mysql>
- SUBSTRING(str, pos, len) 혹은 SUBSTRING(str FROM pos FOR len) 혹은 MID(str, pos, len) - 문자열 str 에서 pos 위치부터 len 길이만큼 잘라낸다.
mysql> select substring('Quadratically',5,6); mysql>
- SUBSTRING(str, pos) 혹은 SUBSTRING(str FROM pos) - 문자열 str 에서 pos 위치부터 끝까지 문자를 잘라낸다.
mysql> select substring('Quadratically',5); mysql>
- SUBSTRING_INDEX(str, delim, count) - 문자열 str 에서 구분자 delim 의 count 번째 위치만큼 잘라낸다. count 가 양수이면 문자열의 - 왼쪽에서부터 delim 의 순서를 세고, count 가 음수이면 문자열의 오른쪽에서부터 delim 의 - 순서를 센다.
mysql> select substring_index('www.mycql.com','.',2); mysql>
- LTRIM(str) - 문자열 왼쪽의 모든 공백을 제거한다.
mysql> select ltrim(' barabr'); mysql>
- RTRIM(str) - 문자열 오른쪽의 모든 공백을 제거한다.
mysql> select rtrim('barbar '); mysql>
- TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str) - 문자열 str 로부터 양쪽으로 모든 remstr 문자열을 제거한다. remstr 이 지정되지 않으면 공백을 - 제거한다. [BOTH | LEADING | TRAILING] 은 옵션으로서 BOTH 는 문자열 양쪽, LEADING 은 - 문자열 왼쪽, TRAILING 은 문자열 오른쪽의 모든 remstr 문자열을 제거한다.
mysql> select trim(' bar '), trim('bar' from 'barfoobar'); mysql>
- SPACE(N) - N 길이만큼 공백을 가져온다.
mysql> select space(6); mysql>
- REPLACE(str, from_str, to_str) - 문자열 str 에서 from_str 문자열을 to_str 문자열로 바꾼다. - 한글과 같은 다중 바이트 문자에도 잘 적용된다.
mysql> select replace('www.mysql.com','w','Ww'); mysql>
- REPEAT(str, count) - 문자열 str을 count 번 반복하여 가져온다.
mysql> select repeat('MySQL',3); mysql>
- REVERSE(str) - 문자열 str 을 거꾸로 읽어서 가져온다.
mysql> select reverse('abc'); mysql>
- INSERT(str, pos, len, newstr) - 문자열 str 을 pos 위치부터 len 길이만큼 자나낸 후 그 자리를 newstr 로 대체한다.
mysql> select insert('Quadratic',3,4,'what'); mysql>
- ELT(N, str1, str2 ,str3, ...) - str1, str2, str3, ... 중 N 번째 문자열을 가져온다. ELT() 함수는 FIELD() 함수와 상호보완된다.
mysql> select elt(4,'ej','heja','hej','foo'); mysql>
- FIELD(str, str1, str2, str3, ...) - str1, str2, str3, ... 중 str 이 몇번째 문자열인가를 가져온다.
mysql> select field('ej','Hej','ej','Heja','hej','foo'); mysql>
- FIND_IN_SET(str, strlist) - 컴마 (,) 로 구분된 문자열 strlist 에서 str 이 몇번째 문자열인가를 가져온다. - 문자열 str 에 컴마가 들어가 있으면 제대로 동작하지 않는다.
mysql> select find_in_set('foo','he,my,foo,je,ke'); mysql>
- LCASE(str) 혹은 LOWER(str) - 문자열 str 은 소문자료 변환한다.
mysql> select lcase('MYSQL'); mysql> - UCASE(str) 혹은 UPPER(str) - 문자열 str 을 대문자로 변환한다.
mysql> select ucase('mysql'); mysql> - LOAD_FILE(file_name) - 시스템 파일로부터 값을 읽어들인다. 이 때 파일은 시스템에 존재해야 하며, file_name 은 - 절대 경로로 표시되어야 한다. 또한 file 은 시스템의 읽기 권한이 있어야 하며 MySQL 사용자는 - user 테이블의 FILE 권한이 있어야 한다. 이 조건들을 만족하지 못할 경우 NULL 을 가져온다.
- QUOTE(str) - 문자열 str 에 작은 따움표 (') 가 들어 있으면 SQL 문장이 문법적으로 잘못될 수 있다. 예를 들어 - INSERT 문에서 저장할 문자열 데이터에는 따움표 (') 를 붙이는데 데이터 자체에 따움표가 들어 - 있는 경우 따움표가 중복되어 INSERT 문이 제대로 실행되지 못한다. 그러한 경우를 방지하기 - 위해 QUOTE() 를 사용한다. QUOTE() 는 문자열에 작은 따움표가 있으면 앞에 역슬패쉬 (\) - 를 붙여서 작은 따움표 문자(\') 로 변환시켜주는 함수이다.
mysql> select quote("mysql'df"); mysql> |