MySql

存储过程

存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。

使用

-- 创建存储过程
DELIMITER $ --声明存储过程的结束符
CREATE PROCEDURE stu_test() --存储过程名称(参数列表)
BEGIN    --开始
    -- 可以写多个sql语句          -- sql语句+流程控制    
END $    --结束 结束符

-- 执行存储过程
call stu_test()   --call 存储过程名称(参数)

参数:
IN:  表示输入参数,可以携带数据带存储过程中
OUT: 表示输出参数,可以从存储过程中返回结果 
INOUT: 表示输入输出参数,两者结合

参数案例

-- 存储过程
-- 1、需求:传入一个学生ID,查询该学生的信息
    -- 带有输入参数的存储过程
delimiter $
create PROCEDURE stu_findByid(in sid int)
begin
    select * from student where id=sid;
END $
-- 调用存储过程
call stu_findByid(1);

-- 2、带有输出参数的存储过程
delimiter $
create procedure stu_out(out str varchar(20))
begin
    -- 给参数赋值
    set str='这是一个输出参数';
end $
-- 删除存储过程
drop procedure stu_inout;
-- 调用存储过程
-- 1)定义了一个变量
-- 2)定义了一个会话变量接收存储过程输出的参数
call stu_out(@name);
select @name;
-- 3、输入输出参数的存储过程
delimiter $
create procedure stu_inout(inout n int)
begin
    select n;
    set n=500;
end $
set @n=10;
call stu_inout(@n);
select @n;

触发器

触发器是一种专用类型的存储过程,它被捆绑到SQL Server 的表格或者视图上

使用

delimiter $
create trigger `ffs`  -- 触发器名
after -- 设置什么时候执行
insert on -- 插入数据后执行
`focusroutes` -- 为哪个表添加触发器
for each row

begin 
  delete from focusroutes
end $

navicat中创建

在设计表结构中
在这里插入图片描述
点击sql预览
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值