简单介绍 mysql的存储过程

什么是存储过程,如何创建一个存储过程

SQL 的存储过程是对 SQL 代码进行封装,可以反复利用。优点是清晰、安全,减少网络传输量。

  • 先创建一张表
CREATE TABLE `userinfo` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `u_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户名',
  `u_password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '密码',
  `skills` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '技能',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  • 使用存储过程插入数据
CREATE PROCEDURE 存储过程名称([参数列表])
BEGIN
  需要执行的语句
END
delimiter //     # 来临时定义新的结束符,mysql 默认是 (;),这里用(//) 替换
create procedure `add_data`(in name varchar(50), in skills varchar(50))  
BEGIN
    declare i int;   # 声明变量
    set i=1;           # 设置变量
    while i<=20000 do
       insert into `userinfo`(u_name,u_password,skills) values(name,'000000',skills);
        set i=i+1;
    end while;
END //   # 在整个存储过程结束后采用了(//)作为结束符号,告诉 SQL 可以执行了
delimiter ;  # 将结束符还原成默认的(;)
  • 调用
call add_data('张三','大威天龙');
  • 查询
delimiter //
create procedure `get_people`(in skill varchar(50),out total varchar(50))
begin
	select count(*) from userinfo where skills = skill into total;
end //
delimiter ;

call get_people('大威天龙', @total);
select @total;

  • 删除已经创建的存储过程
drop procedure 存储过程名称
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值