[Oracle] λ·°(View)λ? (feat C.R.U.D)
μλ
νμΈμ 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;