国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Sql Server - Sql Server 視圖數據的增刪改查教程

Sql Server 視圖數據的增刪改查教程

2021-02-21 16:56一碗面 Sql Server

這篇文章主要介紹了Sql Server 視圖數據的增刪改查教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

一、視圖的基本概念

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

二、 視圖能做什么

導出數據; 在導出數據時,常常需要多個表聯合查詢,這個時候就可以使用視圖;轉換字段,如把status(0/1 Int類型)字段轉換成啟用/停用(文字) ,然后用視圖保存定義。

數據安全,可以給視圖加密。

三、視圖操作

3.1 查詢數據

(一)準備素材:

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

?
1
2
3
4
5
6
7
8
9
10
11
SELECT TOP 1000 [appliancesName]
  ,[appliancesType]
  ,[code]
  ,[**brandId**]
  ,[standard]
  ,[appliancesStatus]
  ,[appliancesIsNew]
  ,[appliancesIsKey]
  ,[appliancesRemark]
  ,[appliancesId]
 FROM sfa_t_appliances

另外一張表字典表

?
1
2
3
4
5
6
SELECT TOP 1000 [**RowID**]
 ,[PRowID]
 ,[DicKey]
 ,[DicVal]
 ,[Status]
FROM sfa_t_TSysDictionary

說明:sfa_t_appliances 表中的字段brandId 與 sfa_t_TSysDictionary表中的rowid做關聯。

(二)創建視圖:

?
1
2
3
4
5
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 中插入數據。但是視圖為什么讀取不到呢?

?
1
2
3
4
5
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

注意視圖的創建語法:是通過關聯關系獲取到的數據。注意觀看視圖的三個字段的來源。自然,在appliancesID為112233的記錄中沒有brandID,所以自然不能讀取到數據。

實驗二

Sql Server 視圖數據的增刪改查教程

說明: 往只含一個基本字段中插入數據是完全沒有問題的。上圖也插入成功了。

實驗三

將多個基表的字段都插入試試:

?
1
insert into appliances_view(id,name,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 視圖數據的增刪改查教程

(三)結果說明:

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

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

原文鏈接:https://uzong.blog.csdn.net/article/details/77954476

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 中文字幕在线观看日本 | 黄网站色大毛片 | 欧美日韩精品一区二区三区蜜桃 | 四季久久免费一区二区三区四区 | 国产精品高清在线 | 亚洲精品影院 | 久久精品色欧美aⅴ一区二区 | 精品久久一区二区三区 | 亚洲免费av在线 | 国产午夜小视频 | 秋霞精品| 精品成人av一区二区三区 | 99精品热视频 | 黄视频免费观看 | 久久久久国产一区二区三区四区 | 亚洲狠狠爱 | 久久这里只有精品久久 | 免费日韩精品 | 精品久久国产老人久久综合 | 在线99热 | 日韩在线免费视频 | 国产精品久久久久久久久免费高清 | 日韩欧美在线观看视频 | 日本一区二区高清视频 | 爱爱网址 | 国产精品成人国产乱一区 | 日韩精品视频一区二区三区 | 午夜精品成人一区二区 | 久久久久一区二区 | 黄色免费在线观看 | 久久亚洲综合 | 一区二区三区四区精品 | 羞羞羞羞 | 激情一区二区 | 久草观看| 中文字幕免费中文 | www日韩 | 日韩精品一区二区三区四区五区 | 精品亚洲永久免费精品 | 国产欧美精品区一区二区三区 | 美女视频一区 |