SQL의 문자열 처리 함수들에 대해 알아보자.
1. concat 함수
-- 작가 이름의 문자열을 합쳐서 가져오고 싶다면?, concat()
-- 띄어쓰기는 ,' ', 로 줄 수 있다.
select concat(author_fname,' ',author_lname) from books;
concat 함수에 대해 알아보자. 괄호 안에 이어 붙여 출력할 컬럼을 , 콤마로 구분해 입력하면 된다.
띄어쓰기를 넣기 위해 ' ' 를 넣은 모습이다.
이 때 출력된 컬럼이 concat.... 로 길게 나오는데 간단하게 표현하기 위해
select concat(author_fname,' ',author_lname) as full_name from books;
as 를 추가해 새로 출력되는 컬럼의 별칭을 정해줄 수 있다.
2. concat_ws 함수
-- 컬럼의 문자열을 여러 개 붙여야할 때 내가 원하는 문자로 각 컬럼을 연결시킬 수 있는 함수 , concat_ws()
select concat_ws('-',author_fname, author_lname) as full_name from books;
concat_ws 는 괄호의 첫번째 값에 특정 문자를 입력해 컬럼간의 이어붙일 때 입력한 문자로 채워넣을 수 있다.
이어 붙일 컬럼이 여러 개일수록 사용이 편리한 함수이다.
3. substring 함수
-- 제목을 처음부터 10글자까지만 가져오기 (SQL은 시작 숫자가 0이 아니고 1부터 시작, 파이썬과 헷갈림)
-- substring(컬럼이름, 시작숫자, 끝숫자)
select substring(title, 1, 10) as title from books;
파이썬의 슬라이싱과 비슷하게
substring 함수로 원하는 문자열만 가져올 수 있다.
-- 제목의 맨 뒤에서 5번째 글자부터 끝까지 가져오기
select substring(title, -5) as title from books;
-- 제목의 처음부터 10글자를 가져오되, 뒤에 ...을 붙여서 가져오시오.
select concat(substring(title, 1, 10),'...') as Short_title from books;
4. replace 함수
-- '나쁜놈아 그렇게 살지마라' 에서 특정 부분 변환시켜서 출력하기
select replace('나쁜놈아 그렇게 살지마라', '나쁜놈' , '***');
비속어 필터링과 같이 특정 부분을 변환해 출력한 모습이다.
-- 제목 컬럼에 들어있는 e를 3으로 바꿔서 가져오세요
select replace(title, 'e', 3) as title from books;
5. reverse 함수
-- 문자열의 순서를 거꾸로 뒤집는 함수
-- hello -> olleh
-- author_fname을 뒤집어서 가져오세요.
select reverse(author_fname) from books;
괄호에 컬럼만 입력하면 된다.
6. char_length 함수
-- 문자열의 길이 구하기, char_length()
-- 책 제목의 길이가 얼마나 될까?
select char_length(title) as length from books;
파이썬의 len 함수와 비슷하다.
-- 책 제목 길이는 12
-- 책 제목 길이는 15
select concat('책 제목 길이는',' ',char_length(title)) as length from books;
concat 함수와 함께 사용하여 문장으로 표현한 모습이다.
7. upper, lower 함수
-- 대문자, 소문자 바꾸기
select upper(title) from books ;
select lower(title) from books ;
'MySQL' 카테고리의 다른 글
MySQL - 데이터를 정렬하는 방법 : order by (0) | 2022.05.16 |
---|---|
MySQL - 데이터를 중복 없이 가져오기 : distinct (0) | 2022.05.16 |
MySQL 테이블에 데이터 update 하기, delete 하기 (feat. 데이터 변경이 안될 때 해결 방법! , Error Code 1175) (0) | 2022.05.13 |
MySQL 테이블에 데이터 Select 하기 (0) | 2022.05.13 |
MySQL 테이블에 데이터 insert 하기 (0) | 2022.05.13 |
댓글