์๋ธ์ฟผ๋ฆฌ
: SQL๋ฌธ ๋ด๋ถ์ ์ฌ์ฉํ๋ SELECT ๋ฌธ
โข
๋ฉ์ธ์ฟผ๋ฆฌ : ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์ต์ข
์ ์ธ SELECT ๋ฌธ
์คํ ๊ฒฐ๊ณผ์ ๋ฐ๋ฅธ ๋ถ๋ฅ
โข
๋จ์ผํ ์๋ธ์ฟผ๋ฆฌ : ๊ฒฐ๊ณผ ๋ฐ์ดํฐ๊ฐ ํ๋์ธ ์๋ธ์ฟผ๋ฆฌ
โข
๋ค์คํ ์๋ธ์ฟผ๋ฆฌ : ๊ฒฐ๊ณผ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ฌ ํ์ธ ์๋ธ์ฟผ๋ฆฌ
๋ค์คํ ์ฐ์ฐ์
โข
IN : ํด๋น ์ปฌ๋ผ๊ณผ ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ด ์ผ์นํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ตฌํ๋ ์ฐ์ฐ
โข
ANY : A ๋น๊ต์ฐ์ฐ ANY B ๋น๊ตํ ๊ฒฐ๊ณผ ์ค, ํ๋ ๋ง์ด๋ผ๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ A ๋ฅผ ๊ตฌํ๋ ์ฐ์ฐ
โข
ALL : A ๋น๊ต์ฐ์ฐ ALL B ๋น๊ตํ ๊ฒฐ๊ณผ ์ค, ๋ชจ๋ ๋ฐ์ดํฐ์ ๋ํด ์กฐ๊ฑด์ ๋ง์กฑํ๋ A ๋ฅผ ๊ตฌํ๋ ์ฐ์ฐ
โข
EXISTS : ์๋ธ์ฟผ๋ฆฌ์ ์กด์ฌํ๋ ๋ฐ์ดํฐ๋ง ์กฐํํ๋ ์ฐ์ฐ
์ฌ์ฉ ์์น์ ๋ฐ๋ฅธ ๋ถ๋ฅ
โข
์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ : SELECT ์ ์์ ์ฌ์ฉํ๋ ์๋ธ์ฟผ๋ฆฌ
โข
์ธ๋ผ์ธ ๋ทฐ : FROM ์ ์์ ์ฌ์ฉํ๋ ์๋ธ์ฟผ๋ฆฌ
โข
์๋ธ ์ฟผ๋ฆฌ : WHERE ์ ๋ฑ์์ ์ฌ์ฉํ๋ ์๋ธ์ฟผ๋ฆฌ
์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ
SELECT ์ ์์ ์ฌ์ฉํ๋ฉฐ ๋จ์ผ ๊ฐ์ ๋ฐํํ๋ ์๋ธ์ฟผ๋ฆฌ
SELECT
name,
(SELECT COUNT(*) FROM orders WHERE customer_id = id) AS order_count
FROM customers;
SQL
๋ณต์ฌ
์ธ๋ผ์ธ ๋ทฐ
FROM ์ ์์ ์ฌ์ฉํ๋ ์๋ธ์ฟผ๋ฆฌ
SELECT
name,
order_count
FROM (
SELECT
customer_id,
COUNT(*) AS order_count
FROM orders
GROUP BY customer_id
) AS orders_by_customer;
SQL
๋ณต์ฌ
์๋ธ ์ฟผ๋ฆฌ
WHERE ์ ๋ฑ์์ ์ฌ์ฉํ๋ ์๋ธ์ฟผ๋ฆฌ
SELECT
name
FROM customers
WHERE id IN (SELECT customer_id FROM orders);
SQL
๋ณต์ฌ
WITH ์
: ๊ณผ๋ํ ์๋ธ์ฟผ๋ฆฌ ์ฌ์ฉ์ผ๋ก ์ธํด ์ฟผ๋ฆฌ์ ๊ฐ๋
์ฑ์ด ๋จ์ด์ง๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด์,
์๋ธ์ฟผ๋ฆฌ๋ก ์ฌ์ฉํ SELECT ๋ฌธ์ ์กฐํ๊ฒฐ๊ณผ๋ฅผ ์์ํ
์ด๋ธ๋ก ์ ์ํ ๊ตฌ๋ฌธ
โข
ํํ
WITH
(
๋ณ์นญ1 AS (SELECT * FROM ํ
์ด๋ธ),
๋ณ์นญ2 AS (SELECT * FROM ํ
์ด๋ธ),
...
)
SELECT *
FROM ๋ณ์นญ1, ๋ณ์นญ2, ...
SQL
๋ณต์ฌ