26 Fri
๋ฐ์ดํฐ ๋ถ์์ ์ํ ์ค๊ธ SQL
๋ ๊ฐ ์ด์ ํ
์ด๋ธ ๊ฒฐํฉํ๊ธฐ
JOIN
์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ RDB, Relational DataBase ๋ผ๊ณ ํ๋ค.
๋ฐ์ดํฐ๊ฐ์ ๊ด๊ณ์ฑ์ ๊ฐ์ง๊ณ ์ฐ๊ฒฐ/๋ถ๋ฆฌ ํ๋ ๋ฐ์ดํฐ ๋ฒ ์ด์ค
ํ ํ ์ด๋ธ๋ก ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ํํํ๋ฉด ์ค๋ณต๋๋ ๋ฐ์ดํฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ ํจ์จ์ ์ด์ง ์๋ค. ์ด๋ฅผ ๋ ๊ฐ ์ด์์ ํ ์ด๋ธ๋ก ๋ถ๋ฆฌํ๋ค.
์ด ํ, ๋ถ๋ฆฌ๋ ํ ์ด๋ธ์ ์ฐ๊ฒฐํ ๋ JOIN์ ์ฌ์ฉํด์ผ ํ๋ค
INNER JOIN
SELECT *
FROM Customers, Orders๋ค์๊ณผ ๊ฐ์ด ๋ ํ ์ด๋ธ์ ํฉ์น๋ฉด ๊ต์ฅํ ๋ง์ ์ค๋ณต์ด ๋ฐ์ํ๊ฒ ๋๋ค.
๋ ํ ์ด๋ธ์ ํฉ์น๋ ๊ฒ์ Combination ํ๋ค๊ณ ํ๋ค
๋ค์์ ๋ ํ ์ด๋ธ์ ๊ฒฐํฉํ ๊ฒฐ๊ณผ์ ์ผ๋ถ
์กฐ๊ธ์ ์ฐจ์ด๊ฐ ์๋ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๊ธฐ ์ํด ์ค๋ณต๋ ๋ฐ์ดํฐ๊ฐ ๋ง์ด ํ์๋๋ ๋ชจ์ต

๋ฐ๋ผ์ ์ด๋ฌํ ์ค๋ณต์ ์์ ๊ณ ๊ณตํต๋ ์ ๋ณด๋ง ์ป๊ณ ์ถ์ ๋
INNER JOIN์ ์ฌ์ฉํ๋ค.

WHERE๋ฌธ๋ฒ์ ํตํด ๋์ผํ ์ปฌ๋ผ์ ๋ถ๋ฌ์ค๋ ๋ฐฉ๋ฒ์ด์ ๋ ์ ์ฐ์ด์ง ์๋ ๋ฐฉ๋ฒ์ด๋ค
๋ค์๊ณผ ๊ฐ์ด ์์ฝ์ด
INNER JOIN ~ ON์ ์ฌ์ฉํ ์ ์๋ค์์ชฝ ํ ์ด๋ธ์ ๋์ผํ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ ๋๋ง ์ฌ์ฉ๊ฐ๋ฅ ํ๋ค.
์ด ๋ Join ํ๋ Key๊ฐ์ name์ด ๋ค๋ฅผ ์ ์๋ค.
๋๊ฐ์ ์ปฌ๋ผ์ผ์ง๋ผ๋ Orders๋ CustomerID, Customers๋ ID๋ก ๋์ด์์ ์ ์๋ค.
์ด๋ ๊ณ ๊ธ์์ ๋ค๋ฃฐ ๋ด์ฉ => ERD, Entity Relational Diagram
OUTER JOIN
INNER JOIN์ ์ ์ธํ๊ณ ๋ ๋ชจ๋OUTER JOINLEFT, RIGHT, FULL์ 3๊ฐ์ง ์ข ๋ฅ๊ฐ ์๋ค.LEFT JOIN๊ณผLEFT OUTER JOIN์ ๋์ผํ ๋ช ๋ น์ด์ด๋คRIGHT์FULL๋ ๋ง์ฐฌ๊ฐ์ง
LEFT JOIN

RIGHT JOIN

๊ทธ๋ฌ๋
RIGHT JOIN์ ์ ์ฐ์ง ์๋๋ค.์์๋ง ๋ฐ๊พธ๋ฉด
LEFT JOIN๊ณผ ๋์ผํ๊ธฐ ๋๋ฌธํด์์ ์ผ๋ก
RIGHT JOIN์ด ๋น๊ต์ ์ด๋ ค์ด ๋ถ๋ถ์ด ์๋คw3school ์์๋ right์ full์ ์ง์ํ์ง ์์
SELF JOIN
LEET CODE 181
table ํ๋๋ฅผ joinํด์ ์๋ก ๋ค๋ฅธ table์ธ ๊ฒ์ฒ๋ผ ์ฌ์ฉ
์ฃผ๋ก
as๋ฅผ ํตํด ๊ตฌ๋ณํ๋ ๊ฒ์ด ์ข๋ค
์๊ฐ ๋ํ๊ธฐ ๋นผ๊ธฐ
LEET CODE 197
DATE_ADD(๊ธฐ์ค๋ ์ง, INTERVAL)SELECT DATE_ADD(NOW(), INTERVAL 1 SECOND)SECOND๋์MINUTE, HOUR, DAY, MONTH, YEAR์ฌ์ฉ๊ฐ๋ฅ
DATE_SUB(๊ธฐ์ค๋ ์ง, INTERVAL)DATE_ADD์ ๋์ผ
๊ทธ๋ฌ๋
INTERVAL์ ์์๋ฅผ ๋ฃ์ผ๋ฉดADD์์๋SUB์ ํจ๊ณผ๋ฅผ ๋ผ ์ ์์
Last updated
Was this helpful?