MySQL/MySQL icia 30일차

MySQL concat()에 대해서

swkn 2023. 4. 4. 18:09

MySQL에서의 concat 함수에 대해서

 

1. concat 함수란?

여러 문자열 혹은 칼럼 값을 합쳐서 가져와야 하는 경우가 있을 때 사용한다.

즉 , concat 함수는 둘 이상의 문자열을 입력한 순서대로 합쳐서 반환해 주는 함수이다.

 

2. 문법

concat(문자열1, 문자열2 [, 문자열3.. ])

 

3. 쿼리 ( Query )

더보기

 

-- 투표프로그램 명세셔
drop table if exists TBL_VOTE_202005;
create table TBL_VOTE_202005(
	V_JUMIN char(13) not null,
    V_NAME varchar(20),
    V_NO char(1),
    V_TIME char(4),
    V_AREA char(20),
    V_CONFIRM char(1),
    constraint TBL_VOTE_202005 primary key(V_JUMIN)
    );

select * from TBL_VOTE_202005;
desc TBL_VOTE_202005;

insert into tbl_vote_202005 values ('99010110001', '김유권', '1', '0930', '제1투표장', 'N');
insert into tbl_vote_202005 values ('89010120002', '이유권', '2', '0930', '제1투표장', 'N');
insert into tbl_vote_202005 values ('69010110003', '박유권', '3', '0930', '제1투표장', 'Y');
insert into tbl_vote_202005 values ('59010120004', '홍유권', '4', '0930', '제1투표장', 'Y');
insert into tbl_vote_202005 values ('79010110005', '조유권', '5', '0930', '제1투표장', 'Y');
insert into tbl_vote_202005 values ('89010120006', '최유권', '1', '0930', '제1투표장', 'Y');
insert into tbl_vote_202005 values ('59010110007', '지유권', '1', '0930', '제1투표장', 'Y');
insert into tbl_vote_202005 values ('49010120008', '장유권', '3', '0930', '제1투표장', 'Y');
insert into tbl_vote_202005 values ('79010110009', '정유권', '3', '0930', '제1투표장', 'Y');
insert into tbl_vote_202005 values ('89010120010', '강유권', '4', '0930', '제1투표장', 'Y');
insert into tbl_vote_202005 values ('99010110011', '신유권', '5', '0930', '제1투표장', 'Y');
insert into tbl_vote_202005 values ('79010120012', '오유권', '1', '1330', '제1투표장', 'Y');
insert into tbl_vote_202005 values ('69010110013', '현유권', '4', '1330', '제2투표장', 'Y');
insert into tbl_vote_202005 values ('89010110014', '왕유권', '2', '1330', '제2투표장', 'Y');
insert into tbl_vote_202005 values ('99010110015', '유유권', '3', '1330', '제2투표장', 'Y');
insert into tbl_vote_202005 values ('79010110016', '한유권', '2', '1330', '제2투표장', 'Y');
insert into tbl_vote_202005 values ('89010110017', '문유권', '4', '1330', '제2투표장', 'Y');
insert into tbl_vote_202005 values ('99010110018', '양유권', '2', '1330', '제2투표장', 'Y');
insert into tbl_vote_202005 values ('99010110019', '구유권', '4', '1330', '제2투표장', 'Y');
insert into tbl_vote_202005 values ('79010110020', '황유권', '5', '1330', '제2투표장', 'Y');
insert into tbl_vote_202005 values ('69010110021', '배유권', '3', '1330', '제2투표장', 'Y');
insert into tbl_vote_202005 values ('79010110022', '전유권', '3', '1330', '제2투표장', 'Y');
insert into tbl_vote_202005 values ('99010110023', '고유권', '1', '1330', '제2투표장', 'Y');
insert into tbl_vote_202005 values ('59010110024', '권유권', '3', '1330', '제2투표장', 'Y');
insert into tbl_vote_202005 values ('00010130024', '오유권', '3', '1330', '제2투표장', 'Y');
insert into tbl_vote_202005 values ('02010140024', '최유권', '3', '1330', '제2투표장', 'Y');

투표프로그램의 투표한 인원들의 데이터를 예제 쿼리로 사용해보겠다.

만약 V_TIME( 투표시간으로 서술 ) 이 숫자 4자리로 되어있는데 , 

이 사이에 :을 넣어 예를 들어 13:30으로 출력하고 싶을 때 사용한다.

 

3-1 문법

select concat(합칠 문자열,합칠 문자열,합칠 문자열);

 

select concat(substr(v_time, 1, 2),':',substr(v_time, 3, 2)) 
	as '투표시간' from tbl_vote_202005;

 

substr()으로 첫 번째에서 2자리 , 3번째 자리에서 2자리를 나눠놓고 , 그사이에 :를 삽입하도록 하였다.

삽입이 되었다

 

이처럼 concat()과 substr()를 적절히 이용하면 데이터를 잘 가공하여 출력도 가능하다.