SQL教程:事务、索引与视图实践详解

需积分: 7 0 下载量 59 浏览量 更新于2024-08-15 收藏 1.51MB PPT 举报
在本SQL课程的第十章中,主要讲解了事务、索引和视图的相关概念和使用方法。首先,事务是数据库操作的原子性、一致性、隔离性和持久性的集合,用于确保数据的一致性,如银行转账的例子展示了事务在处理多步骤操作时的重要性,确保资金的转移不会出现部分完成的情况。事务的四个特性确保了操作的可靠性: 1. 原子性(Atomicity):事务要么全部完成,要么不执行,如果在过程中遇到错误,会回滚到事务开始前的状态。 2. 一致性(Consistency):事务前后,数据库总是保持一致状态,例如银行转账后,账户余额不会负数。 3. 隔离性(Isolation):并发执行的事务之间互不影响,避免脏读、不可重复读和幻读等问题。 4. 持久性(Durability):一旦事务提交,其结果将永久保存在数据库中,即使系统崩溃也不会丢失。 课程还介绍了如何在SQL中创建和管理索引,索引是一种数据库对象,用于加速数据查找,提高查询性能。通过创建索引,可以优化数据访问速度,尤其是在大规模数据表中进行搜索操作时。 此外,课程重点讲解了如何创建视图(View)。视图是从一个或多个表或视图中导出的虚拟表,其结构基于对这些表的查询定义。它提供了一种安全的方式来组织数据,允许用户以特定方式看到数据,而无需直接访问底层表。创建视图时,如所示的示例: ```sql CREATE VIEW view_stuInfo_stuMarks AS SELECT stuName AS 姓名, stuInfo.stuNo AS 学号, writtenExam AS 笔试成绩, labExam AS 机试成绩, (writtenExam + labExam) / 2 AS 平均分 FROM stuInfo LEFT JOIN stuMarks ON stuInfo.stuNo = stuMarks.stuNo WHERE writtenExam > 60 WITH CHECK OPTION; ``` 这个视图用于方便教员查看学生的成绩,只显示笔试和机试成绩超过60分的学生信息,并计算平均分。`WITH CHECK OPTION`特性确保在更新视图数据时,必须满足视图定义的条件。 使用视图时,虽然理论上可以像操作物理表一样进行CRUD(创建、读取、更新、删除)操作,但在实际开发中,由于视图的限制(如不能直接更新),通常仅用于查询目的,以保护数据的完整性和安全性。通过这个课程,学员将理解事务、索引和视图在数据库设计和管理中的核心作用,提升数据库操作的效率和安全性。