yeony._.
๐Ÿข์ฝฉ๋ถ€๐Ÿข
yeony._.
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (99)
    • ๐Ÿ’ปProgramming (91)
      • โ˜•๏ธJava (19)
      • ๐Ÿ’ฝOracle (21)
      • ๐Ÿ‘ฉ‍๐ŸŽจHTML&CSS (12)
      • ๐ŸŽจ ์‹ค์Šต (4)
      • ๐Ÿƒ‍โ™€๏ธJavaScript (25)
      • JSP (8)
      • ๐ŸƒSpring (0)
      • ๐Ÿฅงpython (0)
      • API (0)
      • ๐Ÿ˜ˆGit (1)
    • ๐ŸคซPrivate (0)
      • -- (0)
      • + (0)
      • S (0)
      • P (0)
      • B (0)
    • ๐Ÿ˜ŽProject (4)
      • ๐Ÿ—“๏ธwbs ํ”„๋กœ์ ํŠธ (3)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • HTML #CSS #HTML์ด๋ฏธ์ง€ #HTML์ด๋ฏธ์ง€์—๊ธ€์”จ #HTML์ด๋ฏธ์ง€์—์ด๋ฏธ์ง€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
yeony._.

๐Ÿข์ฝฉ๋ถ€๐Ÿข

[Oracle] ์กฐ์ธ
๐Ÿ’ปProgramming/๐Ÿ’ฝOracle

[Oracle] ์กฐ์ธ

2022. 8. 11. 17:38

์กฐ์ธ 

์กฐ์ธ์€ ๋‘˜ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”, ๋ทฐ์˜ ํ–‰์„ ๊ฒฐํ•ฉํ•˜๋Š” ์ฟผ๋ฆฌ 

์ฟผ๋ฆฌ์˜ FROM์ ˆ์— ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์ด ๋‚˜ํƒ€๋‚  ๋•Œ๋งˆ๋‹ค ์กฐ์ธ์„ ์ˆ˜ํ–‰ํ•จ

 

์กฐ์ธ ์กฐ๊ฑด 

์กฐ์ธ ์ฟผ๋ฆฌ์—๋Š” FROM์ ˆ ๋˜๋Š” WHERE์ ˆ์— ํ•˜๋‚˜ ์ด์ƒ์˜ ์กฐ์ธ ์กฐ๊ฑด์ด ํฌํ•จ๋˜์–ด ์žˆ์Œ 

 

INNER JOIN(๋‚ด๋ถ€ ์กฐ์ธ)

์กฐ์ธ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ํ–‰๋งŒ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋‘˜ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์„ ์กฐ์ธ

์ข…๋ฅ˜ EQUI JOIN, NATURAL JOIN, CROSS JOIN, SELF JOIN, NON-EQUI JOIN ๋“ฑ

 

EQUI JOIN

์กฐ์ธ ๋Œ€์ƒ ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ ๊ฐ’๋“ค์ด ์„œ๋กœ ์ •ํ™•ํ•˜๊ฒŒ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๋Š” JOIN

์กฐ๊ฑด์— ๋งŒ์กฑํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ์„ ๊ฐ€์ ธ์˜ด 

 WHERE ์ ˆ์— '='

(Equality Condition) ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ JOIN ์กฐ๊ฑด์„ ๋ช…์‹œ

SELECT select_list FROM table_name1 
[ INNER ] JOIN table_name2 ON join_condition
[[ INNER ] JOIN table_name3 ON join_condition ] 
[ WHERE where_condition ];

 

NATURAL JOIN
EQUI JOIN
์—์„œ JOIN ์กฐ๊ฑด์ด '='์ผ ๋•Œ ๋™์ผํ•œ ์†์„ฑ์ด ๋‘ ๋ฒˆ ๋‚˜ํƒ€๋‚˜๊ฒŒ ๋˜๋Š”๋ฐ, ์ด ์ค‘ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜์—ฌ ๊ฐ™์€ ์†์„ฑ์„  ํ•œ ๋ฒˆ๋งŒ ํ‘œ๊ธฐ
NATURAL JOIN
์€ ๋‘ ํ…Œ์ด๋ธ”์˜ ๋™์ผํ•œ ์ด๋ฆ„์„ ๊ฐ€์ง€๋Š” ์ปฌ๋Ÿผ์ด ๋ชจ๋‘ ์กฐ์ธ๋œ๋‹ค.
๋™์ผํ•œ ์ปฌ๋Ÿผ์„ ๋‚ด๋ถ€์ ์œผ๋กœ ์ฐพ๊ฒŒ ๋˜๋ฏ€๋กœ ํ…Œ์ด๋ธ” ๋ณ„์นญ(Alias)์„ ์ฃผ๋ฉด ์˜ค๋ฅ˜

SELECT select_list
FROM table_name1 NATURAL JOIN table_name2;

 

CROSS JOIN
์ƒํ˜ธ ์กฐ์ธ์€ ์กฐ์ธ์— ํฌํ•จ๋œ ํ…Œ์ด๋ธ”์˜ ์นดํ‹ฐ์…˜ ๊ณฑ(Cartisian Product)์„ ๋ฐ˜ํ™˜

SELECT select_list
FROM table_name1 CROSS JOIN table_name2;

 

SELF JOIN
SELF JOIN
์€ ๊ฐ™์€ ํ…Œ์ด๋ธ”์—์„œ 2๊ฐœ์˜ ์†์„ฑ์„ ์—ฐ๊ฒฐํ•˜์—ฌ EQUI JOIN์„ ํ•˜๋Š” ๊ฒƒ

