6. MySQL 문자열 함수
문자열을 합치는 concat()
-- fname 이 분리되어 있는데,
-- 합쳐서 full_name 으로 가져오고 싶다.
-- 문자열을 합치는 함수 : concat()
SELECT * , CONCAT(author_fname,author_lname)
FROM books;

-- 중간 사이 ,' ', 공백 시 띄어쓰기
SELECT * , CONCAT(author_fname,' ',author_lname)
FROM books;

SELECT * , CONCAT(author_fname,' ',author_lname) as full_name
FROM books;

-- 컬럼 하나로, "책제목 : 풀네임" 형식으로 조회하고 싶다. title_name
-- 예) The Ma,esake : Jhumpa Lahiri
-- Norse Mythology : Neil Gaiman
SELECT CONCAT(title,' : ',author_fname,' ',author_lname) as title_name
FROM books;

문자열의 일부분만 가져오는 함수 substring()
* substr과 동일
-- 책 제목이 너무 긴 책들이 있습니다.
-- 제목을 10글자만 보여주려합니다. 제목컬럼을 short_title 로 해주세요.
-- 문자열 데이터의 일부분만 가져오는 함수 : substring()
SELECT SUBSTRING(title,1,10) as short_title -- 첫번째 글자부터 10번째 글자까지 출력
from books;

-- 책 제목을, 맨 뒤에서 7번째 글자부터 가져오시오.
SELECT SUBSTRING(title,-7) as title -- 맨 뒤에서 7번째 글자까지 출력
from books;

문자열의 대소문자 처리하는 upper(), lower()
-- 대소문자 처리하는 함수
-- 대문자로 바꾸는 함수 upper()
-- 소문자로 바꾸는 함수 lower()
-- author_fname 을 모두 대문자로 바꿔서 가져오세요.
SELECT UPPER(author_fname) as author_fname -- 소문자를 대문자로 변경
from books;

SELECT LOWER(author_fname) as author_fname -- 대문자를 소문자로 변경
from books;

-- 앞 글자 소문자로 변경
SELECT author_fname,
CONCAT(LOWER(SUBSTRING(author_fname,1,1)), UPPER(SUBSTRING(author_fname,2))) AS anthor_fname
FROM books;

-- 각 데이터 불러오기 할때 각 컬럼 이름 변경
SELECT title as original_title,author_fname as author,pages,UPPER(title) as title
FROM books;

문자열의 내용을 바꾸는 replace()
-- 문자열의 내욜을 바꾸는 함수 : replace()
-- 책 제목에 The 가 있으면, Hello 로 바꾸고 싶다.
SELECT title,REPLACE(title,'The','Hello')
FROM books;

-- 책 제목에 The가 있으면, 제거하고 가져오세요
SELECT title,REPLACE(title,'The','')
FROM books;

문자열의 순서를 역순으로 바꿔주는 reverse()
SELECT author_lname,REVERSE(author_lname)
from books;
문자열의 갯수(길이)를 구하는 char_length()
-- 문자열의 길이(글자 수)를 구하는 함수 char_length()
-- 책제목 글자 갯수를 구하세요.
SELECT title,char_length(title) as count
from books;