单表投影操作创建视图与SQL实例分析

需积分: 16 3 下载量 177 浏览量 更新于2024-09-09 收藏 125KB DOC 举报
在SQL Server中,视图是一种虚拟的数据表,它是基于一个或多个实际表(基础表)上的查询结果进行定义的。【标题】"视图的定义"主要讲解了如何通过投影操作来创建视图,这在数据库设计中是一项重要的概念。投影操作,即SELECT语句中选择的列集合,可以是所有列(*)或者特定列,从而只显示所需的数据。 第一个视图"stu1_view"的例子展示了如何使用CREATE VIEW语句,如`CREATE VIEW stu1_view AS SELECT * FROM 学生`,这个视图包含了学生表的所有列。然后,查询操作可以通过视图进行,如`SELECT * FROM stu1_view WHERE 性别 = '女'`,用于筛选女性学生。然而,在插入数据时,尝试将一个不存在于系科表中的系科号插入,导致违反了FOREIGN KEY约束,这是因为视图并不存储数据,它只是一个逻辑表示,不能独立存储外键值。 第二个视图"stu2_view"是基于选择操作定义的,仅包含性别为'女'的学生记录,`CREATE VIEW stu2_view AS SELECT * FROM 学生 WHERE 性别 = '女'`。同样,插入操作也因为外键约束失败,原因是视图没有完整的数据,无法满足引用完整性。 第三个视图"stu3_view"是选择和投影操作的结合,可能类似于`CREATE VIEW stu3_view AS SELECT 姓名, 民族 FROM 学生 WHERE 性别 = '女'`,只显示女性学生的姓名和民族。查询、插入、删除和更新操作在这个视图上执行,但仍然会遇到相同的外键约束问题。 视图的作用在于提供了一个简化或定制化的数据视图,用户可以根据需求查看或操作数据,而不必直接操作底层的基础表。然而,当涉及到修改操作时,如果视图依赖于其他表的约束,必须确保这些约束在视图的定义和操作中得到维护。此外,视图不能独立存储数据,其更新操作最终会影响到基础表,这是理解视图行为的关键点。