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、导出 就不能修改只能用于查询,一般视图也是用来查询不怎么修改。