数据库中的视图与存储过程(简单介绍)
视图
视图(view)是数据库中的一种虚拟表,其内容由查询定义。与包含数据的实体表不同,视图值包含使用时动态检索数据的SQL查询。
特点:
1.视图的本质:
- 虚拟表:视图本质上时一个虚拟表,它本身时不存储数据的,它的数据本质上的通过SQL语句从原数据表内查询得到的。
- 查询封装:视图可以看作是对查询得到的数据进行了封装,但是它其中的内容时依赖于原表内的数据的。
2.数据来源:
- 基于查询语句:视图的数据来源其定义的SQL查询语句。当用户查询视图时,数据库会执行定义视图时的查询语句,然后返回结果集。
- 实时计算:视图内的数据需要和原数据表内的数据同步,因此每次访问视图时,都会重新执行查询语句,来确保视图数据的为最新的。
3.不存储数据:
- 无物理存储:视图其1本身时不占用额外的物理存储空间来存储数据的,只是对查询语句进行了封装,元数据依旧存在实体表内。
- 节省空间:由于视图不占用物理空间,就不会对数据库造成额外的负担
视图的使用场景:
1.简化复杂查询
2.提高数据安全性
3.数据汇总和报表等
基于对于视图的使用场景,因此在视图实际使用的过程中,基本不会通过视图进行增删改,更多的是只读,相应的创建视图语法;
CREATE VIEW 视图名称 AS SELECT 查询语句
主要的作用:
1.辅助查询,提示查询的性能
2.通过创建视图,屏蔽敏感数据的查询
3.主分同步,主表进行了数据的修改,视图数据会动态的变化
存储过程
存储过程是数据库中的一组预编译的SQL语句和控制流语句的集合,它存储在数据库服务器内,可以通过名称调用。存储过程可以包含复杂的业务逻辑、数据操作(如增删改查)、事务处理等。
阿里开发手册禁止使用,部分系统,如银行系统,一些流程固化的,可能会使用
存在的问题:
- 调试困难:存储过程的调试相对复杂,尤其是跨数据库系统时
- 移植性差:不同数据库系统的存储语法和特性不同,移植成本较高
- 依赖数据库:存储过程紧密依赖于特定的数据库系统,迁移数据库时可能需要重写
触发器
触发器是数据库中一种特殊的存储过程,它会在特定的事件发生时自动执行,这些事件通常是针对表或视图的操作
常见作用:
1.确保数据的完整性,一致性
2.记录对表数据的操作日志等

浙公网安备 33010602011771号