본문 바로가기
Database/Mysql

Mysql/Mariadb 문자함수 (ASCII,CONCAT,LENGTH,LOCATE,LPAD,RPAD,LEFT, RIGHT)

by 화곡공룡 2020. 12. 14.
반응형

Mysql 문자 숫자함수에 대해 알아보겠습니다.

1. ASCII(아스키값 반환)

함수 사용법 : ASCII(str)

인자값의 첫번째 문자을 아스키 값으로 반환해준다.

한글자 이상의 값도 첫번째 문자만 반환되며 빈 문자는 0, NULL은 NULL로 반환된다.

mysql> select ascii('a') c1, ascii('abc') c2, ascii('bcd') c3, ascii(1) c4, ascii(123) c5, 
    -> ascii('') c6, ascii(null) c7 ;
+----+----+----+----+----+----+------+
| c1 | c2 | c3 | c4 | c5 | c6 | c7   |
+----+----+----+----+----+----+------+
| 97 | 97 | 98 | 49 | 49 |  0 | NULL |
+----+----+----+----+----+----+------+

2. CONCAT (연결된 문자열 반환)

함수 사용법 : CONCAT(str1,str2,str3,...)

인수를 연결하여 얻은 문자열을 반환합니다. 하나 이상의 인수가있을 수 있습니다.

모든 인수가 이진이 아닌 문자열이면 결과는 이진이 아닌 문자열입니다.

인수에 2 진 문자열이 포함 된 경우 결과는 2 진 문자열입니다.

숫자 인수는 동등한 비 이진 문자열 형식으로 변환됩니다.

mysql> select CONCAT('He','l','lo') c1, CONCAT('He',null,'low') c2, CONCAT(12,3) c3,
    -> CONCAT(12.3) c4 ;
+-------+------+------+------+
| c1    | c2   | c3   | c4   |
+-------+------+------+------+
| Hello | NULL | 123  | 12.3 |
+-------+------+------+------+

3. LENGTH (문자열 길이 반환)

함수 사용법 : LENGTH(str)

동일한 함수 : OCTET_LENGTH(str)

문자열의 길이를 반환합니다 .

mysql> select LENGTH('abcdef') c1, LENGTH(' abcdef ') c2, OCTET_LENGTH('abcdef') c3, 
    -> OCTET_LENGTH(' abcdef ') c4;
+----+----+----+----+
| c1 | c2 | c3 | c4 |
+----+----+----+----+
|  6 |  8 |  6 |  8 |
+----+----+----+----+

4. LOCATE (첫번째 문자열 위치 반환)

함수 사용법 : LOCATE(substr, str), LOCATE(substr, str, pos)

동일한 함수 : POSITION(substr IN str), INSTR(str,substr)

첫번째 인자가 있는 두번째 인자의 위치를 반환합니다. 없을경우 0을 반환합니다.

세번째 인자가 있을경우 인자의 자릿수부터 검생하여 두번째 인자의 위치를 반환합니다.

mysql> select LOCATE('bar', 'foobarbar') c1, LOCATE('xbar', 'foobar') c2,
    -> LOCATE('bar', 'foobarbar', 5) c3, POSITION('bar' IN 'foobarbar') c4 ;
+----+----+----+----+
| c1 | c2 | c3 | c4 |
+----+----+----+----+
|  4 |  0 |  7 |  4 |
+----+----+----+----+

5. LPAD, RPAD (인자 길이로 문자열 반환 후 남은 공백 채움)

함수 사용법 :

- LPAD(str,len,padstr) : 첫번째 문자를 인자를 두번째 인자의 길이까지 왼쪽으로 채운 문자열을 반환하며 남은 공간은 세번째 인자로 채운다.

- RPAD(str,len,padstr) : LPAD 와 반대로 오른쪽에 빈공간을 채운다.

mysql> select LPAD('hello',10,'?') c1, LPAD('hello',6,'?') c2, RPAD('hello',10,'?') c3,\
    -> RPAD('hello',6,'?') c4 ;
+------------+--------+------------+--------+
| c1         | c2     | c3         | c4     |
+------------+--------+------------+--------+
| ?????hello | ?hello | hello????? | hello? |
+------------+--------+------------+--------+

6. LEFT, RIGHT (인자 길이로 문자열 반환)

함수 사용법 :

- LEFT(str,len) : 첫번째 문자를 인자를 두번째 인자의 길이까지 왼쪽부터 문자 반환한다.

- RIGHT(str,len) : 첫번째 문자를 인자를 두번째 인자의 길이까지 오른쪽부터 문자 반환한다.

mysql> SELECT LEFT('foobarbar', 4) c1 ,RIGHT('foobarbar', 4) c2;
+------+------+
| c1   | c2   |
+------+------+
| foob | rbar |
+------+------+

이상 Mysql/MariaDB 문자함수에 대해 설명하였습니다.

 

반응형

댓글