JOIN
left join
왼쪽 테이블을 기준으로 왼쪽 테이블의 모든 데이터가 출력되고 매핑되는 키값이 없으면 NULL로 출력된다.
두 테이블을 합쳐 id, name, addr 출력
1
2
3
4 SELECT addr.id ,addr.addr, IFNULL(user.name,"-") as name
FROM addr
LEFT JOIN user
ON user.user_id = addr.user_id;
right join
오른쪽 테이블을 기준으로 왼쪽 테이블의 모든 데이터가 출력되고 매핑되는 키값이 없으면 NULL로 출력된다. > 두 테이블을 합쳐 id, name, addr 출력 1
2
3
4SELECT addr.id, user.name, IFNULL(addr.addr,'=') as addr
FROM addr
RIGHT JOIN user
ON user.user_id = addr.user_id;1
2
3
4
5
6
7
8
9
10
11select name
from user
union
select addr
from addr;
select name
from user
union all
select addr
from addr;1
2
3
4
5
6
7
8
9select user.name, addr.addr, addr.user_id
from user
left join addr
on user.user_id = addr.user_id
union
select user.name, addr.addr, addr.user_id
from user
right join addr
on user.user_id = addr.user_id;
select, from, where
전체 나라수, 전체 도시수, 전체 언어수를 출력
1 | select |
800만 이상이 되는 도시의 국가 코드, 도시이름, 도시인구수를 출력
1 | select * |
800만 이상 도시의 국가코드, 국가 이름, 대통령 이름 출력
1 | select code, name, HeadOfState |
index 추가
1 | create index tdate |
index 삭제
1 | drop index tdate |
VIEW
쿼리문에 대한 결과를 저장하는 개념 1
2
3
4
5use world;
create view code_name as
select code, name
from country;
찍어주면 code_name라는 view에서 만들어진 country.code 와 country.name을 불러줌 즉 는 (select code, name from country) as code_name 임
1
2
3
4 select *
from city
join code_name
on city.countrycode = code_name.code;