Database

(22.12.05) Database : ๊ณ„์ธต๊ตฌ์กฐ ์งˆ์˜(hierarchycal Query), pagination(ํŽ˜์ด์ง€ ๋‚˜๋ˆ„๊ธฐ),VIEW ๋งŒ๋“ค๊ธฐ, ์™ธ๋ถ€ํ‚ค ์ œ์•ฝ์กฐ๊ฑด

ํ”„๋กœ๊ทธ๋ž˜๋จธ ์˜ค์›” 2022. 12. 5.

 

โ—โ—๊ณ„์ธต๊ตฌ์กฐ ์งˆ์˜(hierarchycal Query)โ—โ—

 


-๋ถ€๋ชจ๊ธ€ /์ž์‹๊ธ€ ์ •๋ ฌ
๋ˆ„๊ตฌ์•„๋ž˜์— ๋ˆ„๊ตฌ๋ฅผ ๋ถ™์–ด๋ผ
root๋ฅผ ์ •ํ•ด์ฃผ๋ฉด ๊ฐ€์ง€๊ฐ€ ๋ถ™๋Š”๋‹ค

 

์ƒ์‚ฌ์˜ ์‚ฌ์›๋ฒˆํ˜ธ๋กœ ์ •๋ ฌ์„ ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด 

 

 

๋ฃจํŠธ๋ฅผ ์ •ํ•ด์ฃผ๊ณ  ๊ทธ๊ณณ๋ถ€ํ„ฐ ์‚ฌ์›๋ฒˆ์™€ ์ƒ์‚ฌ๋ฒˆํ˜ธ๊ฐ€ ๊ฐ™์€ ์‚ฌ๋žŒ๋ผ๋ฆฌ ์ •๋ ฌํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ํ•˜์ง€ ์•Š์•„ ๋ณด๊ธฐ๊ฐ€ ๋ถˆํŽธํ•˜๋‹ค.

 

 

 

LPAD๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋“ค์–ด ์“ฐ๊ธฐ๋ฅผ ํ•ด์ค€๋‹ค. ํŠธ๋ฆฌ์˜ ๊ฐ€์ง€๋“ค์€ ๊ฐ€์ง€์น˜๊ธฐ ํ•œ ๋งŒํผ ๋“ค์—ฌ์“ฐ๊ธฐ ๋˜๊ฒŒ ๋œ๋‹ค.

NAME :  KING์˜ ๋ ˆ๋ฒจ์ด 1์ด๋ฏ€๋กœ  ๋ ˆ๋ฒจ 2๋ถ€ํ„ฐ ๋“ค์—ฌ์“ฐ๊ธฐ ํ•ด์ฃผ๊ณ  ์‹ถ์œผ๋‹ˆ (LEVEL-1)์„ ํ•ด์ค€๋‹ค.

 

์ด๋ฆ„์— ๋นˆ์นธ์„ ์ฃผ์–ด ๋“ค์—ฌ์“ฐ๊ธฐ ํ•˜๊ณ  ์‹ถ์€๋ฐ ์‹œ์Šคํ…œ ์ƒ์—์„  ๊ณต๋ฐฑ์€ ํ•˜๋‚˜๋งŒ ์ทจ๊ธ‰์„ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ํŠน์ˆ˜๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•ด์ค€๋‹ค. 'ใ„ฑ'์„ ์“ฐ๊ณ  ํ•œ์ž ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด 1๋ฒˆ์— ๊ณต๋ฐฑ์ด ์žˆ๋Š” ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ณต๋ฐฑ๋Œ€์‹  '*'์„ ์“ด๋‹ค๋ฉด ์ด์™€ ๊ฐ™์ด ๋‚˜์˜จ๋‹ค.

 

 

 

 

โ—โ—PAGINATIONโ—โ—

 

 

ํ…Œ์ด๋ธ”์—๋Š” ์—†๋Š” ์ƒˆ๋กœ์šด ์ปฌ๋Ÿผ RN์„ ROWNUM ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ๋งŒ๋“ ๋‹ค.

๋…ธ๋ž€์ค„ ํ‘œ์‹œ๋œ ํ•œ ๋กœ์ง์€ INLINE VIEW๋กœ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”๋กœ์„œ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

์ธ๋ผ์ธ ๋ทฐ์˜ ๊ฐ€์ƒ์˜ ํ…Œ์ด๋ธ”์˜ ์ด๋ฆ„์„ T1์ด๋ผ๊ณ  ํ•ด์ฃผ๊ณ  T1 ์˜ ์ „์ฒด ๋‚ด์šฉ์„ ๋ณด์—ฌ์ฃผ๊ฒŒ ํ•ด๋ณด์•˜๋‹ค.

 

 

์ธ๋ผ์ธ ๋ทฐ๋ฅผ ํ’ˆ๊ณ  ์žˆ๋Š” ๋”ํฐ ์ธ๋ผ์ธ ๋ทฐ๋ฅผ T2๋ผ๊ณ  ํ•˜๊ณ  T2์˜ ์ „์ฒด ๋‚ด์šฉ์ค‘์— RN์ด 1~5์—์„œ ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„์„ ๋‹ฌ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

ํ•œ ํ™”๋ฉด์— 3๊ฐœ ํ–‰์”ฉ ๊ฐ€์ ธ์˜ค๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ RN์„ ์ด์šฉํ•˜์—ฌ ๋กœ์ง์„ ๊ตฌ์„ฑํ•œ๋‹ค.

