1. 程式人生 > 資料庫 >Sql Server 檢視資料的增刪改查教程

Sql Server 檢視資料的增刪改查教程

一、檢視的基本概念

檢視是用於查詢的另外一種方式。 與實際的表不同,它是一個虛表;因此資料庫中只存在檢視的定義,而不存在檢視中相對應的資料,資料仍然存放在原來的基本表中。檢視是一種邏輯物件。

二、 檢視能做什麼

匯出資料; 在匯出資料時,常常需要多個表聯合查詢,這個時候就可以使用檢視;轉換欄位,如把status(0/1 Int型別)欄位轉換成啟用/停用(文字) ,然後用檢視儲存定義。

資料安全,可以給檢視加密。

三、檢視操作

3.1 查詢資料

(一)準備素材:

使用兩張表,其中一張是家電錶,另外一張字典表(只需要知道這兩張表有一個連線欄位brandID-RowID:注意兩個表沒有強制使用外來鍵約束),準備好素材

SELECT TOP 1000 [appliancesName],[appliancesType],[code],[**brandId**],[standard],[appliancesStatus],[appliancesIsNew],[appliancesIsKey],[appliancesRemark],[appliancesId]
 FROM sfa_t_appliances

另外一張表字典表

 SELECT TOP 1000 [**RowID**],[PRowID],[DicKey],[DicVal],[Status]
 FROM sfa_t_TSysDictionary

說明:sfa_t_appliances 表中的欄位brandId 與 sfa_t_TSysDictionary表中的rowid做關聯。

(二)建立檢視:

create view appliances_view(id,name,brandName)
as 
select s.appliancesId,s.appliancesName,d.DicVal
from sfa_t_appliances s,sfa_t_TSysDictionary d
where s.brandId = d.RowID

Sql Server 檢視資料的增刪改查教程

(三)查詢:

查詢資料,可以將檢視看做一張實實在在的資料表,能夠執行各種查詢操作。

如下圖所示,執行一個查詢操作:

Sql Server 檢視資料的增刪改查教程

(四)備註

有些書上說:可以對任何查詢結果進行排序,但是隻有當檢視包括Top子句時才能排序檢視。這樣看來書上確實是有問題的。動手實踐出真知

3.2 插入資料

實驗一

往檢視中插入一條資料:

Sql Server 檢視資料的增刪改查教程

解釋:

往檢視中插入資料時,能夠往sfa_t_appliances 中插入資料。但是檢視為什麼讀取不到呢?

create view appliances_view(id,sfa_t_TSysDictionary d
where s.brandId = d.RowID

注意檢視的建立語法:是通過關聯關係獲取到的資料。注意觀看檢視的三個欄位的來源。自然,在appliancesID為112233的記錄中沒有brandID,所以自然不能讀取到資料。

實驗二

Sql Server 檢視資料的增刪改查教程

說明: 往只含一個基本欄位中插入資料是完全沒有問題的。上圖也插入成功了。

實驗三

將多個基表的欄位都插入試試:

insert into appliances_view(id,brandName) values(112234,'檢視','冰箱')

Sql Server 檢視資料的增刪改查教程

小節:

使用INSERT語句進行插入操作的檢視必須能夠在基表(組成檢視查詢的表)中插入資料,否則會操作失敗。

如果檢視上沒有包括基表中所有屬性為not null的行,那麼插入操作會由於哪些列的NULL值而失敗。

補充

通過檢視可以向資料庫表中插入資料,修改資料和刪除表中資料。如果檢視的SELECT語句中包含了DISTINCT、表示式(如計算列和函式),或FROM子句中引用多個表,或者引用不可更新的檢視,或有Group by 或者having子句,那麼都不能通過檢視操作資料。

Sql Server 檢視資料的增刪改查教程

3.3 修改資料

Sql Server 檢視資料的增刪改查教程

解釋

能夠對資料進行修改,但是隻能修改一張表中的資料。

檢視下圖,修改基於兩個表的欄位:

Sql Server 檢視資料的增刪改查教程

失敗了,說明只能修改一張表中的欄位。

3.4 刪除資料

Sql Server 檢視資料的增刪改查教程

小結:

如果一個檢視連結了兩個以上的基表,則不允許進行資料刪除操作。如果檢視中的列是常數或者幾個字串列值得和,那麼儘管插入和更新操作時不允許的,但是卻可以進行刪除操作。

實驗:

(一) 建立基於一個表的檢視:

Sql Server 檢視資料的增刪改查教程

(二)執行刪除操作結果:

Sql Server 檢視資料的增刪改查教程

(三)結果說明:

基於一個表的檢視是能夠執行刪除操作的。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援我們。如有錯誤或未考慮完全的地方,望不吝賜教。