본문 바로가기
DB/문법

MySQL Concat() 함수

by ssury94 2024. 11. 27.

MySQL 함수란?

데이터베이스에서 계산을 수행하고 데이터를 조작하며 결과를 반환하는 미리 정의된 작업입니다.

함수들은 복잡한 쿼리를 단순화하고 반복적인 작업을 자동화하는 데 도움을 줍니다.


문자열을 순서대로 연결하여 하나의 새로운 문자열을 생성하는 함수 : concat()

 

fname과 lname을 합쳐서 풀네임으로 조회하고싶다!

SELECT *, concat(author_fname,author_lname)
FROM books b ;

 

 

두 컬럼을 그냥 붙이게되서 가독성이 떨어집니다.

Jhumpa Lahiri로 보이면 좋겠어요.

 

SELECT *, concat(author_fname," ",author_lname)
FROM books b ;

' '로 사이를 띄워줘서 가독성은 올라갔지만

함수이름이 그대로 보이는 컬럼 이름... 가독성이 여전히 떨어집니다.

 

 

컬럼이름을 깔끔하게 full_name으로 변경해 가져오도록 해봅시다.

SELECT *, concat(author_fname," ",author_lname) as full_name
FROM books b ;

깔끔하게 full_name 컬럼으로 보여집니다.

 

SELECT *, concat(author_fname," ",author_lname) full_name
FROM books b ;

as를 생략해도 작동합니다.

 

SELECT title as orignal_title, author_fname as authoer ,pages, UPPER(title) as title
from books b ;

as를 사용해 여러 컬럼을 각자 다른 이름으로 불러올 수도 있습니다.


"책 제목 : 풀네임" 형식으로 보이는 컬럼(이름은 title_name) 하나만 조회하고 싶다.

예) The Namesake : Jhumpa Lahiri

 

 

 
SELECT concat(title,' : ',author_fname," ", author_lname)as tilte_name
from books b ;

 


응용문제!

-- 책 제목을 처음부터 10글자만 가져오고, 뒷부분에는 ...을 붙여서 가져오세요.

-- 예) The Namesa...

SELECT title ,concat(substr(title,1,10),'...') as shout_title
FROM books b ;

 

-- 책 제목이 10자 미만이면 그냥 불러오고, 10자 이상이면 생략후 ...을 붙여서 가져오세요.

SELECT title ,if(CHAR_LENGTH(title)<=10,title, CONCAT(SUBSTR(title,1,10),'...'))as shout_title
from books b ;

-- 해결과정 중 첫 디버그를 만나다

2024.11.27 - [데이터베이스/함수] - MySQL replace() 함수

 

 

MySQL replace() 함수

-- 문자열의 내용을 바꾸는 함수 replace()-- 책 제목에 The 가 있으면 Hello로 바꿔서 가져오자. SELECT title, REPLACE (title,'The','Hello')FROM books b ; 더보기 SELECT title, REPLACE(title,SUBSTR(title,11),'...')from

maeilcoding.tistory.com