成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL Server視圖操作原理透析

數據庫 SQL Server
SQL Server 視圖可以被看作是一個返回虛擬表的查詢的保存。指導您創建SQL Server視圖并從視圖中SELECT。

為什么使用視圖

視圖是一個便利的方法,它只給用戶對一個表的部分訪問權限。視圖可以限制將返回的記錄以及可用的字段。所以授權用戶對這個視圖的訪問權限而不是這個表本身來限制他們的訪問權限。視圖還是一個用于隱藏復雜語句和只顯示給終端用戶一個簡單的單一表結果集的便利方法。

創建一個視圖

SQL Server視圖可以使用TSQL語句來創建或通過SQL Server Management Studio圖形化地創建。對于第一個例子,我們將使用Management Studio和Adventure Works數據庫(Adventure Works是Microsoft提供的一個免費測試數據庫)。要開始,啟動Management Studio,擴展開Databases,擴展開Adventure Works然后右鍵單擊Views,選擇New View。這將打開Add Table對話框。對于這個例子,我們將選擇Person.Contact表。點擊Add然后Close。這將出現如下所示的圖形設計器。

SQL Server視圖 
圖1

四個不同的面板組成了這個界面。上端的面板是Designer(設計器),在它之中可以選擇表和字段。第二個面板,Criteria(標準),可以用來過濾和排序。第三個面板,SQL,展示由我們的圖形化選擇所創建的TSQL語句。最后一個面板,Results(結果),將顯示這個語句返回的數據。

在第一個例子中,我們將創建一個所有聯系人中第一個名字含有Don的電話列表。在Designer面板中選擇First Name, Last Name和Phone Number字段。Criteria和SQL面板將根據所做選擇自動生成。在Criteria面板中,在First Name行中的過濾字段中輸入“=Don”。要執行和測試這個語句,點擊紅色注釋勾選圖標。這個語句將看起來如下面的圖片所示。

SQL Server視圖 
圖2

#p#

這個語句可以在上面三個面板中的任意一個中進行編輯。例如,在SQL面板中,改變WHERE語句為執行一個LIKE并重新執行。這將返回133行記錄

  1. SELECT TOP (100) PERCENT FirstName, LastName, Phone   
  2. FROM Person.Contact  
  3. WHERE (FirstName LIKE 'Do%')  

當這個語句完成時,點擊上面菜單條中的保存標簽,一個Chose Name for a View對話框將打開。輸入名稱TestView,然后點擊OK。刷新視圖列表,然后新的SQL Server視圖就出現了。右鍵單擊新的視圖將出現一個對話框,類似于一個表對話框,如下所示。

SQL Server視圖 
圖3

使用TSQL命令創建一個視圖是非常直接的。它的語法很簡單:

  1. CREATE VIEW view_name   
  2. AS 
  3. Select_statement  

所以第一個例子就是:

  1. CREATE VIEW TestView   
  2. AS 
  3. SELECT TOP (100) PERCENT FirstName, LastName, Phone  
  4. FROM Person.Contact  
  5. WHERE (FirstName LIKE 'Do%')  

在創建一個SQL Server視圖時,在SELECT中使用的大多數普通命令都可以使用,例如JOINS和Aliases。這意味著我們使用了一個非常麻煩的語句,將它保存為一個視圖,然后只使用它所返回的更簡單的表,從而隱藏原來語句的復雜性。在創建視圖時有一些命令不能使用。關鍵字INTO不能像任何對臨時表的參照一樣使用。此外,ORDER BY不能使用。(在從GUI創建視圖時,它將讓你指定一個ORDER BY,但是它不會被保存。)所有的Ordering都需要在視圖之外的SELECT語句中完成。

從視圖中SELECT

右鍵單擊新的視圖并選擇“SELECT top 1000 rows”。下面的語句將被創建,它的結果將被返回。

  1.  /****** Script for SelectTopNRows command from SSMS ******/   
  2. SELECT TOP 1000 [FirstName]  
  3. ,[LastName]  
  4. ,[Phone]  
  5. FROM [AdventureWorks].[dbo].[TestView] 

注意看下從一個視圖獲得選擇結果的語法和從一個表選擇項目的語句是多么一致。這是使用視圖的一個好處。所有的常用表命令例如GROUP BY和ORDER BY在從一個視圖進行選擇時都可用。例如,下一個語句是典型的GROUP和COUNT,不過是基于新創建的視圖而不是一個表。

