1 / 24

How To “View”

How To “View”. BY OX. 檢視表與資料表的差異性. 檢視表 ( View ) 的紀錄,是經由 查詢 (query) 而來,而檢視表的資料來源可以是單一資料表或是多資料表,甚至其他檢視表 但檢視表中的紀錄只存在資料表中. 檢視表的 優點. 增加可讀性 資料安全及保密 性 降低查詢的複雜度 方便程式維護. CREATE VIEW (Basic). CREATE VIEW view_name AS Select_statement. CREATE VIEW (Adv.).

sana
Download Presentation

How To “View”

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. How To “View” BY OX

  2. 檢視表與資料表的差異性 • 檢視表(View) 的紀錄,是經由查詢(query)而來,而檢視表的資料來源可以是單一資料表或是多資料表,甚至其他檢視表 • 但檢視表中的紀錄只存在資料表中

  3. 檢視表的優點 • 增加可讀性 • 資料安全及保密性 • 降低查詢的複雜度 • 方便程式維護

  4. CREATE VIEW (Basic) • CREATE VIEW view_name • AS • Select_statement

  5. CREATE VIEW (Adv.) • CREATE VIEW view_name [(column [,..n] ) ] • [WITH {Encryption | Schemabinding} [,…n]] • AS • Select_statement • [WITH CHECK OPTION]

  6. CREATE VIEW (Adv.) • CREATE VIEW 時 不可使用 INTO、ORDERBY、COMPTE 或 COMPTEBY • 若要使用上述子句 可在實際使用時再設定 • Ex: • Select * from MyView • ORDER BY myco12

  7. 建立檢視表 • SELECT 下單日期, 客戶名稱, 地址 • FROM 訂單, 客戶 • WHERE 訂單.客戶編號 = 客戶.客戶編號 • ---------------------------------------------------------------- • CREATE VIEW 下單記錄 • AS • SELECT 下單日期, 客戶名稱, 地址 • FROM 訂單, 客戶 • WHERE 訂單.客戶編號 = 客戶.客戶編號

  8. 指定檢視表的欄位別名 CREATE VIEW 下單記錄_VIEW_1 AS SELECT 下單日期, 客戶名稱, 地址 FROM 訂單, 客戶 WHERE 訂單.客戶編號 = 客戶.客戶編號 GO SELECT * FROM 下單記錄_VIEW_1

  9. 指定檢視表的欄位別名 CREATE VIEW 下單記錄_VIEW_2 (日期, 下單客戶, 客戶地址) AS SELECT 下單日期, 客戶名稱, 地址 FROM 訂單, 客戶 WHERE 訂單.客戶編號 = 客戶.客戶編號 GO SELECT * FROM 下單記錄_VIEW_2

  10. 為 檢視表加密 CREATE VIEW 客戶聯絡電話 WITH ENCRYPTION AS SELECT 客戶名稱, 聯絡人, 電話 FROM 客戶 ======== USE 練習01 SELECT * FROM sys.syscomments

  11. 結構描述繫結(schema.object) 限制此檢視表所用到的資料表或檢視表,都不允許用ALTER 更改設計,或用DROP將之刪除 CREATE VIEW 下單記錄_VIEW WITH SCHEMABINDING AS SELECT 下單日期, 客戶名稱, 地址 FROM dbo.訂單, dbo.客戶 WHERE 訂單.客戶編號 = 客戶.客戶編號

  12. 檢查檢視表的資料變動 若在 CREATE VIEW 敘述最後面加上WITH CHECK OPTION CREATE VIEW CheckOption AS SELECT * FROM 書籍 WHERE 價格 > 400 AND 價格 < 600 WITH CHECK OPTION GO SELECT * FROM CheckOption

  13. UPDATE CheckOption • SET 價格 = 350 • WHERE 書籍編號 = 3

  14. 修改檢視表 • ALTER VIEW view_name [(column [,..n] ) ] • [WITH {Encryption | Schemabinding} [,…n]] • AS • Select_statement • [WITH CHECK OPTION]

  15. 原始加密 • CREATE VIEW 客戶聯絡電話 • WITH ENCRYPTION • AS • SELECT 客戶名稱, 聯絡人, 電話 • FROM 客戶

  16. 修改並去除加密 • ALTER VIEW 客戶聯絡電話 (客戶, 聯絡人姓名, 聯絡電話) • AS • SELECT 客戶名稱, 聯絡人, 電話 • FROM 客戶

  17. 原始檢視表 • CREATE VIEW VIEW_CheckOption • AS • SELECT * • FROM 書籍 • WHERE 價格 > 400 AND 價格 < 600 • WITH CHECK OPTION

  18. 修正售價 • ALTER VIEW VIEW_CheckOption • AS • SELECT * • FROM 書籍 • WHERE 價格 > 300 • WITH CHECK OPTION

  19. 尾牙名單 ~ 使用UNION • 結合 員工與客戶資料表 建立VIEW • 員工之欄位包含 姓名 & 地址 • 客戶之欄位包含 聯絡人&地址

  20. CREATE VIEW 尾牙參加人員名單 • AS • SELECT 姓名, 地址 FROM 員工 • UNION • SELECT 聯絡人, 地址 FROM 客戶

  21. 編輯檢視表紀錄之前提 • 若該欄位源自計算欄位或是匯總函數則不可在檢視表中修改 • 若來源資料表不必(也不可)輸入的欄位,例如識別欄位或TIMESTAMP型別之欄位,在檢視表中也不可修改 • 檢視表中更動的內容,更動的內容最好不要影響多個資料表

  22. 刪除 • 仿造資料表刪除之方式,將原本資料表名稱改成檢視表名稱 • DELETE 客戶聯絡電話 • WHERE 客戶 = '天天書局'

  23. 新增 • INSERT 客戶聯絡電話 (客戶, 聯絡人姓名, 聯絡電話) • VALUES ( '企鵝書局', '陳佑淵', '0272114517‘) • PS. 注意欄位數與欄位限制

  24. 刪除檢視表 • DROP VIEW[,…n] • DROP VIEW 客戶聯絡電話, 下單記錄_view_1

More Related