RN์—์„œ 1์„ ๋บ€์ค€ ํ›„ 3์œผ๋กœ ๋‚˜๋ˆ„๊ณ  ๊ทธํ›„์— 1์„ ๋”ํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•ด์ฃผ๋Š” ์ด์œ ๋Š” FLOOR์„ ์“ฐ๊ธฐ ์œ„ํ•จ์ธ๋ฐ

 

๋‚˜๋ˆˆ ๊ฐ’์ด 0.7์ด๋ผ๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ FLOORํ•จ์ˆ˜๋Š” 0์„ CEIL์€ 1 ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ •์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

์œ„์—์„œ 5๋ฅผ ์˜ˆ๋กœ ๋“ค์—ˆ์„ ๋•Œ 5์—์„œ1์„ ๋นผ๊ณ  (4)  ์ด๊ฑธ 3์œผ๋กœ ๋‚˜๋ˆ„๋ฉด 1.3333....์ด ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค. FLOORํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์ด๋Š” 1์ด ๋˜๊ณ  ์—ฌ๊ธฐ์— 1์„ ๋”ํ•˜๋ฏ€๋กœ 2ํŽ˜์ด์ง€๊ฐ€ ๋˜๊ฒŒ ๋œ๋‹ค.

 

 

EMP ํ…Œ์ด๋ธ”์„ ๊ณ„์ธต๊ตฌ์กฐ์‹์œผ๋กœ ๋ฐ”๊พผ ํ›„ 5๊ฐœ๋ฅผ ํŽ˜์ด์ง€๋กœ ๋‚˜๋ˆ„์–ด 1ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๊ฒŒ ํ–ˆ์„ ๋•Œ ๊ฒฐ๊ณผ

 

 

 

 

โ—โ—VIEW ๋งŒ๋“ค๊ธฐโ—โ—

์ฟผ๋ฆฌ๊ฐ€ ๊ธธ์–ด์ ธ ๋ณต์žกํ•ด์กŒ์„ ๋• ํ•˜๋‚˜์˜ VIEW๋กœ ์ง€์ •ํ•ด์„œ ์ €์žฅํ•ด ์ค„ ์ˆ˜ ์žˆ๋‹ค.

 

๋ทฐ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋ฌธ๋ฒ•์œผ๋กœ๋Š” 

 

CREATE VIEW  (๋ทฐ๋ช…)  AS

SELECT (์ปฌ๋Ÿผ๋ช…)  FROM (ํ…Œ์ด๋ธ” ๋ช…)

 

์œ„์™€๊ฐ™์ด ํ•ด์ฃผ๋ฉด ์˜ค๋ฅ˜๋ณด๊ณ ๊ฐ€ ๋œฌ ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด์œ ๋Š” ๋ฐ”๋กœ SCOTT ๊ณ„์ •์—” ๋ทฐ๋ฅผ ๋งŒ๋“ค์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋”ฐ๋ผ์„œ ์‹œ์Šคํ…œ ๊ณ„์ •์— ๋กœ๊ทธ์ธํ•˜์—ฌ ๊ถŒํ•œ์„ SCOTT ๊ณ„์ •์— ๋ทฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด์ค˜์•ผํ•œ๋‹ค.

 

์‹œ์Šคํ…œ ๊ณ„์ •์—์„œ ๊ถŒํ•œ ๋ถ€์—ฌํ•˜๊ธฐ

GRANT ( ๋ถ€์—ฌํ•  ๊ถŒํ•œ) TO (๊ณ„์ • ๋ช…);

 

 

๊ถŒํ•œ ๋ถ€์—ฌ ํ›„์—” ์ œ๋Œ€๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ฑธ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

๋ทฐ๋ฅผ ์ด์šฉํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ํŽ˜์ด์ง€๋ฅผ ๋ถ€๋ฅผ ์ˆ˜ ์žˆ๊ฒŒ ๋๋‹ค.

 

 

 

 

โ—โ—ํ…Œ์ด๋ธ” ์—ฐ๊ฒฐํ•˜๊ธฐ JOIN ๋ฌธโ—โ—

 

JOIN ๋ฌธ์„ ์ด์šฉํ•˜๋ฉด ๋‘๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ๋ฌถ์„ ์ˆ˜ ์žˆ๊ฒŒ๋œ๋‹ค.

EMP ํ…Œ์ด๋ธ”์˜ ์‚ฌ์›๋ฒˆํ˜ธ์™€ DEPT ํ…Œ์ด๋ธ”์˜ ์‚ฌ์›๋ฒˆํ˜ธ๊ฐ€ ๊ฐ™์œผ๋ฏ€๋กœ ์ด๊ฒƒ์„ ๊ธฐ์ค€์œผ๋กœ ํ…Œ์ด๋ธ”์„ ํ•ฉ์น  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

 

 

 

์™ธ๋ถ€ ํ‚ค ์ œ์•ฝ์กฐ๊ฑด (FOREIGN KEY CONSTRAINT)

 

ํ…Œ์ด๋ธ”์„ ์ƒˆ๋กœ ํ•˜๋‚˜ ๋งŒ๋“ ๋‹ค.

 

 

EMP3ํ…Œ์ด๋ธ”์— DEPT ํ…Œ์ด๋ธ”์˜ deptno์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ œ์•ฝ ์กฐ๊ฑด์„ ํ˜•์„ฑํ•˜์˜€๋‹ค.

๋Œ“๊ธ€