๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“š Database/Oracle

[Oracle] ๋ทฐ(View)๋ž€? (feat C.R.U.D)

by Fomagran ๐Ÿ’ป 2022. 3. 4.
728x90
๋ฐ˜์‘ํ˜•

์•ˆ๋…•ํ•˜์„ธ์š” Foma๐Ÿ’ป ์ž…๋‹ˆ๋‹ค!

์˜ค๋Š˜์€ ํ•˜๋‚˜ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฝ๊ฒŒ ํ•˜๋Š” View์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~


๋ทฐ(View)๋ž€?

SQL์—์„œ ํ•˜๋‚˜ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์—์„œ ์›ํ•˜๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์„ ํƒํ•˜์—ฌ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.


๊ธฐ๋ณธ ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์ด ํ–‰๊ณผ ์—ด๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์ง€๋งŒ, ๋ฐ์ดํ„ฐ ์ž์ฒด๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ๊ฑด ์•„๋‹™๋‹ˆ๋‹ค.


๋ฐ์ดํ„ฐ์˜ ๊ฐ€๋…์„ฑ์„ ์œ„ํ•ด ๋ณดํ†ต select๋ฌธ์ฒ˜๋Ÿผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

ex) View:๊ฐ€๋ Œ๋ชจ์ŠคํŠธ <- ๊ฐ€๋ Œ์ด ๋ชจ์ŠคํŠธ์ธ ์†Œํ™˜์‚ฌ์˜ ์ด๋ฆ„์„ ์•Œ๊ณ ์‹ถ์„ ๋•Œ


์žฅ์ 

๊ฐ ์‚ฌ์šฉ์ž์— ๋”ฐ๋ผ ์•Œ๋งž๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์ž์ฃผ ์“ฐ์ด๋Š” ์ฟผ๋ฆฌ๋ฌธ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.


๋ทฐ์— ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์–ดํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ณด์•ˆ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋‹จ์ 

๋ทฐ์˜ ์ •์˜๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. (๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ์„ ๋• ์‚ญ์ œํ–ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ ์ƒ์„ฑํ•ด์•ผ ํ•จ)


INSERT๋ฌธ์€ ์›๋ณธ ํ…Œ์ด๋ธ”์—์„œ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋ฉฐ,PRIMARY KEY, NOT NULL ๋“ฑ์˜ ์ œ์•ฝ์‚ฌํ•ญ์ด ์œ„๋ฐฐ๋˜๋Š” ๊ฒฝ์šฐ ์‚ฝ์ž…์ด ๋ถˆ๊ฐ€ํ•˜๋Š” ๋“ฑ ๋งŽ์€ ์ œ์•ฝ์ด ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.


๋…์ž์ ์ธ ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.


์‚ฌ์šฉ ๋ฐฉ๋ฒ•

 

์œ„์—์„œ ๋“  ์˜ˆ์‹œ์ฒ˜๋Ÿผ ๊ฐ€๋ Œ์ด ๋ชจ์ŠคํŠธ์ธ ์†Œํ™˜์‚ฌ๋ฅผ View๋กœ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์•„๋ž˜์™€ ๊ฐ™์ด ์†Œํ™˜์‚ฌ์˜ ์ด๋ฆ„๊ณผ ํ‹ฐ์–ด ๊ทธ๋ฆฌ๊ณ  ๋ชจ์ŠคํŠธ ์ฑ”ํ”ผ์–ธ์ด ๋‹ด๊ธด ๋ฐ์ดํ„ฐ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 


์ƒ์„ฑ

 

๋ทฐ์˜ ์ด๋ฆ„์„ ์ •ํ•ด์ฃผ๊ณ  ํ•ด๋‹น๋˜๋Š” ์ฟผ๋ฆฌ๋ฌธ์„ as ๋’ค์— ์ž‘์„ฑํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

create or replace view ๋ทฐ์ด๋ฆ„ as ์ฟผ๋ฆฌ๋ฌธ;
create or replace view garen_most as select name from summoner_tb where most = 'Garen';

 

์ƒ์„ฑ์„ ํ•˜๊ฒŒ ๋˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด View์— ์ƒˆ๋กœ ๋งŒ๋“  GAREN_MOST๊ฐ€ ์ถ”๊ฐ€ ๋˜์–ด์žˆ๊ณ , ํ•„์š”ํ•œ ์ปฌ๋Ÿผ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 


์ˆ˜์ •

 

์ˆ˜์ •์€ ์ƒ์„ฑ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

 

๋งŒ์•ฝ View์— ํ•ด๋‹น๋˜๋Š” ์ด๋ฆ„์ด ์žˆ์œผ๋ฉด ์ˆ˜์ •์„, ์—†๋‹ค๋ฉด ์ƒ์„ฑ์„ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

create or replace view ๋ทฐ์ด๋ฆ„ as ์ฟผ๋ฆฌ๋ฌธ;
create or replace view garen_most as select name,tier from summoner_tb where most = 'Garen';

 

์ˆ˜์ •์„ ํ•˜๊ฒŒ ๋˜๋ฉด ์›๋ž˜ ์žˆ๋˜ ๋ทฐ๊ฐ€ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

 



์กฐํšŒ

์•„๋ž˜์™€ ๊ฐ™์ด ๋ทฐ์ด๋ฆ„์œผ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

select * from ๋ทฐ์ด๋ฆ„;
select * from garen_most;

 

์กฐํšŒ๋ฅผ ํ•ด๋ณด๋ฉด Garen์ด ๋ชจ์ŠคํŠธ์ธ ์†Œํ™˜์‚ฌ์˜ ์ด๋ฆ„๊ณผ ํ‹ฐ์–ด๊ฐ€ ์ถœ๋ ฅ๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 



๊ตฌ์กฐ ํ™•์ธ

 

desc๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ทฐ์˜ ๊ตฌ์กฐ๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

desc ๋ทฐ์ด๋ฆ„;
desc garen_most;

 

View์˜ ๊ตฌ์กฐ๊ฐ€ ์•„๋ž˜์™€ ๊ฐ™์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

 

 

์‚ญ์ œ

 

drop view๋กœ ๋ทฐ๋ฅผ ์‚ญ์ œํ•ด ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

drop view ๋ทฐ์ด๋ฆ„;
drop view garen_most;
728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€