MySQL数据库视图/存储过程/触发器

目录

1. 视图

2.存储过程

        2.1 语句

         2.2 变量

 2.3 存储过程的各种语句

        2.3.1 if条件判断

                2.3.2 参数

                 2.3.3 case语句

                 2.3.4 while循环语句

                 2..3.5 repeat循环

                 2..3.6  loop 循环语句

                 2.3.7 cursor 游标

                2.3.8 handler 条件处理程序

3. 存储函数

 4. 触发器

        4.1触发器类型

        4.2 语法


 

1. 视图

        简介:视图是一种虚拟存在的表,视图中的数据并不实际存在,行和列的数据来自定义定义视图时查询的表,是在使用视图时动态生成的。也就是说视图只保存sql语句的逻辑,不保存数据。

  • 创建视图的语句
CREATE [OR REPLACE] VIEW 视图名称 AS SELECT 语句  [WITH CASCADED/LOCAL  CHECK  OPTION]
  • 查看视图的语句
方式一SHOW CREATE VIEW 视图名称
方式二SELECT 视图名称
  • 修改视图语句
方式一SELECT OR REPLACE VIEW 视图名称 AS SELECT 语句 [WITH CASCADED/LOCAL  CHECK  OPTION]
方式二ALTER VIEW 视图名称 SELECT 语句  [WITH CASCADED/LOCAL  CHECK  OPTION]
  • 删除语句
DROP VIEW 视图名称

        具体代码

         视图的检查选项

1)cascaded:该选项会在插入数据时检查是否符合条件,符合就插入,否则失败

 2)local:该选项会在插入数据时检查是否符合条件,符合就插入,否则失败

        视图的更新

视图可更新,视图中的行于基础表中的行必须一一对应,

如果有以下任一选项视图不可更新:

        1)聚合函数或窗口函数

        2)DISTINCT

        3)GROUP BY

        4)HAVING

        5)UNION或者UNION ALL

                视图的作用

        1)简单:可以化简用户对数据的理解

        2)安全:可以指定用户可以看到的行和列

        3)数据独立:可屏蔽真实表带来的影响

2.存储过程

        2.1 语句

        创建存储过程

CREATE PROCEDURE 存储过程名称(参数列表)

BEGIN

        sql语句

END;

        调用存储过程

CALL  存储过程名称

        查看存储过程

查询指定数据库的存储过程及状态信息SELECT * FROM IMFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_CHEMA = '数据库名称'
查看指定存储过程的信息SHOW PROCEDURE  存储过程名称

        删除存储过程

DROP PROCEDURE 存储过程

        具体语法

         注意:在命令行中要创建存储过程,需要把分割符 ; 该掉,使用 delimiter 这个命令

如图:

         2.2 变量

        查看系统变量

查看所有系统变量SELECT [SESSION|GLOBAL]  VARIABLES
通过模糊匹配查看系统变量SELECT [SESSION|GLOBAL] VARIABLES LIKE '......'
查看指定变量SELECT  @@[SESSION|GLOBAL] 系统变量名

        设置系统变量名

SET [SESSION|GLOBAL]  系统变量名 = 值
SET @@[SESSION|GLOBAL] 系统变量名 = 值

        用户自定义变量

                赋值

SET @变量名  = 值;
SET @变量名 = 值,@变量名 = 值;
SELECT @变量名 = 值;
SELECT 字段名 INTO @变量名 FROM 表名

                使用

SELECT @变量名

        具体语法

         注意:用户定义的变量无需对其进行声明和初始化,获取的值会是空值。

        声明变量declare

DECLARE 变量名 变量类型

 2.3 存储过程的各种语句

        2.3.1 if条件判断

IF    条件  THEN

......

ELSEIF  条件  THEM

......

ELESEIF 条件  THEM

.....

END IF;

        具体语法

                2.3.2 参数

in作为输入参数
out作为输出参数
inout即可作为输入参数,也可作为输出参数

        具体语法

 

                 2.3.3 case语句

        语法

CASE

        WHEN 条件 THEN

                .......

        WHEN 条件 THEN

                .......

        ELSE

                .....

END CASE;

        具体语法

                 2.3.4 while循环语句

        语法

WHILE 条件  DO

        语句

END WHILE;

当满足条件时,循环继续,当不满足条件时,循环退出

        具体语法

                 2..3.5 repeat循环

        语句

REPEAT

        语句

 UNTIL 条件

END REPEAT;

当满足条件时,退出循环,不满足条件时,继续循环

                具体语法

                 2..3.6  loop 循环语句

        语法

标签名:LOOP

           语句

END LOOP 标签名;

可以用来完成简单的死循环

LEAVE:与该选项搭配,可以退出循环

ITERATE:与该选项搭配,可以过这一个循环剩下的语句,进入到下一循环种

                  具体语法

                 2.3.7 cursor 游标

                语法

声明游标DECLARE  游标名称  CURSOR  FOR  SELECT 语句
打开游标OPEN  游标名称
获取游标值FETCH  游标名称 INTO 变量1,变量2....
关闭游标CLOSE  游标名称

                注意:声明变量必须在游标之前声明

                具体语句

 

                2.3.8 handler 条件处理程序

                参数定义

3. 存储函数

                语法及参数定义

                 具体语句

 4. 触发器

        简介:触发器是与表有关的数据库对象,指在insert/update/delete之前或之后,触发并执行触发器中定义的SQL语句集合。除法器的这种特性可以协助应用在数据库端确保数据的完整性,日志记录和数据校验等操作

        4.1触发器类型

类型NEW和OLD
INSERT型触发器NEW表示将要或者已经更新的操作
UPDATE型触发器OLD表示修改前的数据,NEW表示将要或者已经修改的数据
DELETE型触发器OLD表示将要或者已经删除的数据

        4.2 语法

  •   创建

CREATE TRIGGER 触发器名称

        AFTER INSERT/UPDATE/DELETE

        ON 表名

        FOR EACH ROW

BEGIN

        语句

END;

  • 查看
SHOW TRIGGERS
  • 删除
DROP TRIGGER 触发器名称

                具体语法

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱笑的蛐蛐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值