一文帶你學會數據庫中的「視圖」

學習過SQL相關知識小夥伴確定都知道存儲過程、觸發器、視圖等相關知識,不知道的聽也確定聽過,有的小夥伴可能會說,如今開發過程當中都不會去使用這些相關東西了,可是渣渣東在這說一句「有些東西你能夠不用,可是不能不會」;本文主要就是講解視圖是如何建立的以及如何使用,有須要的能夠學習學習哦! sql

在這裏插入圖片描述

什麼是視圖?

       視圖是指計算機數據庫中的視圖,是一個虛擬表,其內容由查詢定義。同真實的表同樣,視圖包含一系列帶有名稱的列和行數據。可是,視圖並不在數據庫中以存儲的數據值集形式存在。行和列數據來自由定義視圖的查詢所引用的表,而且在引用視圖時動態生成。數據庫

       從用戶角度來看,一個視圖是從一個特定的角度來查看數據庫中的數據。從數據庫系統內部來看,一個視圖是由SELECT語句組成的查詢定義的虛擬表。從數據庫系統內部來看,視圖是由一張或多張表中的數據組成的,從數據庫系統外部來看,視圖就如同一張表同樣。視圖能夠查詢,但不能夠新增、刪除、修改。        視圖是一個虛擬表,其內容由查詢定義。同真實的表同樣,視圖的做用相似於篩選。定義視圖的篩選能夠來自當前或其它數據庫的一個或多個表,或者其它視圖。分佈式查詢也可用於定義使用多個異類源數據的視圖。分佈式

視圖分類:

  • SELECT語句是基於單表創建的,且不包含任何函數運算、表達式或分組函數,叫作簡單視圖,此時視圖是基表的子集;
  • SELECT語句一樣是基於單表,但包含了單行函數、表達式、分組函數或GROUP BY子句,叫作複雜視圖;
  • SELECT語句是基於多個表的,叫作鏈接視圖。

語法:

建立視圖:函數

create view 視圖名 as
	sql(查詢sql)
;
複製代碼

刪除視圖:學習

drop view 視圖名;
複製代碼

示例:

簡單視圖:測試

create view user_view as
	select name,phone,address from user;
-- 測試
select * from user_view;
複製代碼

在這裏插入圖片描述
複雜視圖:

create view city_view as
	select p.province,c.city,a.area from provinces p
	join cities c on c.provinceid = p.provinceid
	join areas a on a.cityid = c.cityid;
-- 測試
select * from city_view;
複製代碼

在這裏插入圖片描述

END

文章到這裏就結束了,本人仍是以爲有些東西咱們雖然暫時用不到,可是咱們仍是要掌握這些相關知識,說不定哪天就遇到了呢! spa

在這裏插入圖片描述
最後,感慨一下,互聯網這個行業愈來愈嚴格了,對於身爲程序猿的咱們來講,應該時刻保持危機感,時刻保持學習,才能不被行業拋棄;學歷不行的小夥伴感受利用閒暇時間提高本身的學歷,雖然能力重要,可是咱們得擁有敲門磚才行。加油,致本身,致你們!
相關文章
相關標籤/搜索