MySQL练习(存储过程)

目录

一、存储过程基础

1.创建存储过程

2.调用存储过程

3.删除存储过程

二、变量

1.查看变量

2.自定义变量

三、游标

1.游标语法

概念:存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传 输,对于提高数据处理的效率是有好处的。存储过程思想上很简单,就是数据库 SQL 语言层面 的代码封装与重用。

特点:封装,复用, 可以把某一业务SQL封装在存储过程中,需要用到的时候直接调用即可;可以接收参数,也可以返回数据, 在存储过程中,可以传递参数,也可以接收返回值;减少网络交 互,提升效率,如果一次操作涉及到多条SQL,每执行一次都是一次网络传输。 如果将这些sql 操作封装在存储过程中,只需网络交互一次可能就可以了。

一、存储过程基础

1.创建存储过程

创建一个提取students表所有学生年龄和的存储过程s1

代码如下(示例):

create procedure s1()
begin
 select sum(age) from students;
end;

视图如下:

2.调用存储过程

调用存储过程s1

代码如下(示例):

call s1();

视图如下:

3.删除存储过程

删除存储过程s1

代码如下(示例):

drop procedure s1;

视图如下:

二、变量

1.查看变量

查看所有全局变量

代码如下(示例):

show global variables;

视图如下:

查看所有会话变量

代码如下(示例):

show session variables;

视图如下:

查看指定变量

查看以auto开头的session级别的系统变量

代码如下(示例):

show session VARIABLES like 'auto%';

视图如下:

2.自定义变量

创建一个变量year并为它赋值为22

代码如下(示例):

set @year:='22';

视图如下:

 查询students表年龄等于变量year的同学的数据

代码如下(示例):

select * from students where age=@year;

视图如下:

三、游标

概念:游标(CURSOR)是用来存储查询结果集的数据类型 , 在存储过程和函数中可以 使用游标对结果集进行循环的处理。

整体流程:开始-定义变量-创建游标-打开游标-执行循环-提取数据-更新-关闭游标-结束

1.游标语法

游标的使用包括游标的声明、OPEN、 FETCH 和 CLOSE,其语法分别如下:

 //创建游标
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp14`()
BEGIN
 DECLARE n_id int DEFAULT 0;
 DECLARE n_name VARCHAR(20) DEFAULT null;
 DECLARE n_pwd VARCHAR(20) DEFAULT null;
 //定义游标,数据存进去
 DECLARE cursor_a CURSOR FOR select * from user where id<=5;
 //需要一张表装数据
 drop table if EXISTS c_user;
 create table c_user(id int(10) PRIMARY KEY,
 nsername varchar(20) not null,
 pwd varchar(20) not null);
 //打开游标
 OPEN cursor_a;
 //循环取数据
 WHILE true DO
 //取每条数据
 FETCH cursor_a into n_id,n_name,n_pwd;
 //插入到表中
 insert into c_user VALUES(n_id,n_name,n_pwd);
 END WHILE;
 //关闭游标
 close cursor_a;
END

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值