偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

SQL Server視圖操作原理透析

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

為什么使用視圖

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

創(chuàng)建一個視圖

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

SQL Server視圖 
圖1

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

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

SQL Server視圖 
圖2

#p#

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

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

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

SQL Server視圖 
圖3

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

  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%')  

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

從視圖中SELECT

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

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

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

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

SQL Server視圖
圖4

從視圖UPDATE就像我們可以更新一個表中的數(shù)據(jù)一樣,視圖也可以被更新?;谏弦粋€例子,這個語句可以被修改為一個UPDATE,如下所示:

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

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

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

SQL Server視圖 
圖5

總結(jié)

使用SQL Server的好處包括限制用戶訪問底層數(shù)據(jù)的權(quán)限,以及隱藏復雜語句以便可以使用簡單的結(jié)果集。創(chuàng)建SQL Server視圖的語法很簡單,而且?guī)缀跛械某S肨SQL命令都可用。如果數(shù)據(jù)要通過一個視圖更新或刪除,那么在創(chuàng)建這個視圖時不能使用聚合和分組語句。

【編輯推薦】

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

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-06-28 13:27:33

SQL Server視

2010-09-27 09:54:26

Sql Server視

2010-11-12 11:19:19

SQL Server視

2010-07-19 16:36:13

SQL Server視

2010-11-11 17:20:51

SQL Server創(chuàng)

2010-07-19 09:31:53

SQL Server系

2010-07-07 13:18:13

SQL Server視

2010-11-11 17:15:13

SQL Server視

2010-11-11 16:59:59

SQL Server視

2010-10-21 15:07:09

SQL Server系

2010-07-12 10:34:58

SQL Server視

2009-03-20 09:49:00

負載均衡CDN網(wǎng)站架構(gòu)

2010-09-13 17:03:34

sql server觸

2010-06-30 16:58:24

SQL Server分

2010-07-16 10:48:24

MS SQL Serv

2010-07-06 17:16:43

SQL Server視

2010-07-15 15:42:38

點贊
收藏

51CTO技術(shù)棧公眾號