Download - How To “View”
![Page 1: How To “View”](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813ac7550346895da2dd39/html5/thumbnails/1.jpg)
How To “View”BY OX
![Page 2: How To “View”](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813ac7550346895da2dd39/html5/thumbnails/2.jpg)
檢視表與資料表的差異性檢視表 (View) 的紀錄,是經由查詢 (query) 而來,
而檢視表的資料來源可以是單一資料表或是多資料表,甚至其他檢視表
但檢視表中的紀錄只存在資料表中
![Page 3: How To “View”](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813ac7550346895da2dd39/html5/thumbnails/3.jpg)
檢視表的優點增加可讀性
資料安全及保密性
降低查詢的複雜度
方便程式維護
![Page 4: How To “View”](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813ac7550346895da2dd39/html5/thumbnails/4.jpg)
CREATE VIEW (Basic)CREATE VIEW view_nameASSelect_statement
![Page 5: How To “View”](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813ac7550346895da2dd39/html5/thumbnails/5.jpg)
CREATE VIEW (Adv.)CREATE VIEW view_name [(column [,..n] ) ][WITH {Encryption | Schemabinding} [,…n]]ASSelect_statement[WITH CHECK OPTION]
![Page 6: How To “View”](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813ac7550346895da2dd39/html5/thumbnails/6.jpg)
CREATE VIEW (Adv.)CREATE VIEW 時 不可使用 INTO 、 ORDER
BY 、 COMPTE 或 COMPTE BY
若要使用上述子句 可在實際使用時再設定Ex: Select * from MyViewORDER BY myco12
![Page 7: How To “View”](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813ac7550346895da2dd39/html5/thumbnails/7.jpg)
建立檢視表 SELECT 下單日期 , 客戶名稱 , 地址FROM 訂單 , 客戶WHERE 訂單 . 客戶編號 = 客戶 . 客戶編號
----------------------------------------------------------------CREATE VIEW 下單記錄AS SELECT 下單日期 , 客戶名稱 , 地址FROM 訂單 , 客戶WHERE 訂單 . 客戶編號 = 客戶 . 客戶編號
![Page 8: How To “View”](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813ac7550346895da2dd39/html5/thumbnails/8.jpg)
指定檢視表的欄位別名CREATE VIEW 下單記錄 _VIEW_1AS SELECT 下單日期 , 客戶名稱 , 地址FROM 訂單 , 客戶WHERE 訂單 . 客戶編號 = 客戶 . 客戶編號GO
SELECT * FROM 下單記錄 _VIEW_1
![Page 9: How To “View”](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813ac7550346895da2dd39/html5/thumbnails/9.jpg)
指定檢視表的欄位別名CREATE VIEW 下單記錄 _VIEW_2 ( 日期 , 下單客戶 ,
客戶地址 )AS SELECT 下單日期 , 客戶名稱 , 地址FROM 訂單 , 客戶WHERE 訂單 . 客戶編號 = 客戶 . 客戶編號GO
SELECT * FROM 下單記錄 _VIEW_2
![Page 10: How To “View”](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813ac7550346895da2dd39/html5/thumbnails/10.jpg)
為 檢視表加密CREATE VIEW 客戶聯絡電話WITH ENCRYPTIONAS SELECT 客戶名稱 , 聯絡人 , 電話FROM 客戶========USE 練習 01SELECT * FROM sys.syscomments
![Page 11: How To “View”](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813ac7550346895da2dd39/html5/thumbnails/11.jpg)
結構描述繫結 (schema.object)限制此檢視表所用到的資料表或檢視表,都不允許用
ALTER 更改設計,或用 DROP 將之刪除
CREATE VIEW 下單記錄 _VIEWWITH SCHEMABINDINGAS SELECT 下單日期 , 客戶名稱 , 地址FROM dbo. 訂單 , dbo. 客戶WHERE 訂單 . 客戶編號 = 客戶 . 客戶編號
![Page 12: How To “View”](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813ac7550346895da2dd39/html5/thumbnails/12.jpg)
檢查檢視表的資料變動若在 CREATE VIEW 敘述最後面加上 WITH CHECK OPTION
CREATE VIEW CheckOptionAS SELECT * FROM 書籍WHERE 價格 > 400 AND 價格 < 600 WITH CHECK OPTIONGO
SELECT * FROM CheckOption
![Page 13: How To “View”](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813ac7550346895da2dd39/html5/thumbnails/13.jpg)
UPDATE CheckOptionSET 價格 = 350 WHERE 書籍編號 = 3
![Page 14: How To “View”](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813ac7550346895da2dd39/html5/thumbnails/14.jpg)
修改檢視表ALTER VIEW view_name [(column [,..n] ) ][WITH {Encryption | Schemabinding} [,…n]]ASSelect_statement[WITH CHECK OPTION]
![Page 15: How To “View”](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813ac7550346895da2dd39/html5/thumbnails/15.jpg)
原始加密CREATE VIEW 客戶聯絡電話WITH ENCRYPTIONAS SELECT 客戶名稱 , 聯絡人 , 電話FROM 客戶
![Page 16: How To “View”](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813ac7550346895da2dd39/html5/thumbnails/16.jpg)
修改並去除加密ALTER VIEW 客戶聯絡電話 ( 客戶 , 聯絡人姓名 ,
聯絡電話 )ASSELECT 客戶名稱 , 聯絡人 , 電話FROM 客戶
![Page 17: How To “View”](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813ac7550346895da2dd39/html5/thumbnails/17.jpg)
原始檢視表CREATE VIEW VIEW_CheckOptionAS SELECT * FROM 書籍WHERE 價格 > 400 AND 價格 < 600WITH CHECK OPTION
![Page 18: How To “View”](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813ac7550346895da2dd39/html5/thumbnails/18.jpg)
修正售價ALTER VIEW VIEW_CheckOption AS SELECT * FROM 書籍WHERE 價格 > 300WITH CHECK OPTION
![Page 19: How To “View”](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813ac7550346895da2dd39/html5/thumbnails/19.jpg)
尾牙名單 ~ 使用 UNION結合 員工與客戶資料表 建立 VIEW員工之欄位包含 姓名 & 地址客戶之欄位包含 聯絡人 & 地址
![Page 20: How To “View”](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813ac7550346895da2dd39/html5/thumbnails/20.jpg)
CREATE VIEW 尾牙參加人員名單ASSELECT 姓名 , 地址 FROM 員工UNIONSELECT 聯絡人 , 地址 FROM 客戶
![Page 21: How To “View”](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813ac7550346895da2dd39/html5/thumbnails/21.jpg)
編輯檢視表紀錄之前提若該欄位源自計算欄位或是匯總函數則不可在檢視表
中修改
若來源資料表不必 ( 也不可 ) 輸入的欄位,例如識別欄位或 TIMESTAMP 型別之欄位,在檢視表中也不可修改
檢視表中更動的內容,更動的內容最好不要影響多個資料表
![Page 22: How To “View”](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813ac7550346895da2dd39/html5/thumbnails/22.jpg)
刪除仿造資料表刪除之方式,將原本資料表名稱改成檢視
表名稱
DELETE 客戶聯絡電話WHERE 客戶 = ' 天天書局 '
![Page 23: How To “View”](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813ac7550346895da2dd39/html5/thumbnails/23.jpg)
新增INSERT 客戶聯絡電話 ( 客戶 , 聯絡人姓名 , 聯絡
電話 )VALUES ( ' 企鵝書局 ', ' 陳佑淵 ', '0272114517‘)
PS. 注意欄位數與欄位限制
![Page 24: How To “View”](https://reader035.vdocuments.mx/reader035/viewer/2022062314/56813ac7550346895da2dd39/html5/thumbnails/24.jpg)
刪除檢視表DROP VIEW [,…n]
DROP VIEW 客戶聯絡電話 , 下單記錄 _view_1