๐ป
Oracle DBMS ๋ฐ SQL - ์๋ธ์ฟผ๋ฆฌ(SUBQUERY) ๋ณธ๋ฌธ
--SubQuery : SELECT ๋ฌธ ๋ด์ ๋ ๋ค๋ฅธ SELECT๋ฌธ์ ํฌํจํ ์ ์๋ค. ํฌํจ SELECT ์๋ธ์ฟผ๋ฆฌ๋ผ๊ณ ํ๋ค.
-- 1) ๋จ์ผ์ด/ ๋จ์ผํ (1ํ 1์ด)
-- 2) ๋จ์ผ์ด/ ๋ค์คํ (2ํ์ด์ 1์ด)
-- 3) ๋ค์ค์ด/ ๋จ์ผํ
-- 4) ๋ค์ค์ด/ ๋ค์คํ
-- ์ฐธ๊ณ ) SubQuery ์์ฑ์ WHERE์ ๋๋ FROM์ ์ ํ๋ค.
-- Join & SubQuery
--์ญ์ฌ์๊ณผ ๊ฐ์ ๋ถ์์ ๊ทผ๋ฌดํ๋ ์ฌ์์ ๊ฒ์/ ๋ถ์(๋ถ์๋ช
, ๋ถ์์ฝ๋)
--1. ๋ถ์์ฝ๋๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ
--2. ๋ถ์๋ช
์ ์ด์ฉํ๋ ๋ฐฉ๋ฒ => Join์ ํด์ผํ๋ค.
--1. ๋จ์ผํ * ๋จ์ผํ(1ํ 1์ด) WHERE
--์ฌ์๋ค ์ค์์ ์ฐ๋ด์ด Jack ์ฌ์ ์ฐ๋ด๋ณด๋ค ๋ง๊ณ , Lex์ฌ์์ ์ฐ๋ด๋ณด๋ค ์ ๊ฒ ๋ฐ๋ ์ฌ์ ๊ฒ์
--<=> Self Join ์ผ๋ก ๋ฐ๊ฟ๋ณด๊ธฐ
--ํ ์ด๋ธ 3๊ฐ๊ฐ ํ์ํ๋ค
--2. ๋ค์คํ * ๋จ์ผ์ด(2ํ์ด์ * 1์ด) WHERE
-- : ๋ค์คํ ์๋ธ์ฟผ๋ฆฌ์์ ๋ฐํ๋๋ ๊ฒฐ๊ณผ๊ฐ ๋ ๊ฐ ์ด์์ ํ ์ผ๋
-- ๋ค์คํ ์๋ธ์ฟผ๋ฆฌ๋ ๋ฐ๋์ ๋ค์คํ ์ฐ์ฐ์(IN, ALL, ANY, EXIST)
--2-1) IN
--2-2) ALL : ๋ฉ์ธ ์ฟผ๋ฆฌ์ ๋น๊ต ์กฐ๊ฑด์ด ์๋ธ ์ฟผ๋ฆฌ์ ๊ฒ์ ๊ฒฐ๊ณผ์ ๋ชจ๋ ๊ฐ์ด ์ผ์น
--2-3) ANY : ๋ฉ์ธ ์ฟผ๋ฆฌ์ ๋น๊ต ์กฐ๊ฑด์ด ์๋ธ์ฟผ๋ฆฌ์ ๊ฒ์ ๊ฒฐ๊ณผ์ ํ๋ ์ด์์ผ์น ํจ/ ์์ ๊ฐ ๊ธฐ์ค
--2-4) EXISTS : ์๋ธ ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ ๊ฐ์ด ์ฐฝ์ด ๋์ค๊ธฐํ๋ฉด ๋ฐ๋ก ๋ฉ์ธ์ฟผ๋ฆฌ์ ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํด
--3. ๋จ์ผํ * ๋ณต์์ด
--๋ค์ค์ด, ๋ค์คํ์ด๊ธฐ ๋๋ฌธ์ = ์ฐ์ฐ์ ๋ชป์ด๋ค. / IN,ANY,ALL ์ฌ์ฉํด์ผํ๋ค.
[์ถ๊ฐ]
- GROUP ํจ์๋ JOIN์ผ๋ก ๋ชป๋ฐ๊พผ๋ค.
- ์กด์ฌํ๋ ํ ์ด๋ธ๋ง ์๋ธ์ฟผ๋ฆฌ๋ฌธ์ => JOIN์ผ๋ก ๋ฐ๊ฟ ์ ์๋ค.
--4. FROM ์๋ธ์ฟผ๋ฆฌ : FROM ์ ์ ์๋ธ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค. (In-Line View)
--ํ
์ด๋ธ ์ฒ๋ผ ์กฐ์ธํด์ ์ฌ์ฉํ ์ ์๋ค. ์ฆ, Join + SubQuery
--> ์์์ WHERE ์ ์์ SubQuery๋ฅผ ์ฌ์ฉํ์ ๋์ ๋น๊ตํด๋ณด์.
--> ์์์ WHERE ์ ์์ SubQuery๋ฅผ ์ฌ์ฉํ์ ๋์ ๋น๊ตํด๋ณด์.
โ
โ โ
[์ ๋ฆฌ]
- GROUP BY ์ง๊ณํจ์๋ ์๋ ํ ์ด๋ธ์ด๋๊น ์กฐ์ธ๋ถ๊ฐ
- ์ธ๋ผ์ธ ๋ทฐ๋ ๊ฑฐ์ ๋ค ๊ฐ๋ฅ
- Where์ SubQuery๋ ๋ค๋ฅธ ํ ์ด๋ธ์์ ๊ฐ์ ธ์จ ํ๋์ ๋์ผํ ํ๋๋ฅผ ๊ฐ์ง๊ณ ์์ง ์์ผ๋ฉด ์๋๋ค.
-- ALL, IN, ANY ์ฐ์ฐ์ ๋ง์ด ์ฐ์ธ๋ค. ์ ์์๋๊ธฐ!
โ โ โ
--5. ์งํฉ(SET) ์ฐ์ฐ์ / UNION, UNION ALL, INTERSECT, MINUS
--5-1) ๋ณต์ฌํด์ ์๋ก์ด ํ
์ด๋ธ ์์ฑ
--5-2) UNION : ๋ ์ง์ ๊ฒฐ๊ณผ๊ฐ์ ํฉ์ผ๋ก ์ค๋ณต์ ์ ๊ฑฐํจ
--5-3) UNION ALL : ๋ ์ง์ ๊ฒฐ๊ณผ๊ฐ์ ํฉ์ผ๋ก ์ค๋ณต์ ํฌํจ
--5-4) INTERSECT : ๋ ์ง์ ๊ฒฐ๊ณผ๊ฐ์ ๊ณตํต๋๋ ๊ฐ
--5-5) MINUS : ์ฒซ๋ฒ์งธ ์ง์ ๊ฒฐ๊ณผ์์ ๋๋ฒ์งธ ์ง์ ๊ฒฐ๊ณผ์ ์๋ ํ์ ์ ๊ฑฐํ ๊ฐ
'KITRI > ORACLE' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Orarcle DBMS ๋ฐ SQL - TABLE์ ์์ฑ/์ญ์ , DML(INSERT, UPDATE, DELETE ๋ฌธ) (0) | 2020.04.17 |
---|---|
Orarcle DBMS ๋ฐ SQL - ๊ณ์ ์์ฑ/์ญ์ , ๊ถํ๋ถ์ฌ (0) | 2020.04.17 |
Oracle DBMS ๋ฐ SQL - ์กฐ์ธ(JOIN) (0) | 2020.04.10 |
Oracle DBMS ๋ฐ SQL - ํจ์(๊ทธ๋ฃนํจ์) (0) | 2020.04.10 |
Oracle DBMS ๋ฐ SQL - ํจ์(์ซ์ํจ์, ๋ ์งํจ์, ๋ณํํจ์) (0) | 2020.04.08 |