제로베이스 SQL Chapter7~9(Union, Join, Concat)

ningbbang·2023년 4월 30일
0

Zerobase DS13

목록 보기
32/48

Union

여러개의 SQL문을 합쳐서 하나의 SQL문으로 만들어주는 방법(단, 컬럼의 개수가 같아야 함)

UNION : 중복된 값을 제거하여 결합
UNION ALL : 중복된 값도 모두 결합

select column1, column2, --- from tableA
UNION | UNION ALL
select column1, column2, --- from tableB;
select * from test1 union all select * from test2;

Join

두 개 이상의 테이블을 결합하는 것
1) inner join : 테이블의 공통된 요소들을 통해 결합하는 조인

select column1, column2, ---
from tableA
inner join tableB
on tableA.column = tableB.column   #Join의 기준열
where condition;
select celeb.id, celeb.name, snl_show.id, snl_show.host
from celeb
inner join snl_show
on celeb.name = snl_show.host;

table.Column

2) left join : 왼쪽 테이블의 다른 데이터를 포함하는 조인

select column1, column2, ---
from tableA
left join tableB
on tableA.column = tableB.column   #Join의 기준열
where condition;

3) right join : 오른쪽 테이블의 다른 데이터를 포함하는 조인

select column1, column2, ---
from tableA
right join tableB
on tableA.column = tableB.column
where condition;

4) full outer join : 두 개의 테이블의 모든 영억을 포함하는 조인

select column1, column2, ---
from tableA
full outer join tableB
on tableA.column = tableB.column
where condition;

MySql에서는 지원하지 않음

5) self join :

select column1, column2, ---
from tableA, tableB, ---
where condition;

Concat

여러 문자열을 하나로 합치거나 연결

select concat('concat', ' ', 'test');
select concat('이름:', name) from celeb;

Alias

컬럼이나 테이블에 별칭 생성

1) 컬럼 별칭

select column as alias
from tablename

2) 테이블 별칭

select column as alias
from tablename as alias
select name as '이름' from celeb;
select name as '이름', agency as '소속사' from celeb;
select concat(name, ' : ', job_title) as profile from celeb;
as생략가능
select s.season, s.episode, c.name, c.job_title
from celeb as c, snl_show as s
where c.name = s.host;

Distinct

중복값 제거 후 출력

select distinct * from tablename

Limit

불러오는 데이터 개수 제한

select * from tablename limit 3
select * from tablename order by age asc limit 3
profile
HR Anaylist!

0개의 댓글