๐ค select * from sample71_a
UNION
๐ค select * from sample71_b;
-> ๋ ๊ฐ์ ๋ช
๋ น์ ํ๋์ ๋ช
๋ น์ผ๋ก ํฉ์นจ!
-> ๋ ๊ฐ์ select ๋ช
๋ น์ ํ๋์ ๋ช
๋ น์ผ๋ก ํฉ์น๋ ๋งํผ ์ธ๋ฏธ์ฝ๋ก (;)์ ๋งจ ๋์ค์ ๋ถ์!
์ฌ๋ฌ ๊ฐ ํฉ์น๋ ๊ฒ ๊ฐ๋ฅ. ๋จ, select๋ช ๋ น์ ์ด์ ๋ด์ฉ(์ด ๊ตฌ์ฑ)์ ์๋ก ์ผ์นํด์ผํจ.
UNION์ ์ฌ์ฉํ ๋์ order by
UNION์ผ๋ก select ๋ช
๋ น์ ๊ฒฐํฉํด ํฉ์งํฉ์ ๊ตฌํ๋ ๊ฒฝ์ฐ, ๊ฐ select ๋ช
๋ น์ order by๋ฅผ ์ง์ ํด ์ ๋ ฌํ ์ ์์. order by๋ฅผ ์ง์ ํ ๋๋ ๋ง์ง๋ง select ๋ช
๋ น์๋ง ์ง์ ํ๋๋ก ํจ.
-> ์๋ฌ ๋ฐ์: order by๋ฅผ ์ง์ ํ ์ ์๋คํด๋ ๋ง์ง๋ง select ๋ช
๋ น์ ๊ฒฐ๊ณผ๋ง ์ ๋ ฌํ๋ ๊ฒ์ด ์๋๊ณ ํฉ์งํฉ์ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ ฌํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์! ๋๊ฐ์ select ๋ช
๋ น์์ ์ด ์ด๋ฆ์ด ์๋ก ์ผ์นํ๋ค๋ ๋ณด์ฅ์ด ์์!
-> ๊ทธ๋ผ ์ด๋ป๊ฒ? ๋ณ๋ช
์ ๋ถ์ด๊ธฐ! C!
UNION ALL
-> UNION์ ์ฌ์ฉํ๋ฉด ์ค๋ณต๊ฐ์ด ์ ๊ฑฐ๋์ด ์ฒ๋ฆฌ๋จ. ๊ทผ๋ฐ ์ค๋ณต๊ฐ ์ธ์ ํ๊ณ ๊ทธ๋ฅ ํฉ์น๊ณ ์์ ๋๋ ์์ผ๋๊น...? ๊ทธ๋ฐ ๊ฒฝ์ฐ์๋ UNION ALL ์ฌ์ฉ!
-> ์ค๋ณต ์ ๊ฑฐ ๊ฒฝ์ฐ์๋ distinct, ์ค๋ณต ์ ๊ฑฐํ์ง ์๊ณ ๋ชจ๋ ๋ฐํํ๋ ๊ฒฝ์ฐ: all
-> distinct๊ฐ ๊ธฐ๋ณธ๊ฐ์ด๊ณ all๋ก ์ค๋ณต์ ๊ฑฐ ์ฌ๋ถ๋ฅผ ์ง์ ํ ์ ์์!
-> ์ฌ์ค ์ ๋ ํ
์ด๋ธ์ ์ค๋ณต๊ฐ์ ์์ง๋ง ์๋ ๊ฒ ๋ช
๋ น์ด๋ฅผ ์ณ์ฃผ๋ฉด ์ค๋ณต์ ์ธ์ ํ๋ ๊ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ญ ๋ฝ์ ์ ์์! ๐ ๊ทผ๋ฐ ์ค๋ณต๊ฐ์ด ์๋ ๊ฒฝ์ฐ์๋ UNION ALL์ ์ฌ์ฉํ๋๊ฒ ์ข์ ์ฑ๋ฅ์ ๋ณด์ฌ์ค๋ค๊ณ ํจ! .
๋ ๊ฐ์ ์งํฉ์ ๊ณฑํ๋ ์ฐ์ฐ ๋ฐฉ๋ฒ.
x = [A,B,C], y = [1,2,3] -> x์ y์ ๊ณฑ์งํฉ์ ๊ตฌํ๋ฉด?
-> A,1 / A,2 / A,3
-> B,1 / B,2 / B,3
-> C,1 / C,2 / C,3
๊ต์ฐจ๊ฒฐํฉ: select ๋ช ๋ น์์๋ from ๊ตฌ์ ํ๋์ ํ ์ด๋ธ๋ง ์ง์ . ์ฌ๊ธฐ์ ๋๊ฐ๋ฅผ ์ง์ ํ๋ฉด ๊ณฑ์งํฉ์ผ๋ก ๊ณ์ฐ.
๐ค select * from ํ
์ด๋ธ๋ช
1, ํ
์ด๋ธ๋ช
2 ๐ค
-> ์๋ ๊ฒ ํฉ์ณค๋น!
๊ฒฐํฉ์ด ๋๋ค๊ณ ๋ ํ์ง๋ง ํ ์ด๋ธ ์๊ฐ ๋ง์์ง๋ฉด ์กฐํฉ ์๊ฐ ์์ฒญ ๋๋๊น ์งํฉ์ด ๊ฑฐ๋ํด์ง๊ฑฐ์ผ.. ๊ทธ๋์ ๊ทธ๊ฑธ ๋ค ๊ต์ฐจ๊ฒฐํฉํ๋ ๊ฒฝ์ฐ๋ ๋๋ฌผ๋น! ๊ทธ๋์ ๊ต์ฐจ๊ฒฐํฉ < ๋ด๋ถ๊ฒฐํฉ ๋ ์์ฃผ ์ฌ์ฉ!
๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ๋ค์ํ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ. ์ด๋ ๊ธฐ๋ณธํค๋ ํ๋์ ๋ฐ์ดํฐํ์ ๋ํํ ์ ์๋ ์์ฑ! ๊ทธ๋์ ์ํ๋ช ๋ณด๋ค๋(์ค๋ณต๊ฐ๋ฅ์ฑ์ด ์์ผ๋๊น!) ์ํ ์ฝ๋๋ฅผ '๊ธฐ๋ณธํค'๋ก ์ฌ์ฉ.
-> ์๋ ๊ฒ ๊ธฐ๋ณธํค๋ ์ํ์ฝ๋๋ก!
์ฌ๊ณ ํ
์ด๋ธ๋ ๋ง๋ค์ด๋ณผ๊น?
-> ์ํ์ฝ๋๋ฅผ ๊ฐ์ง ์ฌ๊ณ ์ ํ
์ด๋ธ!
-> ์ฌ๊ณ ์ ํ
์ด๋ธ์ ๊ธฐ๋ณธํค์ธ ์ํ์ฝ๋๋ฅผ ํตํด ์ํ ํ
์ด๋ธ๊ณผ ์ฐ๊ฒฐ(์ฐธ์กฐ)ํ ์ ์๋ค๋ ๊ฒ์ ๊ธฐ์ตํด์คญ..! โญ๏ธ
์ฌ๊ณ ์ ํ
์ด๋ธ์์ ์ํ๋ถ๋ฅ๊ฐ ์ํ์ฉํ์ธ ์ํ์ ์ฌ๊ณ ์๋ฅผ ํ์ํ๋ ๊ฒฝ์ฐ -> ์ด ๊ฒฝ์ฐ ์ํ์ฝ๋๋ณด๋ค ์ํ๋ช
์ผ๋ก ํ์ํ๋ฉด ์์๋ณด๊ธฐ ์ฌ์ธ ๊ฒ!
-> ์ํ๋ช
| ์ฌ๊ณ ์
-> a | 200
-> ์ด๋ ๊ฒ ์ฌ๊ณ ์ ํ
์ด๋ธ๊ณผ ์ํ ํ
์ด๋ธ์ ๊ฒฐํฉํด ๊ฐ๋ก๋ก ๋์ดํ๋ ค๋ฉด! from ๊ตฌ์์ ํ
์ด๋ธ์ ์๋ก ๊ฒฐํฉํจ!
-> ์ด๋ ๊ฒ from๊ตฌ์ ํ
์ด๋ธ์ ๋ณต์๋ก ์ง์ ํ๋ฉด ๊ณฑ์งํฉ์ผ๋ก ๊ณ์ฐ๋จ.
-> ์ด๋ ๊ฒ ๋ง๋ค์ด์ง ์งํฉ์์ ๋ด๊ฐ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋ ค๋ฉด? where ๊ตฌ๋ก ์กฐ๊ฑด์ ์ง์ . ๋จ, '์ํ์ฝ๋๊ฐ ๊ฐ๋ค๋ ์กฐ๊ฑด'์ด ํ์!
๐ค select * from ์ํ, ์ฌ๊ณ ์
where ์ํ.์ํ์ฝ๋ = ์ฌ๊ณ ์.์ํ์ฝ๋; ๐ค
-> ์ด๋ ๊ฒ ๊ต์ฐจ๊ฒฐํฉ์ผ๋ก ๊ณ์ฐ๋ ๊ณฑ์งํฉ์์ ์ํ๋ ์กฐํฉ์ ๊ฒ์ํ๋ ๊ฒ์ '๋ด๋ถ๊ฒฐํฉ'์ด๋ผ ๋ถ๋ฆ!
๐ค select ์ํ.์ํ๋ช
, ์ฌ๊ณ ์.์ฌ๊ณ ์ from ์ํ, ์ฌ๊ณ ์
where ์ํ.์ํ์ฝ๋ = ์ฌ๊ณ ์.์ํ์ฝ๋
and ์ํ.์ํ๋ถ๋ฅ = '์ํ์ฉํ'; ๐ค
-> ๋ฐ๋๐
-> where ๊ตฌ์ ๋๊ฐ์ ์กฐ๊ฑด์์ด ์ง์ ๋์ด์์! 1) ๊ต์ฐจ๊ฒฐํฉ์ผ๋ก ๊ณ์ฐ๋ ๊ณฑ์งํฉ์์ ์ํ๋ ์กฐํฉ ๊ฒ์ (=๊ฒฐํฉ์กฐ๊ฑด) 2) ๊ฒฐํฉ์กฐ๊ฑด์ด ์๋ ๊ฒ์์กฐ๊ฑด
from ๊ตฌ์ ํ ์ด๋ธ์ ๋ณต์ ์ง์ ํด ๊ฐ๋ก ๋ฐฉํฅ์ผ๋ก ํ ์ด๋ธ ๊ฒฐํฉ๊ฐ๋ฅ
๊ต์ฐจ๊ฒฐํฉํ๋ฉด ๊ณฑ์งํฉ์ผ๋ก ๊ณ์ฐ๋จ
where ์กฐ๊ฑด์ ์ง์ ํด ๊ณฑ์งํฉ์์ ํ์ํ ์กฐํฉ๋ง ๊ฒ์ํ ์ ์์!
์์๊บผ๋ ์๋ ๋ฐฉ๋ฒ์ด๋ผ๋ค..?^^ ์ด๋ฒ์๋ INNER JOIN ํค์๋๋ฅผ ์ฌ์ฉํ ๊ฒฐํฉ๋ฐฉ๋ฒ์ ์ฌ์ฉํด๋ณด์ฅ !
๐ค select * from ํ
์ด๋ธ๋ช
1 inner join ํ
์ด๋ธ๋ช
2 on ๊ฒฐํฉ์กฐ๊ฑด ๐ค
๐ค select ์ํ.์ํ๋ช
, ์ฌ๊ณ ์.์ฌ๊ณ ์
from ์ํ inner join ์ฌ๊ณ ์
on ์ํ.์ํ์ฝ๋ = ์ฌ๊ณ ์.์ํ์ฝ๋
where ์ํ.์ํ๋ถ๋ฅ = '์ํ์ฉํ'; ๐ค
๐ค select * from ํ
์ด๋ธ๋ช
1 INNER JOIN ํ
์ด๋ธ๋ช
2 ON ๊ฒฐํฉ์กฐ๊ฑด ๐ค
ํ๋์ ๋ฐ์ดํฐ๋ ํ ๊ตฐ๋ฐ์ ์ ์ฅํ๋ค- ๋ ๋ฃฐ์ ๋ฐ๋ผ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ๋ค๊ณ ํ์ ๋, ๋ฉ์ด์ปค์ฝ๋์ ๋ฉ์ด์ปค๋ช ์ ๊ฐ์ง๋ '๋ฉ์ด์ปค ํ ์ด๋ธ'์ ์์ฑํด ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํด๋ณด๊ฒ ์!
์ํ์ ์ ์กฐํ๋ ๋ฉ์ด์ปค๊ฐ ๋ง์ด ์๋ค๊ณ ํด๋ ์ํ์๋ณด๋ค๋ ์ ์! ์ด๋ ์ฝ๋์ ์ด๋ฆ์ ๊ฐ์ง๋ ํ ์ด๋ธ๋ก ๋ถํ ํด ๊ด๋ฆฌํ๋ฉด ์ ์ฅ๊ณต๊ฐ ์ ์ฝ ๊ฐ๋ฅ! ๋ฉ์ด์ปค ํ ์ด๋ธ์ ์์ฑํ๋ ๋ช ๋ น๊ณผ ์ ์ฅํ ๋ฐ์ดํฐ๋ฅผ ๊ณต๋ถํด๋ณด์ฅ...๐ผ
์๋ ๊ฒ ๋จผ์ ๋ฉ์ด์ปค table์ ๋ง๋ค์ด์ฃผ๊ณ ~!
desc ๋ฉ์ด์ปค ํ
์ด๋ธ ํ์ธ!
์ํํ ์ด๋ธ๊ณผ ๋ฉ์ด์ปคํ ์ด๋ธ์ ๋ด๋ถ๊ฒฐํฉํด๋ณด์ฅ! ๐น
๐ค select ์ํ๋ช
, ๋ฉ์ด์ปค๋ช
from ์ํ INNER JOIN ๋ฉ์ด์ปค ON ์ํ.๋ฉ์ด์ปค์ฝ๋ = ๋ฉ์ด์ปค.๋ฉ์ด์ปค์ฝ๋; ๐ค
์ฌ๊ธฐ์ '๋ฉ์ด์ปค์ฝ๋'๋ ๋๋ฌด ์ค์ํจ.
์ธ๋ถํค: ๋ฉ์ด์ปค ํ ์ด๋ธ์ ๋ฉ์ด์ปค์ฝ๋๋ ๊ธฐ๋ณธํค. ๊ทธ์ ๋นํด ์ํ ํ ์ด๋ธ์ ๋ฉ์ด์ปค์ฝ๋๋ '์ธ๋ถํค'. ๋ค๋ฅธ ํ ์ด๋ธ์ ๊ธฐ๋ณธํค๋ฅผ ์ฐธ์กฐํ๋ ์ด์ด ์ธ๋ถํค๊ฐ ๋จ!
์๊ธฐ๊ฒฐํฉ(Self Join): ํ ์ด๋ธ์ ๋ณ๋ช ์ ๋ถ์ผ ์ ์๋ ๊ธฐ๋ฅ์ ์ด์ฉํด ๊ฐ์ ํ ์ด๋ธ๋ผ๋ฆฌ ๊ฒฐํฉํ๋ ๊ฒ์ ๋งํจ.
์ํํ
์ด๋ธ์ ์ํ์ฝ๋๊ฐ 4์ธ ํ์ ์๋กญ๊ฒ ์ถ๊ฐํจ.
-> ์ฌ๊ณ ์ ํ
์ด๋ธ์๋ ์์ง ์ด ์ํ์ ๋ํ ๋ฐ์ดํฐ๊ฐ ์์. ์ด๋ฐ ์ํ์์ ๊ณฑ์งํฉ์ ๊ตฌํด๋ ๋ด๋ถ๊ฒฐํฉ ๊ฒฐ๊ณผ์์๋ ์ํ์ฝ๋๊ฐ 4์ธ ์ํ์ด ์ ์ธ๋จ. ๐ผ ์ด๋ฐ ๊ฒฝ์ฐ ์ธ๋ถ๊ฒฐํฉ์ ์ฌ์ฉํ๋ฉด ๋จ! ๐ผ
-> ์ธ๋ถ๊ฒฐํฉ๋ ๊ฒฐํฉํ๋ ํ
์ด๋ธ ์ค ์ด๋ ์ชฝ์ ๊ธฐ์ค์ผ๋ก ํ ์ง ๊ฒฐ์ ํ ์ ์์. LEFT JOIN์ ์ฌ์ฉํด๋ณด์ฅ!
-> ์ฌ๊ณ ์ ํ
์ด๋ธ์๋ ์ํ์ฝ๋=4 ์ ๋ํ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฏ๋ก ๊ฐ์ด NULL๋ก ํ์๋จ! ๊ธฐ์ค์ด ๋๋ ์ํ ํ
์ด๋ธ์ JOIN์ ์ผ์ชฝ์ ๊ธฐ์ ํ์ผ๋ฏ๋ก LEFT JOIN! ์ํ ํ
์ด๋ธ์ ์ค๋ฅธ์ชฝ์ ์ง์ ํ๋ ๊ฒฝ์ฐ๋ ์ฌ๊ณ ํ
์ด๋ธ์ ๊ธฐ์ค์ผ๋ก ์ผ๊ณ ์ถ์ ๊ฒฝ์ฐ์๋ RIGHT JOIN์ ์ฌ์ฉํด ์ธ๋ถ๊ฒฐํฉ์ ์ํํจ!
-> ์๊ฑด right join์ ์ฌ์ฉํ๊ฑด๋ฐ, right join ์์ ์ฌ๊ณ ํ
์ด๋ธ์ ์ฌ๊ณ ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ผ์๋๋ ๊ฐ์ ๊ฒฐ๊ด๊ฐ์ด ๋์ด! ๊ธฐ์ตํด์ฃผ๊ธฐ!
MySQL์ ์ธ๋ถ๊ฒฐํฉ ๋ถ๊ฐ...^^ ์ต๊ทผ์ ๋์จ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ผ์...^^
๐ผ ์ด์ insert into ๋ update ํ๋ ๊ฒ ๋ฑ๋ฑ ๋ช๊ฐ์ง ๋ช ๋ น์ด๋ค์ ์์ ์ต๊ธฐ ์์ํ๋ค. ๋๋๋ใ ๋ใ ๋๋๋ใธ..... ๋ ์์ ์ตํ๊ณ ์ฐ์ตํ๊ณ ... ํ์ด๋ต ! ๐ผ