实验五 视图
1 实验目的
(1) 掌握SQL视图语句的基本使用方法,如CREATE VIEW、DROP VIEW。 (2) 掌握视图更新、WITH CHECK OPTION等高级功能的使用。
2 实验内容
2.1 掌握SQL视图语句的基本使用方法
(1) 创建视图(省略视图列名)。
(2) 创建视图(不能省略列名的情况)。 (3) 删除视图(RESTRICT / CASCADE)。
2.2 掌握视图更新和WITH CHECK OPTION的高级使用方法
(1) 创建视图(WITH CHECK OPTION),并利用INSERT、DELETE和UPDATE语句加以验证。 (2) 创建一个行列子集可更新视图,并利用INSERT、DELETE和UPDATE语句加以验证。 (3) 创建一个不可能更新的视图,并利用更新语句验证该视图不可更新。
3 实验要求
(1) 深入复习教材第三章SQL有关视图语句。
(2) 根据书上的例子,针对TPCH数据库模式设计各种视图语句,每种类型视图语句至少要设计
一个,描述清楚视图要求,运行你所设计的视图语句,并截图相应的实验结果,每幅截图并要有较为详细的描述。也可以按照附1所列示例做实验。
(3) 实验步骤和实验总结中要详细描述实验过程中出现的问题、原因和解决方法。
(4) 思考题:KingbaseES把视图的定义存储在那个系统表中?如何查看某个视图的定义?
4 实验步骤
4.1 掌握SQL视图语句的基本使用方法
(1) 创建视图(省略视图列名)。
(2) 创建视图(不能省略列名的情况)。
(3) 删除视图(RESTRICT / CASCADE)。
4.2 掌握视图更新和WITH CHECK OPTION的高级使用方法
(4) 创建一个行列子集可更新视图,并利用INSERT、DELETE和UPDATE语句加以验证。
(5) 创建视图(WITH CHECK OPTION),并利用INSERT、DELETE和UPDATE语句加以验证。
(6) 创建一个不可能更新的视图,并利用更新语句验证该视图不可更新。
5 总结与体会
5.1 实验中出现的问题及其解决方案 5.2 总结 5.3 体会
附1: SQL视图语句
(1) 创建视图(省略视图列名)。
创建一个“海大汽配”供应商供应的零件视图V_DLMU_PartSupp1,要求列出供应零件的编
号、零件名称、可用数量、零售价格、供应价格和备注等信息。
(2) 创建视图(不能省略列名的情况)。
创建一个视图V_CustAvgOrder,按顾客统计平均每个订单的购买金额和零件种类数量,要求输出顾客编号,姓名,平均购买金额和平均购买零件种类数量。
(3) 删除视图(RESTRICT / CASCADE)。
创建顾客订购零件明细视图V_CustOrdDetails,要求列出顾客编号、姓名、购买零件数、金额;然后在该视图的基础上,实现(2)中的视图V_CustAvgOrder;
然后删除利用RESTRICT选项删除视图V_CustOrdDetails,观察现象,并解释原因。
利用CASCADE选项删除视图V_CustOrdDetails,观察现象,并检查V_CustAvgOrder是否存在?解释原因?
(4) 创建一个行列子集可更新视图,并利用INSERT、DELETE和UPDATE语句加以验证。
创建一个“海大汽配”供应商供应的零件视图V_DLMU_PartSupp2,要求列出供应零件的编
号、可用数量和供应价格等信息。
然后通过该视图分别增加、删除和修改一条“海大汽配”零件供应记录,验证该视图是否是可更新的?
(5) 创建视图(WITH CHECK OPTION),并利用INSERT、DELETE和UPDATE语句加以
验证。
利用WITH CHECK OPTION 选项,创建一个“海大汽配”供应商供应的零件视图V_DLMU_PartSupp3,要求列出供应零件的编号、可用数量和供应价格等信息。
然后通过该视图分别增加、删除和修改一条“海大汽配”零件供应记录,验证WITH CHECK OPTION是否起作用?并比较第(4)题与本题结果有何异同?
(6) 创建一个不可能更新的视图,并利用更新语句验证该视图不可更新。
第(1)题中创建的视图是可更新的吗?第(2)创建的视图是可更新的吗?分别通过SQL更新语句加以验证,并说明原因。