SELECT FirstName, COUNT(FirstName) as NbrOfNames   
  1. FROM TestView  
  2. GROUP BY FirstName  
  3. ORDER BY FirstName 

SQL Server視圖
圖4

從視圖UPDATE就像我們可以更新一個表中的數據一樣,視圖也可以被更新。基于上一個例子,這個語句可以被修改為一個UPDATE,如下所示:

  1. UPDATE TestView   
  2. SET FirstName = 'Test' 
  3. WHERE FirstName = 'Douglas' AND LastName = 'Baldwin' 

只要原來的創建視圖的語句沒有使用分組命令例如GROUP BY或Distinct,那么這個視圖就是可更新的。此外,獲取的字段,例如那些使用函數AVG和SUM創建的字段是不能使用的。

要使用Management Studio從一個視圖進行更新,在Object Explorer中右鍵單擊這個視圖并選擇“Edit Top 200 Rows”。這將打開一個可編輯的網格,就像使用表時一樣。

SQL Server視圖 
圖5

總結

使用SQL Server的好處包括限制用戶訪問底層數據的權限,以及隱藏復雜語句以便可以使用簡單的結果集。創建SQL Server視圖的語法很簡單,而且幾乎所有的常用TSQL命令都可用。如果數據要通過一個視圖更新或刪除,那么在創建這個視圖時不能使用聚合和分組語句。

【編輯推薦】

  1. SQL Server 2008中的創建格式化日期(1)
  2. 在T-SQL中使用臨時表的注意事項
  3. T-SQL實用例句
  4. SQL Server 2005中的T-SQL
  5. SQL Server 2005:數據類型最大值
責任編輯:冰荷 來源: ctocio
相關推薦

2011-04-02 17:21:29

sql server視圖

2010-09-13 11:09:34

SQL SERVER分

2010-07-14 10:11:30

SQL Server系

2010-09-27 09:54:26

Sql Server視

2010-06-28 13:27:33

SQL Server視

2010-07-19 16:36:13

SQL Server視

2010-11-12 11:19:19

SQL Server視

2010-11-11 17:20:51

SQL Server創

2010-07-19 09:31:53

SQL Server系

2009-03-20 09:49:00

負載均衡CDN網站架構

2010-07-12 10:34:58

SQL Server視

2010-11-11 16:59:59

SQL Server視

2010-11-11 17:15:13

SQL Server視

2010-07-07 13:18:13

SQL Server視

2010-10-21 15:07:09

SQL Server系

2010-06-30 16:58:24

SQL Server分

2010-09-13 17:03:34

sql server觸

2010-03-19 17:18:07

Java Socket

2010-07-06 17:16:43

SQL Server視

2010-07-15 15:42:38

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色婷婷久久久亚洲一区二区三区 | 亚洲精品久久久久久国产精华液 | 中文字幕一区二区三区乱码图片 | 亚洲一级毛片 | 中文字幕成人av | 日本一区二区高清不卡 | 亚洲综合首页 | 欧美成ee人免费视频 | 在线免费小视频 | 天天插天天干 | 欧美成人一区二免费视频软件 | 一级片在线观看 | 日韩综合一区 | 国产精品一区二区三区99 | 国产精品日本一区二区在线播放 | 日本精品裸体写真集在线观看 | 中文字幕视频在线观看 | 啪一啪在线视频 | 中文精品久久 | 欧美日韩专区 | 国产良家自拍 | 日韩精品在线播放 | 国产精品欧美一区二区三区不卡 | 成人亚洲精品 | 日日操夜夜操天天操 | 日本高清视频在线播放 | 亚洲大片一区 | 国产一二区免费视频 | 国产精品成人一区二区三区夜夜夜 | 中文字幕在线视频精品 | av在线播放一区二区 | 日韩av电影在线观看 | 97免费视频在线观看 | 亚洲伊人精品酒店 | 日韩免费一二三区 | 国产欧美一区二区三区免费 | 激情六月天| 欧美精品一区二区三 | 中文字幕一区二区三区乱码在线 | 国产精品99久久久久久久vr | 日本一区二区三区免费观看 |