πŸ“š Database/Oracle

[Oracle] λ·°(View)λž€? (feat C.R.U.D)

Fomagran πŸ’» 2022. 3. 4. 04:50
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
λ°˜μ‘ν˜•