SELECT
SELECT ์ ์ ์ธ๋ฑ์ค ์ฌ์ฉ
์ธ๋ฑ์ค ์ฌ์ฉ์ ์ํ ๊ธฐ๋ณธ ๊ท์น
์ธ๋ฑ์ค๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ๋ ค๋ฉด ๋ ๊ฐ์ง ๊ท์น์ ์ง์ผ์ผํ๋ค.
WHERE์ ์ ์กฐ๊ฑด๋ฌธ์ด ์ธ๋ฑ์ค ์ปฌ๋ผ ์์ฒด๋ฅผ ๊ฐ๊ณตํ์ง ์๊ณ ์๋์ ๊ฐ ๊ทธ๋๋ก ๋น๊ต๋น๊ต ๋์์ด ๋์ผํ ํ์ ์ด์ด์ผ ํจ
-- ์ธ๋ฑ์ค ์ฌ์ฉ ๋ถ๊ฐ
SELECT *
FROM salaries
WHERE salary * 10 > 1000000;
-- ์ธ๋ฑ์ค ์ฌ์ฉ ๊ฐ๋ฅ
SELECT *
FROM salaries
WHERE salary > 1000000 / 10;WHERE ์ ์ ์ธ๋ฑ์ค
WHERE ์กฐ๊ฑด์์ ์ฌ๋ฌ ๊ฐ์ ์ปฌ๋ผ์ ์กฐํฉํ์ฌ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ์ธ๋ฑ์ค๋ฅผ ์ด๋ป๊ฒ ๊ตฌ์ฑํ๋๋์ ๋ฐ๋ผ ์ฑ๋ฅ์ด ํฌ๊ฒ ๋ฌ๋ผ์ง๋ค.
AND: ์ธ๋ฑ์ค์ ๊ฐ์ฅ ์์ชฝ ์ปฌ๋ผ๋ถํฐ ์์๋๋ก ์กฐ๊ฑด์ด ์ผ์นํด์ผ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ์ ์์OR:OR๋ก ์ฐ๊ฒฐ๋ ๊ฐ ์กฐ๊ฑด์ด ๋ชจ๋ ๊ฐ๋ณ์ ์ผ๋ก ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ์ ์์ง ์๋ค๋ฉด, ์ตํฐ๋ง์ด์ ๋ ํ ํ ์ด๋ธ ์ค์บ ๊ฐ๋ฅ์ฑ ๋์
GROUP BY / ORDER BY ์ ์ ์ธ๋ฑ์ค
GROUP BY์ ORDER BY๋ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋ถํ์ํ ํ์ผ์ํธ๋ ์์ ํ
์ด๋ธ ์์ฑ์ ํผํ ์ ์์ผ๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ ์กฐ๊ฑด์ ๋ง์กฑํด์ผ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
๋ช ์๋ ์ปฌ๋ผ์ด ์ธ๋ฑ์ค ์ปฌ๋ผ ์์์ ์์น ์ผ์น
์ธ๋ฑ์ค ๊ตฌ์ฑ ์ปฌ๋ผ ์ค ๋ค์ชฝ ์ปฌ๋ผ์ ๋ช ์๋์ง ์์๋ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ์ ์์ง๋ง, ์์ชฝ ์ปฌ๋ผ์ด ๋ช ์๋์ง ์์ผ๋ฉด ์ธ๋ฑ์ค ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅ
(ORDER BY ์ ์๋ง ํด๋น) ๋ช ์๋ ์ปฌ๋ผ์ด ๋ชจ๋ ์ค๋ฆ์ฐจ์์ด๊ฑฐ๋ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ๋์ด์ผ ํจ
WHERE + ORDER BY(or GROUP BY) ์ ์ ์ธ๋ฑ์ค
WHERE ์ ๊ณผ ORDER BY ์ ์ ๋์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ์๋์ ๋ฐฉ๋ฒ์ผ๋ก ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํ๊ฒ ๋๋ค.
WHERE ์ ๋ง ์ธ๋ฑ์ค ์ด์ฉ
OWHERE ์ ์ ๋์ ์ปฌ๋ผ์ด ์ธ๋ฑ์ค์ ํฌํจ๋ผ ์์ ๋ ์ฌ์ฉ ๊ฐ๋ฅ
WHERE ์ธ๋ฑ์ค๋ฅผ ํตํด ์กฐํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ณ๋๋ก ์ ๋ ฌํ๋ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌ
WHERE ์ ์กฐ๊ฑด์ ์ผ์นํ๋ ๋ ์ฝ๋ ๊ฑด์๊ฐ ์ ์ ์๋ก(Cardinality๊ฐ ๋์ ์๋ก) ์ฑ๋ฅ์ด ์ข์
ORDER BY ์ ๋ง ์ธ๋ฑ์ค ์ด์ฉ
ORDER BY ์ ์ ์ ๋ ฌ ๋์ ์ปฌ๋ผ์ด ์ธ๋ฑ์ค์ ํฌํจ๋ผ ์์ ๋ ์ฌ์ฉ ๊ฐ๋ฅ
ORDER BY ์ ์ ์์๋๋ก ์ธ๋ฑ์ค๋ฅผ ์ฝ์ผ๋ฉด์ ๋ ์ฝ๋ ํ ๊ฑด์ฉ WHERE ์กฐ๊ฑด์ ์ผ์นํ๋์ง ํ์ธํ๋ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌ
WHERE ์ + ORDER BY ์ ๋์์ ๊ฐ์ ์ธ๋ฑ์ค ์ด์ฉ
WHERE ์ ์
๋ฒ์๋น๊ต ์กฐ๊ฑด์์ ์ฌ์ฉํ๋ ์ปฌ๋ผ + ORDER BY ์ ์ ์ ๋ ฌ ๋์ ์ปฌ๋ผ์ด ๋ชจ๋ ํ๋์ ์ธ๋ฑ์ค์ ์ฐ์ํด์ ํฌํจ๋ผ ์์ ๋ ์ฌ์ฉ ๊ฐ๋ฅWHERE ์ ์
๋๋ฑ๋น๊ต ์กฐ๊ฑด์ผ๋ก ์ฌ์ฉํ๋ ์ปฌ๋ผ + ORDER BY ์ ์ ์ ๋ ฌ ๋์ ์ปฌ๋ผ์ด ์ค์ฒฉ ์๊ด ์์ด ์ธ๋ฑ์ค ์์๋๋ก ํฌํจ๋ผ ์์ ๋ ์ฌ์ฉ ๊ฐ๋ฅ
GROUP BY + ORDER BY ์ ์ ์ธ๋ฑ์ค
GROUP BY ์ ๊ณผ ORDER BY ์ ์ ๋ช ์๋ ์ปฌ๋ผ์ ์์์ ๋ด์ฉ์ด ๋ชจ๋ ๊ฐ์์ผ ์ธ๋ฑ์ค ์ฌ์ฉ ๊ฐ๋ฅ
๋ง์ฝ ๋ ์ค ํ๋๋ผ๋ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํ ์ ์์ ๊ฒฝ์ฐ ๋ชจ๋ ์ธ๋ฑ์ค ์ฌ์ฉ ๋ถ๊ฐ๋ฅ
WHERE + GROUP BY + ORDER BY ์ ์ ์ธ๋ฑ์ค
์์ ๊ท์น์ด ๋ชจ๋ ์ ์ฉ๋๋ฉฐ, ๊ทธ ํ๋ฆ์ ์๋์ ๊ฐ๋ค.

