๐ OUTER JOIN
: JOINํ๋ ์ฌ๋ฌ ํ ์ด๋ธ์์ ํ ์ชฝ์๋ ๋ฐ์ดํฐ๊ฐ ์๊ณ , ํ ์ชฝ์๋ ๋ฐ์ดํฐ๊ฐ ์๋ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ๊ฐ ์๋ ์ชฝ ํ ์ด๋ธ์ ๋ด์ฉ์ ์ถ๋ ฅ
์กฐ๊ฑด์ ๋ง์ง ์์๋ ํด๋นํ๋ ํ์ ์ถ๋ ฅํ๊ณ ์ถ์ ๋ ์ฌ์ฉ
= ๋์ผํ ๊ฐ์ด ์๋ (๊ต์งํฉ์ด ์๋) ํ๋ ๋ฐํํ ๋ ์ฌ์ฉ
๐จ OUTER JOIN์ USING์ด๋ ON ์กฐ๊ฑด์ ์ ํ์์ ์ผ๋ก ์ฌ์ฉํด์ผํจ
SELECT *
FROM ํ
์ด๋ธ1
LEFT|RIGHT|FULL OUTER JOIN TABLE ํ
์ด๋ธ2
ON (ํ
์ด๋ธ1 KEY = ํ
์ด๋ธ2 KEY)
๐ NOTE
๐ก USING
: ๋ ๊ฐ์ ํ ์ด๋ธ์ด ๋ด๋ถ ์กฐ์ธ์ผ๋ก ์กฐ์ธ ๋ ๋ ์กฐ์ธํ๊ณ ์ ํ๋ ๋ ํ ์ด๋ธ์ ์ปฌ๋ผ๋ช ์ด ๊ฐ์ ๊ฒฝ์ฐ,
์กฐ์ธ ์กฐ๊ฑด์ ๊ธธ๊ฒ ์ ์ง ์๊ณ ๊ฐ๋จํ๊ฒ ์ ์ ์ ์๋๋ก ํ๋ ์ญํ
โ ON ์ฌ์ฉ์์
SELECT T1.ID,T1.NAME,T2.CHECK_YN
FROM T1
JOIN T2
ON T1.ID = T2.ID;
โ USING ์ฌ์ฉ์
SELECT T1.ID,T1.NAME,T2.CHECK_YN
FROM T1
JOIN T2
USING (ID);
๐ก LEFT OUTER JOIN
: ์ผ์ชฝ ํ ์ด๋ธ์ ์กฐ๊ฑด์ ๋ถํฉํ์ง ์๋๋ผ๋ ๋ชจ๋ ๊ฒฐํฉ๋์ด์ผํจ์ ์๋ฏธ
๐ ์ผ์ชฝ ํ ์ด๋ธ ๊ธฐ์ค์ผ๋ก JOIN
SELECT ์ปฌ๋ผ ๋ช
, ... FROM ํ
์ด๋ธ๋ช
1
LEFT OUTER JOIN ํ
์ด๋ธ๋ช
2
ON ์กฐ๊ฑด;
๐ก RIGHT OUTER JOIN
: ์ค๋ฅธ์ชฝ ํ ์ด๋ธ์ ์กฐ๊ฑด์ ๋ถํฉํ์ง ์๋๋ผ๋ ๋ชจ๋ ๊ฒฐํฉ๋์ด์ผํจ์ ์๋ฏธ
๐ ์ค๋ฅธ์ชฝ ํ ์ด๋ธ ๊ธฐ์ค์ผ๋ก JOIN
SELECT ์ปฌ๋ผ ๋ช
, ... FROM ํ
์ด๋ธ๋ช
1
RIGHT OUTER JOIN ํ
์ด๋ธ๋ช
2
ON ์กฐ๊ฑด;
๐ก FULL OUTER JOIN
: LEFT OUTER JOIN + RIGHT OUTER JOIN์ ํ ๊ฒ
์ ์ชฝ ๋ชจ๋ ์กฐ๊ฑด์ด ์ผ์นํ์ง ์๋ ๊ฒ๊น์ง ๋ชจ๋ ๊ฒฐํฉํด ์ถ๋ ฅ
SELECT ์ปฌ๋ผ ๋ช
, ... FROM ํ
์ด๋ธ๋ช
1
FULL OUTER JOIN ํ
์ด๋ธ๋ช
2
ON ์กฐ๊ฑด;
๐ IN ์ฐ์ฐ์
: OR = ์ญํ ์ ํ๋ ์ฐ์ฐ์
โ IN ์ฐ์ฐ์๋ WHERE ์ ์์ ํน์ ๊ฐ ์ฌ๋ฌ ๊ฐ๋ฅผ ์ ํํ๋ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ ์ฐ์ฐ์
๐ก IN ์ฌ์ฉ๋ฒ
SELECT * FROM ํ
์ด๋ธ๋ช
WHERE ์ปฌ๋ผ๋ช
IN (๊ฐ1,๊ฐ2,๊ฐ3,...);
๐จ IN ์ฐ์ฐ์๋ ์ฑ๋ฅ์ด ์ข์ง ์์ ์ฃผ๋ก ๋์ ์ธ ๋ฐ์ดํฐ๋ฅผ = OR๋ก ์ฐ๊ฒฐํ ๋ ์ฌ์ฉ,
์ ์ ์ธ ๋ฐ์ดํฐ('VALUE'๋ก ์ง์ ์ง์ )๋ฅผ ์ฌ์ฉํ ๋์๋ = OR์ ์ง์ ์ฌ์ฉํ๋ ๊ฒ์ด ํจ์จ์
๐ NULL ๊ฐ ์นํ ํจ์
: NULL ์ฒ๋ฆฌ ํจ์, DATA๊ฐ์ด NULL ๊ฐ์ผ ๋ ์์ ์ค์ ๊ฐ์ผ๋ก ์ฒ๋ฆฌํด์ฃผ๋ ํจ์
๐จ ORCLE์์๋ง ์ ๊ณตํ๋ ํจ์
๐ก NVL()
: NULL์ธ ๊ฒฝ์ฐ ์ง์ ๊ฐ์ ์ถ๋ ฅํ๊ณ , NULL์ด ์๋๋ฉด ์๋ ๊ฐ์ ๊ทธ๋๋ก ์ถ๋ ฅ
NVL(์ปฌ๋ผ๋ช
, NULL์ผ ๊ฒฝ์ฐ ๋์ฒดํ ๊ฐ)
โ ๊ฒฐ๊ณผ๊ฐ์ NULL์ด ํฌํจ๋์ด์๋์ง๋ฅผ ํ์ธ
๐ก NVL2()
: NVL()์ ๋ค๋ฅด๊ฒ NULL์ด ์๋๋์๋ ๊ฐ์ ์ง์ ํ ๊ฐ์ผ๋ก ๋์ฒด ๊ฐ๋ฅํจ
โ ์กฐ๊ฑด์ด NULL ์ฒดํฌ์ธ IF๋ฌธ
NVL2(๊ฐ, NULL์ผ ๋์ ์ง์ ๊ฐ, NULL์ด ์๋ ๋์ ์ง์ ๊ฐ)
๐ก COALESCE
: ์์ด๋ก๋ '(๋ ํฐ ๋ฉ์ด๋ฆฌ๋ก) ํฉ์น๋ค' ๋ผ๋ ์๋ฏธ
์ฒ์์ผ๋ก NULL์ด ์๋ ์ปฌ๋ผ ๊ฐ์ ๋ง๋๋ฉด ๊ทธ ์ปฌ๋ผ ๊ฐ์ RETURN
์ฌ๋ฌ ๊ฐ์ ์ปฌ๋ผ์ NULL๊ฐ์ ํ๋ณํด์ผํ ๊ฒฝ์ฐ NULL์ด ์๋ ์ฒซ ๋ฒ์งธ ์ปฌ๋ผ์ ๊ฐ์ ๋ฐํํ๊ณ ์ถ์ ๋ ์ฌ์ฉ
โ NVLํจ์์ ํ์ฅ ๋ฒ์
โ ๋ชจ๋ ์ธ์๊ฐ NULL์ธ ๊ฒฝ์ฐ์๋ NULL์ ๋ฐํ
โ ์์์ NULL์ด ํฌํจ๋์ด์๋์ง๋ฅผ ํ์ธ
ex) COALESCE(2*NULL, 0) ==> 0
โ COALESCE ์ฌ์ฉ๋ฒ
SELECT A,B COALESCE(A,B) FROM TA;
A | B | COALESCE(A,B) |
1 | NULL | 1 |
NULL | 2 | 2 |
NULL | NULL | NULL |
'ORACLE' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
#36 [ORACLE] JDBC, Statement, PreparedStatement, CallableStatement, ExecuteQuery, ExecuteUpdate (0) | 2022.11.22 |
---|---|
#35 [ORACLE] LIKE, ์์ผ๋ ๋ฌธ์ (2) | 2022.11.21 |
#33 [ORACLE] MOD,REMAINDER,DATE ํจ์,๋ฌธ์์ด ์ฐ๊ฒฐ, SUBSTR, ์งํฉ์ฐ์ฐ์ (0) | 2022.11.17 |
#32 [ORACLE] ์ง๊ณ ํจ์, GROUP BY, DISTINCT, VIEW (0) | 2022.11.16 |
#31 [ORACLE] Cascade (1) | 2022.11.15 |
๋๊ธ