1. MySQL 문자열 함수의 종류
많이 사용하는 문자열 함수의 종류는 아래와 같다.
함수 이름 | 설명 |
CONCAT(문자열, 문자열) | 문자열을 합쳐준다. |
SUBSTRING(문자열, 시작, 끝) | 문자열을 기준에 따라 나눠준다. |
REPLACE(문자열, target, replace) | 문자열 중의 target에 해당하는 부분을 replace로 바꾼다. |
REVERSE(문자열) | 문자열을 거꾸로 뒤집는다. |
CHAR_LENGTH(문자열) | 문자열의 길이를 반환한다.(공백도 포함) |
UPPER(문자열) | 문자열을 대문자로 전부 변환하여 반환한다. |
LOWER(문자열) | 문자열을 소문자로 전부 변환하여 반환한다. |
이제 예시를 통해 하나씩 알아가보도록 하자.
2. 예시로 알아보는 MySQL 문자열
- 오늘의 예시 테이블: school
id | name | grade | class |
1 | 짱구 | 2 | 1 |
2 | 주영 | 2 | 2 |
3 | 민아 | 3 | 1 |
- 테이블 생성
CREATE TABLE school(
id int auto_increment not null primary key,
name varchar(20),
grade int,
class int);
- 테이블에 정보 입력
INSERT INTO school(name, grade, class)
VALUES("짱구", 2, 1),
("주영", 2, 2),
("민아", 3, 1);
- CONCAT()
SELECT name,
CONCAT(grade, "-", class) AS classRoom
FROM school;
- 뒤에 AS 를 붙이면 자신이 원하는 이름으로 설정할 수 있다.
- AS를 붙이지 않으면 열이름이 CONCAT(grade, "-", class) 로 적혀서 더러워 보일 수 있다.
- 학년과 반을 붙여 반 이름을 출력해주는 코드이다.
- 결과
name | classRoom |
짱구 | 2-1 |
주영 | 2-2 |
민아 | 3-1 |
- SUBSTRING / SUBSTR
테이블에 있는 정보가 너무 짧으니 다른 예시로 보도록 하자.
SELECT SUBSTRING('this is mysql', 1, 4);
SELECT SUBSTRING('this is mysql', 7);
SELECT SUBSTRING('this is mysql', 3, 8);
- 결과
> this
> s mysql
> is is my
- 일반 프로그래밍 언어와는 다르게 문자열의 시작 1부터 시작이다.
- 두 개의 숫자를 적으면 두 숫자 인덱스만큼의 숫자가 출력된다.
- 반면 하나의 숫자만 적으면 그 숫자에 해당하는 인덱스부터 출력된다.
- SUBSTR로 줄여 쓸 수 있다.
- REPLACE
SELECT REPLACE(name, "구", "아") AS name
, grade, class
FROM school;
- 특정 문자를 다른 문자를 전부 바꿔준다.
- 결과
name | grade | class |
짱아 | 2 | 1 |
주영 | 2 | 2 |
민아 | 3 | 1 |
- 짱구의 "구"를 "아"로 바꿨기 때문에 짱아로 표시되는 것을 볼 수 있을 것이다.
- REVERSE
SELECT REVERSE(name) AS name
FROM school;
- 문자열을 뒤집어준다.
- 결과
name |
구짱 |
영주 |
아민 |
- 글자가 전부 뒤집어서 출력된다.
- CHAR_LENGTH
SELECT CHAR_LENGTH("this is mysql");
SELECT CHAR_LENGTH("length");
- 문자열의 길이를 출력해준다.
- 결과
> 13
> 6
- UPPER / LOWER
SELECT UPPER("This is MySQL");
SELECT LOWER("This is MySQL");
- UPPER는 문자열 전부를 대문자로 변환해 반환한다.
- 반면, LOWER는 소문자로 변환해 반환해준다.
- 결과
> THIS IS MYSQL
> this is mysql