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、导出 就不能修改只能用于查询,一般视图也是用来查询不怎么修改。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~