数据库 索引和视图

张开发
2026/5/4 10:42:39 15 分钟阅读

分享文章

数据库 索引和视图
一、目的与要求掌握对象资源管理器建立索引和视图的方法掌握SQL命令定义索引和视图掌握视图的查改增删操作比较和表的异同。二、实验准备了解索引的作用了解视图的概念和作用了解表和视图的区别。三、实验内容(一)索引在studb数据库中分别用对象资源管理器操作步骤截图和SQL语言定义索引写SQL语句在对象资源管理器中在T表的tname列上中建立聚集且唯一索引ix_tname降序。查看聚集的效果。提示先要删除原先在tno上的聚集特性并自行录入几条教师数据用来查看是否浏览数据时是按教师姓名降序排列的。使用SQL语言定义SC表的(snocno)列上的普通复合索引ix_scsno列设为升序cno列设为降序。注意不定义为唯一索引和聚集索引。(二)视图在studentdb数据库中操作。在对象资源管理中建立视图v_s_c列出所有学生所选课程的成绩学号姓名班级名课程号课程名成绩。写SQL命令修改视图v_s_c中60~70分的那些同学的成绩提高5分。写SQL命令在视图v_s_c中新增一条记录’20240001’,’刘悦’,null,’2900002’,’人工智能’,85。提问是否能成功新增这条记录为什么失败原因是视图中的数据来源于多个表插入操作可能会违反基表之间的关联规则或者某些列的非空约束等。使用SQL语言建立视图v_cjtj列出每门课程的课程号最高成绩最低成绩平均成绩和总成绩按总成绩降序排列。写SQL命令删除视图v_cjtj中29000011这门课程的统计数据。提问是否能删除该门课程的统计数据为什么通常这种删除操作可能无法成功。因为视图是基于聚合查询创建的数据库系统很难确定如何将视图中的删除操作反映到基表。使用SQL语言建立视图v_fx列出所有法学专业同学的个人信息。写SQL命令删除视图v_fx中学号为2001060104同学的信息。使用SQL语言建立视图v_xf用于查询每个学生的学号姓名上课所获得的总学分提示成绩60该门课程才获得学分。写SQL命令查询视图v_xf中总学分大于8的学号姓名总学分。四、思考与练习视图能和表一样查改增删吗举例说明不能。视图和表在操作上有区别。在查询方面简单视图的查询和表类似都可以使用 SELECT 语句获取数据。但在修改方面对于复杂视图如上述的 v_cjtj 视图不能像表一样随意增删改。而对于简单视图如果满足一定条件可以进行类似表的修改操作。例如有一个基于单个表且只选择部分列的简单视图只要这些列没有特殊约束阻止修改就可以进行更新、插入和删除操作。但总体而言视图的修改操作受到更多限制因为视图是基于基表的虚拟表数据库需要保证对视图的操作不会破坏基表数据的完整性和一致性。表中的主键一定是聚集索引吗不是。主键用于唯一标识表中的行而聚集索引决定了表中数据的物理存储顺序。虽然在很多数据库系统中默认会在主键上创建聚集索引但这不是强制的。数据库管理员可以根据实际的查询需求和性能优化来决定是否将主键设置为聚集索引也可以在其他列上创建聚集索引。

更多文章