sqlserver——視圖


數據庫中的視圖是一個虛擬表。同真實的表一樣,視圖包含一系列帶有名稱的列和行數據,行和列數據用來自由定義視圖和查詢所引用的表,並且在引用視圖時動態產生。本篇將通過一些實例來介紹視圖的概念,視圖的作用,創建視圖,查看視圖,修改視圖,更新和刪除視圖等SQL Server的數據庫知識。

一、概述

視圖是從一個或者多個表導出的,它的行為與表非常相似,但視圖是一個虛擬表,在視圖中可以使用SELECT語句查詢數據,以及使用insert、update和delete語句修改記錄,對於視圖的操作最終轉化為對基本數據表的操作。視圖不僅可以方便操作,而且可以保障數據庫系統的安全性。

 視圖一經定義便存儲在數據庫中,與其相對應的數據並沒有像表數據那樣在數據庫中在存儲一份,通過視圖看到的數據只是存放在基本表中的數據。可以對其進行增刪該查,通過視圖對數據修改,基本表數據也對應變化,反之亦然。

二、分類

  :標准視圖:標准視圖組合了一個或多個表中的數據,可以獲得使用視圖中的大多數好處,包括重點將放在特定的數據上及簡化數據操作。

  索引視圖:索引視圖是被具體化了的視圖,即它已經經過計算並存儲。可以為視圖創建索引,對視圖創建一個唯一的聚集索引。索引視圖可以顯著提高某些類型查詢的性能,索引視圖尤其適於聚合許多行的查詢,但它們不太適於經常更新的基本數據集。

  分區視圖:

分區視圖在一台多多台服務器間水平連接一組成員表的分區數據,這樣,數據看上去如同來自一個表。連接本地同一個SQL Server實例中的成員表的視圖是一個本地區分視圖。

 

三、優點和作用

3.1.簡單化

 看到的就是需要的,視圖不僅可以簡化用戶對數據的理解,也可以簡化對它們的操作,那些經常使用的查詢可以被定義為視圖,從而使得用戶不必為以后的每次操作指定全部的條件。

3.2.安全性

 視圖可以作為一種安全機制。通過視圖用戶只能查看和修改他們所能看到的數據。其它或表既不可見也不可以訪問。如果某一用戶想要訪問視圖的,必須授予其訪問權限。視圖所引用表的訪問權限與視圖權限的設置互不影響。

3.3.邏輯數據獨立性

 視圖可以幫助用戶屏蔽真實表結構變化帶來的影響。

四、

視圖語法結構

--語法
CREATE VIEW view_name
 AS
    SELECT column_name(s) FROM table_name
WHERE condition

測試數據准備

use sample_db;
create table studentTable(
    id int identity(1,1)primary key,
    name varchar(20),
    gender char(2),
    age int,
)
insert into studentTable (name,gender,age)
values
    ('劉備','',28),
    ('張飛','',24),
    ('關羽','',26); 

創建視圖

--創建視圖
if (exists (select * from sys.objects where name = 'student_view'))
    drop view student_view
go
--student_view()不實用參數,默認為基礎表中的列名稱
create view student_view 
as
select name,age from studentTable where age>24;
--執行視圖
select * from student_view;

修改視圖

alter view view_name
as select ......
where ......-

 

查看視圖的信息

  • 使用sp_help存儲過程查看視圖的定義信息
  • 使用sp_helptext系統存儲過程使用來顯示規則,默認值,未加密的存儲過程,用戶定義函數,觸發器或視圖的文本,語法
exec  sp_help 'student_view';
exec sp_helptext 'student_view';

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM