1、視圖的作用
視圖的作用:
第一點:使用視圖,可以定制用戶數據,聚焦特定的數據。
解釋:
在實際過程中,公司有不同角色的工作人員,我們以銷售公司為例的話,
采購人員,可以需要一些與其有關的數據,而與他無關的數據,對他沒
有任何意義,我們可以根據這一實際情況,專門為采購人員創建一個視
圖,以后他在查詢數據時,只需select * from view_caigou 就 可以啦。 第二點:使用視圖,可以簡化數據操作。 解釋:我們在使用查詢時,在很多時候我們要使用聚合函數,同時還要 顯示其它字段的信息,可能還會需要關聯到其它表,這時寫的語句可能 會很長,如果這個動作頻繁發生的話,我們可以創建視圖,這以后,我 們只需要select * from view1就可以啦~,是不是很方便呀~ 第三點:使用視圖,基表中的數據就有了一定的安全性 解釋: 因為視圖是虛擬的,物理上是不存在的,只是存儲了數據的集合,我們可以 將基表中重要的字段信息,可以不通過視圖給用戶,視圖是動態的數據的集 合,數據是隨着基表的更新而更新。同時,用戶對視圖,不可以隨意的更改 和刪除,可以保證數據的安全性。 第四點:可以合並分離的數據,創建分區視圖(//目前我沒用到) 解釋: 隨着社會的發展,公司的業務量的不斷的擴大,一個大公司,下屬都設有很 多的分公司,為了管理方便,我們需要統一表的結構,定期查看各公司業務 情況,而分別看各個公司的數據很不方便,沒有很好的可比性,如果將這些 數據合並為一個表格里,就方便多啦,這時我們就可以使用union關鍵字, 將各分公司的數據合並為一個視圖。
2、Sql server中創建視圖和創建表是一樣的
2.1)創建表是這樣的
--------創建表------- --判斷是否存在-- if exists (select * from sysobjects where name = 'Tab_EdsProd') drop table Tab_EdsProd go --創建表 create table Tab_EdsProd ( Mid int identity(1,1) primary key, Code varchar(10) null, Name varchar(20) null ) --添加數據-- insert into Tab_EdsProd(Code,Name) values('001','張三'); insert into Tab_EdsProd(Code,Name) values('002','李四') --查詢數據-- select * from Tab_EdsProd
2.3)創建視圖是這樣的
--------創建視圖------- --判斷是否存在-- if exists (select * from sysobjects where name = 'View_EdsProd') drop view View_EdsProd go --創建視圖 create view View_EdsProd as select * from Tab_EdsProd where Mid>1 go --使用視圖-- select *from View_EdsProd
創建表結果如下
創建視圖結果如下
如何創建的視圖不允許更改,可以加上 with encryption
--------創建加密視圖------- --判斷是否存在-- if exists (select * from sysobjects where name = 'View_Jm_EdsProd') drop view View_Jm_EdsProd go --創建視圖 create view View_Jm_EdsProd with encryption as select * from Tab_EdsProd where Mid>1 go --使用視圖-- select *from View_Jm_EdsProd
加上with encryption 不可修改視圖
視圖定義來源於
http://blog.csdn.net/u014242422/article/details/53266859
平時多記記,到用時才能看看,記錄你的進步,分享你的成果