조금씩 꾸준히 완성을 향해

[MySQL] 문자 관련 함수 정리 본문

Database/MySQL

[MySQL] 문자 관련 함수 정리

all_sound 2022. 9. 19. 14:03

 

함수 설명
UCASE, UPPER 모두 대문자로
LCASE, LOWER 모두 소문자로

 

mysql> SELECT
    -> UPPER('ABCDefg'),
    -> UCASE('ABCDefg'),
    -> LOWER('ABCDefg'),
    -> LCASE('ABCDefg');
+------------------+------------------+------------------+------------------+
| UPPER('ABCDefg') | UCASE('ABCDefg') | LOWER('ABCDefg') | LCASE('ABCDefg') |
+------------------+------------------+------------------+------------------+
| ABCDEFG          | ABCDEFG          | abcdefg          | abcdefg          |
+------------------+------------------+------------------+------------------+

 

 

 

함수 설명
CONCAT(...) 괄호 안의 내용들을 이어붙임
CONCAT_WS(S, ...) 괄호 안의 내용들을 S로 이어붙임

 

mysql> SELECT CONCAT('HELLO',' ', 'WORLD', '!');
+-----------------------------------+
| CONCAT('HELLO',' ', 'WORLD', '!') |
+-----------------------------------+
| HELLO WORLD!                      |
+-----------------------------------+
mysql> SELECT
    -> CONCAT_WS(' ', first_name, last_name) AS fullname
    -> FROM customer
    -> LIMIT 5;
+------------------+
| fullname         |
+------------------+
| MARY SMITH       |
| PATRICIA JOHNSON |
| LINDA WILLIAMS   |
| BARBARA JONES    |
| ELIZABETH BROWN  |
+------------------+

 

 

 

함수 설명
SUBSTRSUBSTRING (S, N1, N2) S 문자열을 N1번째 값부터 N2개 자름
LEFT(S, N) S 문자열을 왼쪽부터 N개 자름
RIGHT(S, N) S 문자열을 오른쪽부터 N개 자름

 

mysql> SELECT
    -> create_date,
    -> LEFT(create_date, 4) AS Year,
    -> SUBSTR(create_date, 6, 2) AS Month,
    -> RiGHT(create_date, 2) AS Day
    -> From customer
    -> LIMIT 5;
+---------------------+------+-------+------+
| create_date         | Year | Month | Day  |
+---------------------+------+-------+------+
| 2006-02-14 22:04:36 | 2006 | 02    | 36   |
| 2006-02-14 22:04:36 | 2006 | 02    | 36   |
| 2006-02-14 22:04:36 | 2006 | 02    | 36   |
| 2006-02-14 22:04:36 | 2006 | 02    | 36   |
| 2006-02-14 22:04:36 | 2006 | 02    | 36   |
+---------------------+------+-------+------+

 

 

 

함수 설명
TRIM 양쪽 공백 제거
LTRIM 왼쪽 공백 제거
RTRIM 오른쪽 공백 제거

 

mysql> SELECT
    -> CONCAT('-', '  HELLO WORLD  ', '-') AS ORI,
    -> CONCAT('-', LTRIM('  HELLO WORLD '), '-') AS LTRIM,
    -> CONCAT('-', RTRIM('  HELLO WORLD '), '-') AS RTRIM,
    -> CONCAT('-', TRIM(' HELLO WORLD '), '-') AS TRIM;
+-------------------+----------------+-----------------+---------------+
| ORI               | LTRIM          | RTRIM           | TRIM          |
+-------------------+----------------+-----------------+---------------+
| -  HELLO WORLD  - | -HELLO WORLD - | -  HELLO WORLD- | -HELLO WORLD- |
+-------------------+----------------+-----------------+---------------+

 

 

 

함수 설명
LENGTH 문자열의 바이트 길이
CHAR_LENGTH, CHARACTER_LEGNTH 문자열의 문자 길이

 

mysql> SELECT
    -> LENGTH('Hello'),
    -> LENGTH('안녕하세요');
+-----------------+----------------------+
| LENGTH('Hello') | LENGTH('안녕하세요') |
+-----------------+----------------------+
|               5 |                   10 |
+-----------------+----------------------+
mysql> SELECT
    -> CHAR_LENGTH('Hello'),
    -> CHAR_LENGTH('안녕하세요');
+----------------------+---------------------------+
| CHAR_LENGTH('Hello') | CHAR_LENGTH('안녕하세요') |
+----------------------+---------------------------+
|                    5 |                         5 |
+----------------------+---------------------------+

 

 

 

함수 설명
LPAD(S, N, P) S가 N글자가 될 때까지 P를 이어붙임
RPAD(S, N, P) S가 N글자가 될 때까지 P를 이어붙임

 

mysql> SELECT
    -> LPAD(last_name, 8, '*'),
    -> RPAD(customer_id, 5, 0)
    -> FROM customer
    -> LIMIT 5;
+-------------------------+-------------------------+
| LPAD(last_name, 8, '*') | RPAD(customer_id, 5, 0) |
+-------------------------+-------------------------+
| ***ABNEY                | 50500                   |
| ****ADAM                | 50400                   |
| ***ADAMS                | 36000                   |
| ALEXANDE                | 96000                   |
| **ALLARD                | 47000                   |
+-------------------------+-------------------------+

 

 

 

함수 설명
REPLACE(S, A, B) S중 A를 B로 변경

 

mysql> SELECT
    -> REPLACE('Oracle is the best', 'Oracle', 'MySQL');
+--------------------------------------------------+
| REPLACE('Oracle is the best', 'Oracle', 'MySQL') |
+--------------------------------------------------+
| MySQL is the best                                |
+--------------------------------------------------+

 

 

 

함수 설명
INSTR(S, s) S중 s의 첫 위치 반환, 없을 시 0

 

mysql> SELECT
    -> INSTR('MYSQL', 'MY'),
    -> INSTR('MYSQL', 'SQL'),
    -> INSTR('MYSQL', 'LL');
+----------------------+-----------------------+----------------------+
| INSTR('MYSQL', 'MY') | INSTR('MYSQL', 'SQL') | INSTR('MYSQL', 'LL') |
+----------------------+-----------------------+----------------------+
|                    1 |                     3 |                    0 |
+----------------------+-----------------------+----------------------+

 

 

 

함수 설명
CAST(A, T) A를 T 자료형으로 변환

 

mysql> SELECT
    -> '9' = 9,   -- FALSE
    -> CONVERT('9', DECIMAL) = 9;  -- TRUE
+---------+---------------------------+
| '9' = 9 | CONVERT('9', DECIMAL) = 9 |
+---------+---------------------------+
|       1 |                         1 |
+---------+---------------------------+

'Database > MySQL' 카테고리의 다른 글

[MySQL] VIEW  (0) 2022.09.21
[MySQL] 조건문과 NULL ( IF, CASE, COALESCE, IFNULL)  (0) 2022.09.20
[MySQL] 숫자 관련 함수 정리  (0) 2022.09.18
[MySQL] subquery 서브쿼리 기본 사용예제  (0) 2022.09.18
[MySQL] Alter Table  (0) 2022.09.17