MySQL 六 触发器、表与视图

触发器

什么是触发器?MySQL中都有哪些触发器?

触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。

在这里插入图片描述MySQL 数据库中有六种触发器:

  • Before Insert
  • After Insert
  • Before Update
  • After Update
  • Before Delete
  • After Delete

表与视图

说一说表与视图的区别?什么场景下使用视图?

视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。

区别:

  • 视图是已经编译好的sql语句。而表不是
  • 视图没有实际的物理记录。而表有。
  • 表是内容,视图是窗口
  • 表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能有创建的语句来修改
  • 表是内模式,视图是外模式
  • 视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
  • 表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。
  • 视图的建立和删除只影响视图本身,不影响对应的基本表。

联系:

  • 视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系。

使用场景:

  • 重用SQL语句;

  • 简化复杂的SQL操作。在编写查询后,可以方便的重用它而不必知道它的基本查询细节;

  • 使用表的组成部分而不是整个表;

  • 保护数据。可以给用户授予表的特定部分的访问权限而不是整个表的访问权限;

  • 更改数据格式和表示。视图可返回与底层表的表示和格式不同的数据。

如何创建视图?为什么要使用视图?

视图的使用:

  • 视图用CREATE VIEW语句来创建。
  • 使用SHOw CREATE VIEW viewname;来查看创建视图的语句。
  • 用DROP删除视图,其语法为DROP VIEW viewname;。
  • 更新视图时,可以先用DROP再用CREATE,也可以直接用CREATE
    OR REPLACE VIEW。如果要更新的视图不存在,则第2条更新语句会创建一个视图;如果要更新的视图存在,则第2条更新语句会替换原有视图。

为什么要使用视图:

见上面“视图的使用场景”和下面视图的“视图的优点”。

说一说视图的优缺点?

优点:

  • 查询简单化。视图能简化用户的操作
  • 数据安全性。视图使用户能以多种角度看待同一数据,能够对机密数据提供安全保护
  • 逻辑数据独立性。视图对重构数据库提供了一定程度的逻辑独立性

缺点:

  • 性能。数据库必须把视图的查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,数据库也把它变成一个复杂的结合体,需要花费一定的时间。

  • 修改限制。当用户试图修改视图的某些行时,数据库必须把它转化为对基本表的某些行的修改。事实上,当从视图中插入或者删除时,情况也是这样。对于简单视图来说,这是很方便的,但是,对于比较复杂的视图,可能是不可修改的

什么是游标?

游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果,每个游标区都有一个名字。用户可以通过游标逐一获取记录并赋给主变量,交由主语言进一步处理。

猜你喜欢

转载自blog.csdn.net/weixin_44533129/article/details/112968424