【SQL Server】实验五 视图

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 实验步骤

4.1 掌握SQL视图语句的基本使用方法

  1. 创建视图(省略视图列名)。

  1. 创建视图(不能省略列名的情况)。

  1. 删除视图(RESTRICT / CASCADE)。

表已成功被删除

4.2 掌握视图更新和WITH CHECK OPTION的高级使用方法

  1. 创建一个行列子集可更新视图,并利用INSERT、DELETE和UPDATE语句加以验证。

再执行一次insert语句

  1. 创建视图(WITH CHECK OPTION),并利用INSERT、DELETE和UPDATE语句加以验证。

插入失败,验证成功

更新失败,验证成功

  1. 创建一个不可能更新的视图,并利用更新语句验证该视图不可更新。

第一题创建的视图:

视图中无法显示:

Part表可以显示:

对于没有with check option的视图,可以插入 不满足 创建视图时where所限制的条件    的数据,但是无法在视图中正常显示出来。

第二题创建的视图:

因为所创建的视图对其属性值进行了计算的其他形式上的改变,而对视图的更改最终表现为对表的更改,而表中不存在视图的某一属性,或属性的性质不相同,则无法更改,这是一种视图机制。

5 总结与体会

5.1 实验中出现的问题及其解决方案

表已成功被删除

5.2 总结

1.创建视图时有with check option:插入数据时,不符合条件,则会插入失败。

2.创建视图时无with check option:插入数据时,不符合条件,不会提示失败,且在原表中可以插入,但是无法在创建的视图中显示出来。

相关推荐

  1. SqlServer 查询表、视图、存储过程被哪些引用

    2024-03-16 05:12:09       13 阅读
  2. Debezium + kafka connect SASL实现sqlserver CDC

    2024-03-16 05:12:09       12 阅读
  3. 架构:Apache Kafka Connect实现sqlserver数据实时同步

    2024-03-16 05:12:09       23 阅读
  4. sqlserver 触发器

    2024-03-16 05:12:09       31 阅读
  5. sqlserver 事务

    2024-03-16 05:12:09       26 阅读
  6. sqlserver 函数

    2024-03-16 05:12:09       24 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-16 05:12:09       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-16 05:12:09       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-16 05:12:09       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-16 05:12:09       20 阅读

热门阅读

  1. android api 34 编译ffmpeg with libfdk-aac

    2024-03-16 05:12:09       20 阅读
  2. 基于arm的ubuntu上运行qgc

    2024-03-16 05:12:09       17 阅读
  3. 程序员面试—反问示例

    2024-03-16 05:12:09       18 阅读
  4. Android平台架构和Android Framework的区别

    2024-03-16 05:12:09       22 阅读
  5. 现代 Android 开发的第一步Kotlin

    2024-03-16 05:12:09       23 阅读
  6. MySQL 中常用的存储引擎

    2024-03-16 05:12:09       17 阅读
  7. HDC2010+STM32读取数据发送到onenet平台

    2024-03-16 05:12:09       21 阅读