JOIN ?
์ฌ๋ฌ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ํจ๊ป ์ถ๋ ฅํ ๋ ์ฌ์ฉ
์ฌ๋ฌ ํ ์ด๋ธ์์ ๊ณตํต๋ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ์ปฌ๋ผ์ ์ฐพ์์ ์กฐ์ธ ๊ตฌ๋ฌธ์ ์์ฑํด์ผ ํจ.
๋ชจํธํ ์ปฌ๋ผ๋ช ์์๋ ๋ฐ๋์ ํ ์ด๋ธ ๋ช ์ด๋ ํ ์ด๋ธ ALIAS๋ช ์ ์ ๋์ด๋ก ๋ถ์ฌ์ผ ํจ.
ํ์ชฝ ํ ์ด๋ธ์๋ง ์๋ ์ ์ผํ ์ปฌ๋ผ๋ช ์์๋ ํ ์ด๋ธ๋ช ์ด๋ ํ ์ด๋ธ alias ๋ช ์ด ํ์๋ ์๋๋, ๊ถ์ฅ์ฌํญ
์์ 1. employees ํ ์ด๋ธ๊ณผ departments ํ ์ด๋ธ์ ์กฐ์ธํด์ ์ฌ๋ฒ, ์ด๋ฆ, ๊ธ์ฌ, ๋ถ์์ด๋ฆ์ ์ถ๋ ฅํ๋ ๊ตฌ๋ฌธ์ ์์ฑํ์์ค.
>> employees ํ ์ด๋ธ๊ณผ dapartments ํ ์ด๋ธ์ด ๊ณตํต์ผ๋ก ๊ฐ์ง๊ณ ์๋ department_id๋ฅผ ๊ธฐ์ค์ผ๋ก ์กฐ์ธ
์์ 2. employees ํ ์ด๋ธ๊ณผ departments ํ ์ด๋ธ์ ์กฐ์ธํด์ ์ฌ๋ฒ, ์ด๋ฆ, ๊ธ์ฌ, ๋ถ์๋ฒํธ, ๋ถ์์ด๋ฆ์ ์ถ๋ ฅํ๋ ๊ตฌ๋ฌธ์ ์์ฑํ์์ค.
>> department_id ์ปฌ๋ผ์ ๋ ํ ์ด๋ธ์ ๋์ผํ๊ฒ ์กด์ฌํ๋ฏ๋ก ํ ์ด๋ธ๋ช ์ ์ ๋์ด๋ก ๋ถ์ฌ์ค์ผ ํจ.
>> ๋ ํ ์ด๋ธ์ด department_id ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ์กฐ์ธ
์์ 3. employees ํ ์ด๋ธ๊ณผ departments ํ ์ด๋ธ์ ์กฐ์ธํด์ ์ฌ๋ฒ, ์ด๋ฆ, ๋งค๋์ ๋ฒํธ, ๊ธ์ฌ, ๋ถ์๋ฒํธ, ๋ถ์์ด๋ฆ์ ์ถ๋ ฅํ์์ค.
>> manager_id์ปฌ๋ผ๊ณผ department_id ์ปฌ๋ผ์ ๋ ํ ์ด๋ธ์ ๋์ผํ๊ฒ ์กด์ฌํ๋ฏ๋ก ํ ์ด๋ธ๋ช ์ ์ ๋์ด๋ก ๋ถ์ฌ์ค์ผ ํจ.
>> ๋ ํ ์ด๋ธ์ด department_id ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ์กฐ์ธ
์์ 4. departments ํ ์ด๋ธ๊ณผ locations ํ ์ด๋ธ์ ์กฐ์ธํด์ ๋ถ์๋ฒํธ, ๋ถ์์ด๋ฆ, ๋์๋ฒํธ, ๋์๋ช ์ ์ถ๋ ฅํ์์ค.
>> location_id์ปฌ๋ผ์ ๋ ํ ์ด๋ธ์ ๋์ผํ๊ฒ ์กด์ฌํ๋ฏ๋ก ํ ์ด๋ธ๋ช ์ ์ ๋์ด๋ก ๋ถ์ฌ์ค์ผ ํจ.
>> ๋ ํ ์ด๋ธ์ด location_id ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ์กฐ์ธ
์์ 5. ์ฑ๋ฅ ๊ฐ์ ์ ์ํด์ from์ ์ ํ ์ด๋ธ alias๋ฅผ ์ ์ธํ์ฌ ์ปฌ๋ผ๋ช ์์ ํ ์ด๋ธ alias๋ฅผ ๋ถ์ฌ์ค๋ค.
์์ 6. employees ํ ์ด๋ธ๊ณผ departments ํ ์ด๋ธ์ ์กฐ์ธํด์ ์ฌ๋ฒ, ์ด๋ฆ, ๊ธ์ฌ, ๋ถ์๋ฒํธ, ๋ถ์์ด๋ฆ์ ์ถ๋ ฅํ๋ 80๋ฒ ๋ถ์์ ์์๋ ์ฌ์๋ง ์ถ๋ ฅํ์์ค.
N๊ฐ์ ํ ์ด๋ธ JOIN
ํ ์ด๋ธ ๊ฐ์ | ์กฐ์ธ ์กฐ๊ฑด ์
2 | 1
3 | 2
N | N-1
์์ 7. employees, departments, locations ํ ์ด๋ธ์ ์กฐ์ธํด์ ์ง์ ์ ๋ณด, ๋ถ์ ์ ๋ณด, ์์น ์ ๋ณด๋ฅผ ํจ๊ป ์ถ๋ ฅํ์์ค.
>> emloyees์ departments ํ ์ด๋ธ์ department_id ์ปฌ๋ผ์,
departments์ locations ํ ์ด๋ธ์ location_id ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ์กฐ์ธ
Self JOIN ?
ํ๋์ ํ ์ด๋ธ์ ๋ง์น ๋ค๋ฅธ ํ ์ด๋ธ์ธ ๋ฏ ํ ์ด๋ธ alias๋ฅผ ๋ฌ๋ฆฌ ๋ถ์ฌํ์ฌ ์๊ธฐ ์์ ํ ์ด๋ธ๊ณผ ์กฐ์ธํ๋ ์ ํ
์์ 8. ์ง์์ ์ฌ๋ฒ, ์ง์์ ์ด๋ฆ, ์ง์์ ๊ธ์ฌ, ๋งค๋์ ์ด๋ฆ์ ์ถ๋ ฅํ๋ ๊ตฌ๋ฌธ์ ์์ฑํ์์ค.
>> e2.last_name ์ e1.manager_id ์ last_name
>> employee_id 101 kochhar์ manager_id๋ 100
>> 100๋ฒ์ last_name ์ king
equi join VS non-equi join ?
equi JOIN : ์กฐ์ธ ์กฐ๊ฑด๋ฌธ์ ๋๋ฑ์ฐ์ฐ์(=)๋ฅผ ์ฌ์ฉํ ์กฐ์ธ ์ ํ
non-equi JOIN : ์กฐ์ธ์กฐ๊ฑด๋ฌธ์ ๋๋ฑ์ฐ์ฐ์๊ฐ ์๋ ๊ทธ ์ธ ๋ค๋ฅธ ๋น๊ต ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ์กฐ์ธ ์ ํ
inner JOIN VS outer JOIN ?
inner : ์กฐ์ธ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ํ๋ง ๋ฐํํ๋ ์กฐ์ธ ์ ํ
outer : ์กฐ์ธ์กฐ๊ฑด์ ๋ง์กฑํ๋ ํ์ ๋ฌผ๋ก ์ด๊ณ ์กฐ์ธ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์๋ ํ๊น์ง ๋ฐํํ๋ ์กฐ์ธ ์ ํ
left outer join : ์กฐ์ธ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์๋ ์ผ์ชฝ ํ ์ด๋ธ์ ํ์ ๋ฐํ ํด์ฃผ๋ ์กฐ์ธ ์ ํ
right outer join : ์กฐ์ธ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์๋ ์ค๋ฅธ์ชฝ ํ ์ด๋ธ์ ํ์ ๋ฐํ ํด์ฃผ๋ ์กฐ์ธ ์ ํ
full outer join : ์กฐ์ธ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์๋ ์์ชฝ ํ ์ด๋ธ์ ํ์ ๋ชจ๋ ๋ฐํ ํด์ฃผ๋ ์กฐ์ธ ์ ํ
'STUDY > DATABASE' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
MYSQL - DML_๋ฐ์ดํฐ ์ญ์ (delete) (0) | 2022.05.02 |
---|---|
MySQL - ๋จ์ผ ํ ํจ์(๋ฌธ์ํจ์) (0) | 2022.04.15 |
MySQL - ERD ๋ง๋ค๊ธฐ (0) | 2022.04.12 |
MySQL ๋ฌธ๋ฒ (0) | 2022.04.12 |
MySQL ๋ฐ์ดํฐ ์กฐํ(SELECT) (0) | 2022.04.11 |