微軟認證考試數(shù)據庫輔導:SQLServer-視圖

字號:

SQL-視圖
    第三章 關系數(shù)據庫標準語言SQL
     3.1 SQL概述
     3.2 數(shù)據定義
     3.3 查詢
     3.4 數(shù)據更新
     3.5 視圖
     3.6 數(shù)據控制
     3.7 嵌入式SQL
     3.8 小結
    SQL-視圖
    視圖的特點
    虛表,是從一個或幾個基本表(或視圖)導出的表
    只存放視圖的定義,不會出現(xiàn)數(shù)據冗余
    基表中的數(shù)據發(fā)生變化,從視圖中查詢出的數(shù)據也隨之改變
    基于視圖的操作
     查詢
     刪除
    SQL-視圖
     受限更新
     定義基于該視圖的新視圖
    視圖
    1. 定義視圖
    2. 查詢視圖
    3. 更新視圖
    4. 視圖的作用
    SQL-視圖
    建立視圖
     CREATE VIEW
     <視圖名> [(<列名> [,<列名>]…)]
     AS <子查詢>
     [WITH CHECK OPTION];
    說明:
    DBMS執(zhí)行CREATE VIEW語句時只是把視圖的定義存入數(shù)據字典,并不執(zhí)行其中的SELECT語句。
    在對視圖查詢時,按視圖的定義從基本表中將數(shù)據查出。
    SQL-視圖
    組成視圖的屬性列名:
    全部省略或全部指定
    省略: 由子查詢中SELECT目標列中的諸字段組成
    明確指定視圖的所有列名:
    (1) 某個目標列是集函數(shù)或列表達式
    (2) 目標列為 *
    (3) 多表連接時選出了幾個同名列作為視圖的字段
    (4) 需要在視圖中為某個列啟用新的更合適的名字
    SQL-視圖
     [例1] 建立信息系學生的視圖。
     CREATE VIEW IS_Student
     AS
     SELECT Sno,Sname,Sage
     FROM Student
     WHERE Sdept= ’IS’;
    從單個基本表導出
    只是去掉了基本表的某些行和某些列
    保留了碼
    SQL-視圖
    WITH CHECK OPTION
    透過視圖進行增刪改操作時,不得破壞視圖定義中的謂詞條件(即子查詢中的條件表達式)
    [例2] 建立信息系學生的視圖,并要求透過該視圖進行的更新操作只涉及信息系學生。
     CREATE VIEW IS_Student
     AS
     SELECT Sno,Sname,Sage
     FROM Student
     WHERE Sdept= ’IS’
     WITH CHECK OPTION;
    SQL-視圖
    對IS_Student視圖上的更新操作說明:
    修改操作:DBMS自動加上Sdept= ’IS’的條件
    刪除操作:DBMS自動加上Sdept= ’IS’的條件
    插入操作:DBMS自動檢查Sdept屬性值是否為’IS’
    如果不是,則拒絕該插入操作
    如果沒有提供Sdept屬性值,則自動定義Sdept為’IS’
    SQL-視圖
    基于多個表的視圖
    [例4] 建立信息系選修了1號課程的學生視圖。
     CREATE VIEW IS_S1(Sno,Sname,Grade)
     AS
     SELECT Student.Sno,Sname,Grade
     FROM Student,SC
     WHERE Sdept= ’IS’ AND
     Student.Sno=SC.Sno AND
     SC.Cno= ’1’;
    SQL-視圖
    基于視圖的視圖
     [例5] 建立信息系選修了1號課程且成績在90分以上的學生的視圖。
     CREATE VIEW IS_S2
     AS