본문 바로가기

DataBase

[MySQL] 자주 사용하는 문자열 함수

반응형

DB를 사용하다보면 특정상황에서 문자열 함수(String Function)을 사용해야 할 일이 종종있다.
물론 DB에 저장되어 있는 데이터를 그대로 가져와서 Java등과 같은 소스레벨에서 문자열 처리를 해도 되지만
크게 중요한 부분이 아니라면 DB에서 제공하는 문자열 함수를 사용하여 동일한 결과를 얻어낼 수 있다.

오늘은 지극히 개인적인 주관으로 MySQL에서 자주 사용하는 문자열 함수 몇가지에 대하여 정리해 보았다.


[ INSTR() ]

사용법 : INSTR(str,substr)

특정 문자열에서 찾고자 하는 문자열이 있는지 확인한다. 검색하고자 하는 문자열이
찾는 문자열이 없을경우 0을 리턴하고 1개 이상 있을경우 첫번째 문자열의 시작 자리수를 리턴한다.

mysql> SELECT INSTR('foobarbar', 'bar');
         -> 4
 mysql> SELECT INSTR('xbar', 'foobar');
         -> 0




[ LENGTH() ]


문자열의 길이를 리턴한다.

 mysql> SELECT LENGTH('text');
         -> 4




[ REPLACE() ]


사용법 : REPLACE(str,from_str,to_str)


문자열에서 특정 문자열을 찾아 치환한다.

mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
         -> 'WwWwWw.mysql.com'




[ RIGHT() ]


사용법 : RIGHT(str,len)


문자열의 오른쪽부터 원하는 길이만큼 리턴한다

 mysql> SELECT RIGHT('foobarbar', 4);
         -> 'rbar'





[ SUBSTRING() ]


사용법 : SUBSTRING(str,pos), SUBSTRING(str FROM pos), SUBSTRING(str,pos,len), SUBSTRING(str FROM pos FOR len)


문자열을 원하는만큼 잘라내어 리턴한다.

mysql> SELECT SUBSTRING('Quadratically',5);
         -> 'ratically'
 mysql> SELECT SUBSTRING('foobarbar' FROM 4);
         -> 'barbar'
 mysql> SELECT SUBSTRING('Quadratically',5,6);
         -> 'ratica'
 mysql> SELECT SUBSTRING('Sakila', -3);
         -> 'ila'
 mysql> SELECT SUBSTRING('Sakila', -5, 3);
         -> 'aki'
 mysql> SELECT SUBSTRING('Sakila' FROM -4 FOR 2);
         -> 'ki'




[ TRIM() ]

사용법 : TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str), TRIM([remstr FROM] str)


문자열의 공백을 잘라내거나, 특정 문자열의 앞뒤로 존재하는 특정 문자를 찾아내서 잘라낸다.

mysql> SELECT TRIM('  bar   ');
         -> 'bar'
 mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');
         -> 'barxxx'
 mysql> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');
         -> 'bar'
 mysql> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');
         -> 'barx'





[ LOWER(str) ]


문자열을 모두 소문자로 치환하여 리턴한다.

mysql> SELECT LOWER('QUADRATICALLY');
        -> 'quadratically'





[UPPER()]


사용법 : UPPER(str)

특정 문자열을 모두 대문자로 치환하여 리턴한다.

mysql> SELECT UPPER('Hej');
        -> 'HEJ'



'DataBase' 카테고리의 다른 글

[Oracle] Join하여 Update 하기  (0) 2014.11.04
[MySQL] On Duplicate Key Update  (0) 2014.10.14
[MySQL] 리눅스 설치 오류  (0) 2014.10.01
[Oracle] JDBC 드라이버 다운로드  (0) 2014.09.17
[Oracle] 시퀀스 생성 - 자동증가  (0) 2014.09.09