MySQL/기초

MySQL 문자열 함수 [MySQL]

gakko 2022. 1. 17. 18:50

 

 

 

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