-- ๋ฌต์‹œ์  ํ‘œํ˜„
SELECT select_list FROM table_name, table_name WHERE condition;
-- ๋ช…์‹œ์  ํ‘œํ˜„
SELECT select_list FROM table_name JOIN table_name ON join_condition;

 

NON- EQUI JOIN

์กฐ์ธ ๋Œ€์ƒ ํ…Œ์ด๋ธ”์˜ ์–ด๋–ค ์นผ๋Ÿผ ๊ฐ’๋„ ์ผ์น˜ํ•˜์ง€ ์•Š์„ ๋•Œ ์‚ฌ์šฉํ•˜๋ฉฐ'='์ด์™ธ์˜ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉ

-- ๋ฌต์‹œ์  ํ‘œํ˜„
SELECT select_list FROM table_name1, table_name2 WHERE non-equi-join_condition;
-- ๋ช…์‹œ์  ํ‘œํ˜„
SELECT select_list FROM table_name1 JOIN table_name2 ON non-equi-join_condition;

 

 

OUTER JOIN

์กฐ์ธ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ JOIN

OUTER JOIN์€ ์–ด๋А ํ•œ์ชฝ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๊ฐ€์ ธ์˜ด

INNER JOIN์ด ๋‘ ํ…Œ์ด๋ธ”์— ์žˆ๋Š” ์ผ์น˜ํ•˜๋Š” ๊ฐ’๋งŒ ๊ฐ€์ ธ์˜ด

์ข…๋ฅ˜  LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN

 

LEFT OUTER JOIN

JOIN ์ˆ˜ํ–‰ ์‹œ ์™ผ์ชฝ์— ํ‘œ๊ธฐ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ OUTER JOIN

์™ผ์ชฝ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ 

JOIN๋ฌธ์˜ ์™ผ์ชฝ์—  ์žˆ๋Š”  ํ…Œ์ด๋ธ”์˜  ๋ชจ๋“   ๊ฒฐ๊ณผ๋ฅผ  ๊ฐ€์ ธ์˜จ  ํ›„  ์˜ค๋ฅธ์ชฝ  ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ  ๋งค์นญํ•˜๊ณ ,   ๋งค์นญ๋˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ NULL

-- ๋ฌต์‹œ์  ํ‘œํ˜„
SELECT select_list FROM table_name1, table_name2 WHERE table_name1. column = table_name2. column(+);
-- ๋ช…์‹œ์  ํ‘œํ˜„
SELECT select_list FROM table_name1 LEFT [ OUTER ] JOIN table_name2 ON join_condition;

 

 

 

RIGHT OUTER JOIN

์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ 

JOIN ์ˆ˜ํ–‰ ์‹œ ์˜ค๋ฅธ์ชฝ์— ํ‘œ๊ธฐ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ OUTER JOIN์„ ์ˆ˜ํ–‰

JOIN๋ฌธ์˜ ์˜ค๋ฅธ์ชฝ์—  ์žˆ๋Š”  ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“   ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜จ  ํ›„  ์™ผ์ชฝ  ํ…Œ์ด๋ธ”์˜  ๋ฐ์ดํ„ฐ๋ฅผ  ๋งค์นญํ•˜๊ณ ,๋งค์นญ๋˜๋Š”  ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ NULL

-- ๋ฌต์‹œ์  ํ‘œํ˜„
SELECT select_list FROM table_name1, table_name2 WHERE table_name1. column(+) = table_name2. column;
-- ๋ช…์‹œ์  ํ‘œํ˜„
SELECT select_list FROM table_name1 RIGHT [ OUTER ] JOIN table_name2 ON join_condition;

 

FULL OUTER JOIN

์™ผ์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๊ฐ€์ ธ์™€์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ 

์กฐ์ธ ์ˆ˜ํ–‰ ์‹œ ์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๊ฐ’์„ ์ฝ์–ด JOIN์„ ์ˆ˜ํ–‰

JOIN์˜ ๊ฒฐ๊ณผ๋ฅผ ํ•ฉ์ง‘ํ•ฉ์œผ๋กœ ์ฒ˜๋ฆฌํ•œ ๊ฒฐ๊ณผ์™€ ๋™์ผ

SELECT select_list FROM table_name1 FULL [ OUTER ] JOIN table_name2 ON join_condition;

'๐Ÿ’ปProgramming > ๐Ÿ’ฝOracle' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Oracle] ๋ทฐ  (0) 2022.08.12
[Oracle] ์„œ๋ธŒ์ฟผ๋ฆฌ  (0) 2022.08.11
[Oracle] ์ œ์•ฝ์กฐ๊ฑด  (0) 2022.08.10
[Oracle] ๋ฐ์ดํ„ฐ ๋”•์…”๋„ˆ๋ฆฌ(Data Dictionary)  (0) 2022.08.10
[ORACLE] ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ธ์–ด(DML)  (0) 2022.08.09
    '๐Ÿ’ปProgramming/๐Ÿ’ฝOracle' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Oracle] ๋ทฐ
    • [Oracle] ์„œ๋ธŒ์ฟผ๋ฆฌ
    • [Oracle] ์ œ์•ฝ์กฐ๊ฑด
    • [Oracle] ๋ฐ์ดํ„ฐ ๋”•์…”๋„ˆ๋ฆฌ(Data Dictionary)
    yeony._.
    yeony._.
    ํž˜ ์„ธ์ง€๋Š” ์•Œ์•ฝ๐Ÿ’Š๐Ÿ’Š๐Ÿ’Š

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”