Mysql进阶知识-存储过程、触发器、视图

1、存储过程

  • 一条或多条Mysql语句的集合

语法:

创建:
          Create Procedure 存储过程名(参数类型 参数 数据类型)
          Begin
               Select语句
               INTO 参数名
          End;
          参数类型: In(要传入的参数)、Out(带出来的参数)、Inout(即传入也传出的参数) 
调用:
          Call 存储过程名(@参数名,@参数名,.....);
          Select @参数名;
删除
          Drop Procedure 存储过程名;或者 Drop Precedure 存储过程名 If Exists;

例子:重复复制表里的数据

DROP PROCEDURE IF EXISTS add_banker;
CREATE PROCEDURE add_banker(vi int)
BEGIN
WHILE(vi >= 0) do
INSERT into bank(id,name,money) SELECT id + (SELECT MAX(id) from bank) newid,CONCAT(name,"_",vi) newname,money from bank where id < 6;
SET vi = vi-1;
END WHILE;
END;
CALL add_banker(3);

2、触发器

  • 增删改的时候的自动处理。
创建:Create Trigger 触发器名 After/before  Insert On 表名 
          For Each Row (接select 语句 )
          或者 
          For Each Row 
          Begin insert into 。。。End;(删除时建立一个虚拟表显示保存删除的数据)
          (begin end 语句并不是必须的,只是有他可以写多条SQL语句)
删除:Drop Trigger 触发器名

3、视图

  • 视图的作用,即将一些SQL语句包装,并没有实际的表,只包含一个SQL查询。

语法:Create View As (select 语句);

注意:视图可以更新但是有条件,如果有分组、联结、子查询、并、聚集函数、DISTINCT、导出 就不能修改只能用于查询,一般视图也是用来查询不怎么修改。

posted @ 2023-03-06 11:21  吴承勇  阅读(41)  评论(0编辑  收藏  举报