千鋒教育-做有情懷、有良心、有品質的職業(yè)教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 什么是視圖?

什么是視圖?

來源:千鋒教育
發(fā)布人:zyh
時間: 2023-06-12 16:12:00 1686557520

  全文大約【1297】字,不說廢話,只講可以讓你學到技術、明白原理的純干貨!本文帶有豐富案例及配圖視頻,讓你更好的理解和運用文中的技術概念,并可以給你帶來具有足夠啟迪的思考......

什么是視圖

  一. 視圖

  1.什么是視圖

  視圖,虛擬表,從一個表或多個表中查詢出來的表,作用和真實表一樣,包含一系列帶有行和列的數據。視圖中,用戶可以使用SELECT語句查詢數據,也可以使用INSERT,UPDATE,DELETE修改記錄,視圖可以使用戶操作方便,并保障數據庫系統(tǒng)安全。

  2.視圖特點

  優(yōu)點:

  ● 簡單化,數據所見即所得。

  ● 安全性,用戶只能查詢或修改他們所能見到得到的數據。

  ● 邏輯獨立性,可以屏蔽真實表結構變化帶來的影響。

  缺點:

  ● 性能相對較差,簡單的查詢也會變得稍顯復雜。

  ● 修改不方便,特變是復雜的聚合視圖基本無法修改。

  3.視圖的創(chuàng)建

  下面小編給各位小伙伴介紹視圖的創(chuàng)建語法,as后面就是SELECT查詢的SQL語句。是不是很簡單呢。

  語法:CREATE VIEW 視圖名 AS 查詢數據源表語句;

  舉個栗子:創(chuàng)建視圖。 

#創(chuàng)建 v_student 的視圖,其視圖從 student 表中查詢到學生id和名字。
CREATE VIEW v_student AS select SId,Sname from student;

1684752031481.image

  使用視圖其實和使用表沒啥區(qū)別,正常查詢就可以了。如下:  

#查詢 v_student 視圖中所有學生。
SELECT * FROM v_student;

1684752049898.image

  4.視圖的修改

  語法一的意思是兼具視圖創(chuàng)建和修改的功能,視圖如果存在就修改,如果視圖不存在就創(chuàng)建視圖。而語法二只有修改功能。

  語法一:CREATE OR REPLACE VIEW 視圖名 AS 查詢語句;

  語法二:ALTER VIEW 視圖名 AS 查詢語句;

  舉個栗子:修改視圖。  

#方式 1:如果視圖存在則進行修改,反之,進行創(chuàng)建
CREATE OR REPLACE VIEW v_student AS SELECT SId,Sname,Sage from student;

#方式 2:直接對已存在的視圖進行修改
ALTER VIEW v_student AS SELECT SId,Sname,Sage from student;

1684752071582.image


  5. 視圖的刪除

  下面這個最簡單的語法就是刪除視圖的語法。小編友情提醒,使用起來要小心哦,刪了就沒了。

  DROP VIEW 視圖名

  舉個栗子:刪除視圖。 

#刪除v_student視圖。
DROP VIEW v_student;

  注意:刪除視圖不會影響原表。

  6. 視圖的注意事項

  注意:

  ● 視圖不會獨立存儲數據,原表發(fā)生改變,視圖也發(fā)生改變。沒有優(yōu)化任何查詢性能。

  ● 如果視圖包含以下結構中的一種,則視圖不可更新。

  ○ 聚合函數的結果。

  ○ DISTINCT 去重后的結果。

  ○ GROUP BY 分組后的結果。

  ○ HAVING 篩選過濾后的結果。

  ○ UNION、UNION ALL 聯合后的結果。

  二. 結語

  小編在這里對本文核心要點進行總結:

  1.視圖是數據庫中簡單實用的一種工具,可以將復雜的多表查詢封裝成視圖,在查詢的時候只需要簡單的一個查詢就能得到想要的結果。

  2.注意在創(chuàng)建視圖中包含聚合函數、DISTINCT 去重、GROUP BY 分組、HAVING 篩選、UNION ALL 查詢結果合并的時候,視圖不可以更新。

tags: 視圖
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業(yè)內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT