数据库中的视图与存储过程(简单介绍)

视图

视图(view)是数据库中的一种虚拟表,其内容由查询定义。与包含数据的实体表不同,视图值包含使用时动态检索数据的SQL查询。

特点:

1.视图的本质:

  • 虚拟表:视图本质上时一个虚拟表,它本身时不存储数据的,它的数据本质上的通过SQL语句从原数据表内查询得到的。
  • 查询封装:视图可以看作是对查询得到的数据进行了封装,但是它其中的内容时依赖于原表内的数据的。

2.数据来源:

  • 基于查询语句:视图的数据来源其定义的SQL查询语句。当用户查询视图时,数据库会执行定义视图时的查询语句,然后返回结果集。
  • 实时计算:视图内的数据需要和原数据表内的数据同步,因此每次访问视图时,都会重新执行查询语句,来确保视图数据的为最新的。

3.不存储数据:

  • 无物理存储:视图其1本身时不占用额外的物理存储空间来存储数据的,只是对查询语句进行了封装,元数据依旧存在实体表内。
  • 节省空间:由于视图不占用物理空间,就不会对数据库造成额外的负担

视图的使用场景:

1.简化复杂查询

2.提高数据安全性

3.数据汇总和报表等

基于对于视图的使用场景,因此在视图实际使用的过程中,基本不会通过视图进行增删改,更多的是只读,相应的创建视图语法;

CREATE VIEW 视图名称 AS SELECT 查询语句

主要的作用:

1.辅助查询,提示查询的性能

2.通过创建视图,屏蔽敏感数据的查询

3.主分同步,主表进行了数据的修改,视图数据会动态的变化


存储过程

存储过程是数据库中的一组预编译的SQL语句和控制流语句的集合,它存储在数据库服务器内,可以通过名称调用。存储过程可以包含复杂的业务逻辑、数据操作(如增删改查)、事务处理等。

阿里开发手册禁止使用,部分系统,如银行系统,一些流程固化的,可能会使用

存在的问题:

  • 调试困难:存储过程的调试相对复杂,尤其是跨数据库系统时
  • 移植性差:不同数据库系统的存储语法和特性不同,移植成本较高
  • 依赖数据库:存储过程紧密依赖于特定的数据库系统,迁移数据库时可能需要重写
触发器

触发器是数据库中一种特殊的存储过程,它会在特定的事件发生时自动执行,这些事件通常是针对表或视图的操作

常见作用:

1.确保数据的完整性,一致性

2.记录对表数据的操作日志等

posted @ 2025-03-10 11:26  zhangfff  阅读(224)  评论(0)    收藏  举报