WHERE ์ ๋น๊ต ์กฐ๊ฑด ์ฌ์ฉ ์ ์ฃผ์์ฌํญ
๋ฌธ์์ด / ์ซ์ ๋น๊ต: ๋ฐ๋์ ๊ทธ ํ์ ์ ๋ง๋ ์์๊ฐ ์ฌ์ฉํด์ผ ์ธ๋ฑ์ค๋ฅผ ์ ์์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅ
๋ ์ง ๋น๊ต: ๋ ์ง๋ฅผ ์ ์ฅํ๋ ํ์ ์ DATETIME, DATE, TIMESTAMP, TIME ์ด ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ๊ฐ๊ฐ ํ์ ์ ๋น๊ตํ ๋ ์ฃผ์ ํ์
DATE(DATETIME) + ๋ฌธ์์ด: ๋ฌธ์์ด์ DATETIME ํ์ ์ผ๋ก ๋ณํํ์ฌ ๋น๊ต(์ธ๋ฑ์ค ์ ์ ์ฌ์ฉ ๊ฐ๋ฅ)
DATE + DATETIME: DATETIME ํ์ ์ผ๋ก ๋ณํํ์ฌ ๋น๊ต(์ธ๋ฑ์ค ์ ์ ์ฌ์ฉ ๊ฐ๋ฅ)
LIMIT n
์ฟผ๋ฆฌ ๊ฒฐ๊ณผ์์ ์ง์ ๋ ์์์ ์์นํ ๋ ์ฝ๋๋ง ๊ฐ์ ธ์ฌ ๋ ์ฌ์ฉํ๋ ๋ฌธ๋ฒ์ผ๋ก, ํญ์ ์ฟผ๋ฆฌ์ ๋ง์ง๋ง์ ์คํ๋๋ค.
LIMIT์ ํ์ํ ๋ ์ฝ๋ ๊ฑด์๊ฐ ์กฐํ๋๋ฉด ์ฆ์ ์ฟผ๋ฆฌ๋ฅผ ์ข ๋ฃํ๊ฒ ๋๋๋ฐ, ์ฟผ๋ฆฌ์ ๋ฐ๋ผ ์ฑ๋ฅ ํฅ์์ ๊ธฐ๋ํ ์ ์๋ค.
์ธ๋ฑ์ค ์ฒ๋ฆฌ ๋์ง ์์ GROUP BY / ORDER BY ์ฌ์ฉ: ๋ชจ๋ ๋ ์ฝ๋๋ฅผ ์ฝ์ด์ผ ํ๋ฏ๋ก ์ฑ๋ฅ ํฅ์ ๋ฏธ๋ฏธ
DISTINCT ์ฌ์ฉ: ์ ๋ํฌํ ๋ ์ฝ๋ ๊ฑด์๊ฐ LIMIT์ ๋ช ์๋ ๊ฐ๋ณด๋ค ํฐ ๊ฒฝ์ฐ ์ฑ๋ฅ ํฅ์ ๊ธฐ๋(ํ ์ด๋ธ์ ์ฝ๋ ๋์ค ์ค๋จ)
๊ทธ ์ธ: ํฐ ์ฑ๋ฅ ํฅ์ ๊ธฐ๋ ๊ฐ๋ฅ
OFFSET
LIMIT ์ ๊ณผ ํจ๊ป ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฉฐ, ๊ฒฐ๊ณผ์์ ๋ช ๋ฒ์งธ ๋ ์ฝ๋๋ถํฐ ๊ฐ์ ธ์ฌ์ง๋ฅผ ์ง์ ํ๋ค.
์ ์ฟผ๋ฆฌ๋ 20๋ง ๋ฒ์งธ ๋ ์ฝ๋๋ถํฐ ๋จ 10๊ฐ์ ๋ ์ฝ๋๋ง ์กฐํํ์ง๋ง,MySQL์ 20๋ง ๋ฒ์งธ ๋ ์ฝ๋๋ฅผ ์ฐพ๊ธฐ ์ํด ์์ 200,000๊ฐ์ ๋ ์ฝ๋๋ฅผ ๋ชจ๋ ์ฝ์ด์ผํ๋ฏ๋ก ์ฑ๋ฅ ์ ํ๊ฐ ์ฌ๊ฐํด์ง๋ค.
COUNT()
๊ฒฐ๊ณผ ๋ ์ฝ๋์ ๊ฑด์๋ฅผ ๋ฐํํ๋ ํจ์
๋ด๋ถ ์ธ์
์ปฌ๋ผ๋ช /
*/1์ฌ์ฉ ๊ฐ๋ฅ*๋ SELECT ์ ์์ ์ฌ์ฉ๋๋ ๊ฒ์ฒ๋ผ ๋ชจ๋ ์ปฌ๋ผ์ ๊ฐ์ ธ์ค๋ ๊ฒ์ ์๋ฏธํ๋ ๊ฒ์ด ์๋, ์ตํฐ๋ง์ด์ ๊ฐ ์ต์ ํํ์ฌ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์๋ ์ปฌ๋ผ ์ฌ์ฉ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฐ์ฅ ์์ ์ธ์ปจ๋๋ฆฌ ์ธ๋ฑ์ค๋ฅผ ํ์ํ์ฌ ์ฒ๋ฆฌ(์๋ ๊ฒฝ์ฐ, ํด๋ฌ์คํฐ๋ PK ์ธ๋ฑ์ค ์ฌ์ฉ)
๋ง์ฝ ์ธ์๋ก ์ปฌ๋ผ์ ๋ฃ์ ๊ฒฝ์ฐ ํด๋น ์ปฌ๋ผ์ด NULL์ด ์๋ ๋ ์ฝ๋๋ง ์นด์ดํธ
WHERE ์กฐ๊ฑด
WHERE ์กฐ๊ฑด์ด ์๋ ๊ฒฝ์ฐ ํด๋ฌ์คํฐ ์ธ๋ฑ์ค๋ฅผ ์์ฐจ์ ์ผ๋ก ์ค์บํ์ฌ ๋ ์ฝ๋ ๊ฑด์๋ฅผ ์นด์ดํธ(MyISAM ์์ง: ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉ)
์กฐ๊ฑด์ / GROUP BY ๋ ๋ค ์๋ ๊ฒฝ์ฐ ์ฟผ๋ฆฌ ์ต์ ํ๋ฅผ ํตํด ๋ ์ฝ๋ ๊ฑด์๋ฅผ ์ต์ ํํ์ฌ ๋น ๋ฅด๊ฒ ๊ฐ์ ธ์ฌ ์ ์์
์กฐ๊ฑด์ด ์๋ ๊ฒฝ์ฐ์ WHERE ์กฐ๊ฑด์ ์ผ์นํ๋ ๋ ์ฝ๋ ์กฐํํ๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ธ DBMS์ ๋์ผํ๊ฒ ์ฒ๋ฆฌ
ORDER BY
๊ฐ์ ์กฐํ๋ฅผ ํ๋ ๋ฐ์ ์ ๋ ฌ์ด ํ์ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ถํ์ํ ์ฑ๋ฅ ์ ํ๋ฅผ ์ ๋ฐํ ์ ์์(MySQL 8.0 ๋ฏธ๋ง)
MySQL 8.0 ์ด์๋ถํฐ๋ ORDER BY๋ฅผ ์ฌ์ฉํ๋๋ผ๋ ์ตํฐ๋ง์ด์ ์์ ์ต์ ํ(๋ฌด์)ํ์ฌ ์ฑ๋ฅ ์ ํ๋ฅผ ๋ฐฉ์ง
์ฌ๊ธฐ์ InnoDB์์ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ง ์๋ ์ด์ ๋ MVCC ์ง์๊ณผ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ์ํด ํธ๋์ญ์ ๋จ์๋ก ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ด๋ค.
JOIN()
์กฐ์ธ ์ฑ๋ฅ์ ๋๋ผ์ด๋น(Driving) ํ ์ด๋ธ๊ณผ ๋๋ฆฌ๋ธ(Driven) ํ ์ด๋ธ์ ์ ํ / ์กฐ์ธ ์กฐ๊ฑด์ ์ธ๋ฑ์ค ์ ๋ฌด์ ๋ฐ๋ผ ๊ฒฐ์ ๋๋๋ฐ, ์ตํฐ๋ง์ด์ ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ค์ ์์น์ ๋ฐ๋ผ ์กฐ์ธ ์์๋ฅผ ์ต์ ํํ๋ค.
๋ ํ ์ด๋ธ ๋ชจ๋ ์กฐ์ธ ์ปฌ๋ผ์ ์ธ๋ฑ์ค๊ฐ ์๋ค๋ฉด, ํต๊ณ ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ ์ ์ ๋ ์ฝ๋๋ฅผ ๊ฐ์ง ํ ์ด๋ธ์ ๋๋ผ์ด๋น ํ ์ด๋ธ๋ก ์ ํ
ํ ํ ์ด๋ธ์๋ง ์ธ๋ฑ์ค๊ฐ ์๋ค๋ฉด, ์ธ๋ฑ์ค๊ฐ ์๋ ํ ์ด๋ธ์ ๋๋ผ์ด๋น ํ ์ด๋ธ๋ก ์ ํํ์ฌ ํ ์ค์บ์ ํ ๋ฒ๋ง ์ํํ๊ณ , ์ธ๋ฑ์ค๊ฐ ์๋ ํ ์ด๋ธ์ ๋๋ฆฌ๋ธ ํ ์ด๋ธ๋ก ์ผ์ ํจ์จ์ ์ผ๋ก ์กฐํ
๋ ํ ์ด๋ธ ๋ชจ๋ ์ธ๋ฑ์ค๊ฐ ์๋ค๋ฉด, ๋ ์ฝ๋ ๊ฑด์๊ฐ ๋ ์ ์ ํ ์ด๋ธ์ ๋๋ผ์ด๋น ํ ์ด๋ธ๋ก ์ ํ
์์ ์ฟผ๋ฆฌ๊ฐ ์กด์ฌํ ๋ ์ตํฐ๋ง์ด์ ๋ ์๋์ ๊ฐ์ด ๋์ํ๋ค.(๋ฌด์กฐ๊ฑด ์๋์ ๊ฐ์ด ๋์ํ๋ ๊ฒ์ ์๋์ง๋ง ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์๋์ ๊ฐ์ด ๋์ํ๋ค.)
O
O
์ด๋ ํ ์ด๋ธ์ ๋๋ผ์ด๋น์ผ๋ก ์ ํํ๋ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํด ๋๋ฆฌ๋ธ ํ ์ด๋ธ ์กฐํ๋ฅผ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ํต๊ณ ์ ๋ณด๋ฅผ ์ด์ฉํด ์ ์ ํ ์ ํ
O
X
dept_emp ํ ์ด๋ธ์ ๋๋ผ์ด๋น ํ ์ด๋ธ๋ก ์ ํํ์ฌ ํ ์ด๋ธ ํ ์ค์บ์ ํ ๋ฒ๋ง ์ํํ ์ ์๋๋ก ํ๊ณ , employees ํ ์ด๋ธ์ ๋๋ฆฌ๋ธ ํ ์ด๋ธ๋ก ์ ํํ์ฌ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํด ์กฐํํ ์ ์๋๋ก ํจ
X
O
์์ ๋ฐ๋๋ก ๋์
X
X
์ด๋ค ๊ฒฝ์ฐ์์๋ ๋๋ฆฌ๋ธ ํ ์ด๋ธ์ ํ ์ค์บ์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ๋ ์ฝ๋ ๊ฑด์๊ฐ ์ ์ ํ ์ด๋ธ์ ๋๋ผ์ด๋น ํ ์ด๋ธ๋ก ์ ํ
์ง์ฐ ์กฐ์ธ(Delayed Join)
๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ธํ ํ ORDER BY๋ GROUP BY๋ฅผ ์ํํ๋ฉด, ๊ฑฐ๋ํด์ง ์ค๊ฐ ๊ฒฐ๊ณผ ๋๋ฌธ์ ์ฑ๋ฅ์ด ์ ํ๋๋ค.
์กฐ์ธ์ ํ ์๋ก ๋ ์ฝ๋ ๊ฑด์์ ๋ ์ฝ๋ ์์ฒด์ ํฌ๊ธฐ๊ฐ ๋์ด๋จ
GROUP BY, ORDER BY ๋ฑ์ ์์ ์ ์ํํ ๋ ๋ ์ฝ๋ ๊ฑด์๊ฐ ๋ง๊ฑฐ๋ ๋ ์ฝ๋ ์์ฒด์ ํฌ๊ธฐ๊ฐ ์ปค์ง๋ฉด์ ์ฑ๋ฅ ์ ํ ๋ฐ์
๋๋ฌธ์ ๋จผ์ WHERE, ORDER BY,LIMIT ๋ฑ์ ํตํด ํ์ํ ๋ ์ฝ๋์ PK๋ง ์ถ๋ ค๋ธ ํ, ๊ทธ ๊ฒฐ๊ณผ์ ๋๋ฆฌ๋ธ ํ
์ด๋ธ์ ์กฐ์ธํ๋ ์ต์ ํ ๊ธฐ๋ฒ์ ์ฌ์ฉํ ์ ์๋ค.
์ง์ฐ ์กฐ์ธ ์ ์ฉ ์
employees ํ ์ด๋ธ์ ๋๋ผ์ด๋น ํ ์ด๋ธ๋ก ์ ํ
10001 ~ 13000 ์ฌ์ด์ ๋ ์ฝ๋๋ฅผ ์กฐํ
salaries ํ ์ด๋ธ๊ณผ ์กฐ์ธ(์กฐ์ธ ํ ๋ ์ฝ๋ ๊ฑด์๊ฐ ์ฆ๊ฐ)
์ ๊ฒฐ๊ณผ๋ฅผ ์์ํ ์ด๋ธ์ ์ ์ฅ
GROUP BY ์์ ์ํํ์ฌ ์ต๋ 3000๊ฐ์ ๋ ์ฝ๋๋ก ์ค์ด๋ฆ
ORDER BY ์์ ์ํ
LIMIT 10์ผ๋ก ์ต์ข ๊ฒฐ๊ณผ ๋ฐํ
์ง์ฐ ์กฐ์ธ ์ ์ฉ ํ
salaries ํ ์ด๋ธ์์ 10001 ~ 13000 ์ฌ์ด์ ๋ ์ฝ๋๋ฅผ ์กฐํ
GROUP BY / ORDER BY / LIMIT ์์ ์ ์ํํ์ฌ ์ต๋ 10๊ฐ์ ๋ ์ฝ๋๋ก ์ค์ด๋ฆ
employees ํ ์ด๋ธ๊ณผ ์กฐ์ธ
์์ ์์๋ ์ง์ฐ ์กฐ์ธ์ ์ ์ฉํ์ ๋ ์ฑ๋ฅ์ด ํฅ์๋๋ ์์์ด์ง๋ง, ์ง์ฐ ์กฐ์ธ์ ์ ์ฉํ์ ๋ ์ฑ๋ฅ์ด ์ ํ๋๋ ๊ฒฝ์ฐ๋ ์กด์ฌํ๋ฏ๋ก ๋ค์ ์กฐ๊ฑด์ ๋ง์กฑํ๋์ง ํ์ธํด์ผ ํ๋ค.
LEFT(OUTER) JOIN์ธ ๊ฒฝ์ฐ
๋๋ผ์ด๋น ํ ์ด๋ธ:๋๋ฆฌ๋ธ ํ ์ด๋ธ = 1:1 || M:1 ๊ด๊ณ
INNER JOIN์ธ ๊ฒฝ์ฐ
๋๋ผ์ด๋น ํ ์ด๋ธ:๋๋ฆฌ๋ธ ํ ์ด๋ธ = 1:1 || M:1 ๊ด๊ณ
๋๋ผ์ด๋น ํ ์ด๋ธ์ ์๋ ๋ ์ฝ๋๋ ๋๋ฆฌ๋ธ ํ ์ด๋ธ์ ๋ชจ๋ ์กด์ฌํด์ผ ํจ
๋ํฐ๋ด ์กฐ์ธ(Lateral Join)
MySQL 8.0๋ถํฐ ์ง์ํ๋ ๊ธฐ๋ฅ์ผ๋ก ํน์ ๊ทธ๋ฃน๋ณ๋ก ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์คํํด์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ๊ธฐ๋ฅ์ด๋ค.
์ ์ฟผ๋ฆฌ๋ LATERAL ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ์๋๋ฐ, ๋ค์๊ณผ ๊ฐ์ ํฐ ํน์ง์ด ์๋ค.
LATERAL ํค์๋๋ฅผ ๊ฐ์ง ์๋ธ์ฟผ๋ฆฌ๋ ์กฐ์ธ ์์์ ํ์์๋ก ๋ฐ๋ฆฌ๊ณ , ์ธ๋ถ ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ ๋ ์ฝ๋ ๋จ์๋ก ์์ ํ ์ด๋ธ์ด ์์ฑ๋์ด ์ฒ๋ฆฌ
๋ด๋ถ์์ ์ธ๋ถ ์ฟผ๋ฆฌ์ FROM ์ ์ ์ ์๋ ํ ์ด๋ธ์ ์ปฌ๋ผ์ ์ฐธ์กฐ ๊ฐ๋ฅ
ORDER BY
ORDER BY๋ ๋ ์ฝ๋๋ฅผ ์ด๋ค ์์๋ก ์ ๋ ฌํ์ง ๊ฒฐ์ ํ๋ ์ ์ธ๋ฐ, ๋ช ์ํ์ง ์์ผ๋ฉด ์๋์ ๊ฐ์ด ์ ๋ ฌ๋์ด ๋ฐํ๋๋ค.
์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ์ฌ ์กฐํ ๋ ๊ฒฝ์ฐ์ ์ธ๋ฑ์ค์ ์ ๋ ฌ ์์๋๋ก ๋ฐํ
InnoDB์์ ํ ํ ์ด๋ธ ์ค์บ์ ํ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ผ์ด๋จธ๋ฆฌ ํค ์์๋๋ก ๋ฐํ
SELECT ์ฟผ๋ฆฌ๊ฐ ์์ ํ ์ด๋ธ์ ์ฌ์ฉํ์ฌ ์กฐํ๋์ ๊ฒฝ์ฐ์ ๋ ์ฝ๋ ์์๋ฅผ ์์ธกํ๊ธฐ ์ด๋ ค์
์ฐธ๊ณ ์๋ฃ
Last updated
Was this helpful?