文章目錄
- 符号說明
- 定義視圖
- 删除視圖
- 查詢視圖
- 更新視圖
- 示例代碼
- 從一個或幾個表(或視圖)導出的表,是虛表
- 隻儲存視圖的定義,不存放視圖的資料
- 以多種角度觀察資料庫中的資料
符号說明
<…>表示必填
[…]表示選填,可寫可不寫,不寫時會有預設值
(…)是一種文法,需要寫出 ()
定義視圖
create view <視圖名> [(<視圖列的清單>)] as <查詢塊/子查詢> [with check option]
- 查詢塊中不允許出現排序order by
- 視圖列的清單(<列1>,<列2>,<列3>)不寫時,視圖包含查詢塊所有字段
- with check option表示對視圖操作滿足查詢塊條件(對視圖更新之後,仍然可以通過視圖查詢到該更新)
删除視圖
drop view <視圖名>
- 基本表的資料不受影響
- 參考該視圖而定義的視圖失效
查詢視圖
select * from <視圖名> where <條件>
和查詢表的操作一緻,隻是表名換為視圖名
參考查詢表
更新視圖
insert into <視圖名> values(<值1>,<值2>,<值3>)
update <視圖名> set <列名>=<值> where <條件>
delete from <視圖名> where <條件>
和更新表的操作一緻,隻是表名換為視圖名。并非所有的視圖都可以更新。
參考更新表
示例代碼
用到的3個表,Student、SC、Course
建立一個視圖
create view V_sc(姓名,課程,成績) as
select Sname,Cname,Grade from Student x,Course y,SC z where x.Sno=z.Sno and y.Cno=z.Cno
查詢視圖
select * from V_sc
更新視圖
可以看到SC表的内容已經更新
視圖V_sc的内容如也改變了
廣而告之
150講輕松搞定Python網絡爬蟲
Java小白修煉手冊