✅ 먼저 test1, test2 테이블 생성
SELECT col1, col2, ... FROM tableA
UNION | UNION ALL
SELECT col1, col2, ... FROM tableB
- test1 의 모든 데이터와 test2 의 모든 데이터를 중복된 값을 제거하여 검색
- test1 의 모든 데이터와 test2 의 모든 데이터를 중복된 값을 포함하여 검색
✅ celeb, snl_show table 활용
- celeb table
- snl_show table
1) inner-join
SELECT col1, col2, ...
FROM tableA
INNER JOIN tableB
ON tableA.column = tableB.column
WHERE condition;
- snl_show 에 호스트로 출연한 celeb 을 기준으로 celeb 테이블과 snl_show 테이블을 INNER JOIN
2) left-join
SELECT col1, col2, ...
FROM tableA
LEFT JOIN tableB
ON tableA.column = tableB.column
WHERE condition;
- snl_show 에 호스트로 출연한 celeb 을 기준으로 celeb 테이블과 snl_show 테이블을 LEFT JOIN
3) right-join
SELECT col1, col2, ...
FROM tableA
RIGHT JOIN tableB
ON tableA.column = tableB.column
WHERE condition;
- snl_show 에 호스트로 출연한 celeb 을 기준으로 celeb 테이블과 snl_show 테이블을 RIGHT JOIN
4) full outer-join
SELECT col1, col2, ...
FROM tableA
FULL OUTER JOIN tableB
ON tableA.column = tableB.column
WHERE condition;
- snl_show 에 호스트로 출연한 celeb 을 기준으로
celeb 테이블과 snl_show 테이블을 FULL OUTER JOIN
- BUT! mysql에서는 full outer join을 지원하지 않는다. 그래서 UNION을 이용해야 한다.
4) self- join
SELECT col1, col2, ...
FROM tableA, tableB
WHERE condition;
- snl_show 에 호스트로 출연한 celeb 을 기준으로 celeb 테이블과 snl_show 테이블을 SELF JOIN
- celeb 테이블의 연예인 중, snl_show 에 host 로 출연했고 소속사가 안테나인 사람의 이름과 직업을 검색
- celeb 테이블의 연예인 중, snl_show 에 host 로 출연했고,영화배우는 아니면서 YG 엔터테이먼트 소속이거나 40세 이상이면서 YG 엔터테이먼트 소속이 아닌 연예인의 이름과 나이, 직업, 소속사 정보, 시즌, 에피소드를 검색
- snl_show 에 출연한 celeb 중, 에피소드 7, 9, 10 중에 출연했거나 소속사가 YG로 시작하고 뒤에 6글자로 끝나는 사람 중 작년 9월 15일 이후에 출연했던 사람을 검색
! 컬럼명이 다를 경우, 컬럼명만 적재해도 된다.
그러나, 'id'처럼 컬럼명이 같을 경우에는 컬럼명을 적재해줘야 한다.
SELECT CONCAT(string1, string2, ...);
칼럼이나 테이블 이름에 별칭 생성
# 칼럼에 별칭 생성
SELECT column AS alias
FROM tablename;
# 테이블 이름에 별칭 생성
SELECT col1, col2, ...
FROM tablename AS alias;
as 생략 가능!!
- name 은 이름으로, agency 는 소속사로 별칭을 만들어서 검색
- name 과 job_title 을 합쳐서 profile 이라는 별칭을 만들어서 검색
- snl_korea 에 출연한 celeb 을 기준으로 두 테이블을 조인하여 다음과 같이 각 데이터의 별칭을 사용하여 검색
- 시즌, 에피소드, 방송일을 합쳐서 ‘방송정보’
- 이름, 직업을 합쳐서 ‘출연자정보’
검색한 결과의 중복 제거
SELECT DISTINCT col1, col2, ...
FROM tablename;
- 연예인 소속사 종류를 검색 - 중복 제외
검색결과를 정렬된 순으로 주어진 숫자만큼만 조회
SELECT col1, col2, ...
FROM tablename
WHERE condition
LIMIT number;
- 나이가 가장 적은 연예인 4명을 검색
출처: 제로베이스