Mysql:存储过程练习

create table stu(

id int(3) primary key auto_increment,

name varchar(20) not null,

grade float,

gender char(2));

insert into stu(name,grade,gender) values('tom',60,'男'),('jack',70,'男'),('rose',90,'女'),('lucy',100,'女');

select * from stu;

#1.创建一个不带参数的存储过程p1并调用,功能:查询stu表中所有男生的信息。

drop procedure if exists p1;

delimiter //

create procedure p1()

begin

SELECT * FROM stu WHERE gender = '男';

end //

delimiter ;

call p1();

#2.创建一个带参数的存储过程p2并调用。功能:根据二个学生的学号从数据表中获取他们的grade数据并进行比较,并返回比较的结果(用二个输入参数,一个输出参数)。

drop procedure if exists p2;

delimiter //

create procedure p2(in id1 int(3),in id2 int(3),out num varchar(10))

begin

declare grade1 float;

declare grade2 float;

select grade into grade1 from stu where id=id1;

select grade into grade2 from stu where id=id2;

if grade1>grade2 then

set num='大于';

elseif grade1=grade2 then

set num='相等';

else

set num='小于';

end if;

end //

delimiter ;

call p2(1,2,@num);

select @num;

#3. 创建一个交换二个整数的存储过程p3并调用(用二个INOUT参数存放交换的二个数)。

drop procedure if exists p3;

delimiter //

create procedure p3(inout num1 int,inout num2 int)

begin

declare temp int;

set temp=num1;

set num1=num2;

set num2=temp;

end //

delimiter ;

set @num1=19;

set @num2=20;

call p3(@num1,@num2);

select @num1,@num2;

相关推荐
毛驴赶鹿5 小时前
【金仓数据库征文】KES V9性能调优实战记录:从慢SQL排查到全链路优化
数据库·sql
码农阿豪5 小时前
【金仓数据库征文】Mac开发环境|SpringBoot3 + MyBatisPlus对接KES V9 Docker实战全指南
数据库·macos·docker
杨云龙UP5 小时前
MySQL 数据库常用备份工具对比:mysqldump、mydumper 与 XtraBackup
linux·运维·服务器·数据库·mysql·dba·备份恢复
ZENERGY-众壹5 小时前
500个工商业电站压垮数据库?海量光伏时序数据存储的架构取舍
数据库·架构·influxdb·光伏·光伏运维
mubei-1236 小时前
SpringDAO的用法
java·开发语言·数据库
心灵Haven8 小时前
Centos7 + Mysql8.0
mysql·centos
星蓝_starblue9 小时前
零服务器、零数据库!开源growth-board,利用GitHub自动管理刷题/学习/求职全流程
服务器·数据库·程序人生·系统架构·node.js·github·改行学it
三84411 小时前
sqli-labs1-10通关笔记
数据库
BullSmall12 小时前
Another Redis Desktop Manager(ARDM)下载指南
数据库·redis·缓存
SelectDB13 小时前
Apache Doris 倒排索引工作原理:全文检索提速 59 倍,点查提速 14 倍
数据库