索引 视图 事务 游标 锁 详细介绍(2)
时间:2025-04-04
时间:2025-04-04
索引 视图 事务 游标 锁 详细介绍
(8)只要修改了数据,如添加新行、更新现有行或删除行, SQL都会自动更新索引。
(9)但是为表创建过多的索引会降低更新、删除以及插入的性能,因为SQL还必须更新与该表关联的索引。
2、视图 从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据。从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表。从数据库系统内部来看,视图是由一张或多张表中的数据组成的,从数据库系统外部来看,视图就如同一张表一样,对表能够进行的一般操作都可以应用于视图,例如查询,插入,修改,删除操作等。 视图是一个虚拟表,其内容由查询定义。
概述:
视图以经过定制的方式显示来自一个或多个表的数据
视图是一种数据库对象,用户可以象查询普通表一样查询视图。
视图内其实没有存储任何数据,它只是对表的一个查询。
视图的定义保存在数据字典内。创建视图所基于的表为“基表”。
视图一经定义以后,就可以像表一样被查询、修改、删除和更新
优点、作用:
简化数据查询语句,减少带宽流量、优化后还可提高执行效率
通过重命名列,从另一个角度提供数据,使用户能从多角度看到同一数据
提高了数据的安全性,对不同的用户定义不同的视图,使用户只能看到与自己相关的数据。 提供了一定程度的逻辑独立性
提供了另外一种级别的表安全性
隐藏的数据的复杂性
缺点:
某些视图是不能更新数据的,union、group by、avg、sum、max、distinct等及连接表的视图。
视图定义服从下述限制:
SELECT语句不能包含FROM子句中的子查询。
SELECT语句不能引用系统或用户变量。
SELECT语句不能引用预处理语句参数。
在存储子程序内,定义不能引用子程序参数或局部变量。
在定义中引用的表或视图必须存在。但是,创建了视图后,能够舍弃定义引用的表或视图。要想检查视图定义是否存在这类问题,可使用CHECK TABLE语句。
在定义中不能引用TEMPORARY表,不能创建TEMPORARY视图。
在视图定义中命名的表必须已存在。
2