1.创建查询图书编号丶书名丶图书类别的存储过程
--创建查询图书编号丶书名丶图书类别的存储过程 create procedure proc1() begin select book_id,book_name,category from bookinfo t1 join bookcategory t2 on t1.book_category_id=t2.category_id; end call proc1();
2.设计一个存储过程,删除一个读者,并输出剩余读者的个数
--设计一个存储过程,删除一个读者,并输出剩余读者的个数 create procedure proc_2(in cid char(18),out num int) begin delete from readerinfo where card_id=cid; select count(card_id) into num from readerinfo; end select * from readerinfo; call proc2('20000000',@num); select @num;
3.设计一个存储过程,实现交换两个数的处理
--设计一个存储过程,实现交换两个数的处理 create procedure proc3(inout num1 int,inout num2 int) begin declare t int default 0;--设置t变量,赋予初始值0 set t=num1; set num1=num2; set num2=t; end set @n1=3;@n2=5; call proc3(@n1,@n2) select @n1,@n2;
4.设计比较两个数的大小的存储过程
--设计比较两个数的大小的存储过程 delimiter // create procedure proc4(in num1 int,in num2 int,out result varchar(30)) BEGIN if num1=num2 then set result='num1等于num2'; elseif num1>num2 then set result='num1大于num2'; else set result='num1小于num2'; end if; end// delimiter; call(5,10,@result); select @result
5.例4使用case语句
--设计比较两个数的大小的存储过程 delimiter // create procedure proc4(in num1 int,in num2 int,out result varchar(30)) begin case when num1=num2 then set result='num1等于num2'; when num1>num2 then set result='num1大于num2'; else set result='num1小于num2'; end case; end// delimiter; call(5,10,@result); select @result
6.设计一个存储过程,向数据表插入100条数据的存储过程
SELECT floor(rand()*5);--随机数 create procedure proc6() begin declare n int default 7; while n<107 do insert into bookcategory values(n,concat('图书类型',n),floor(rand()*n)); set n=n+1; end while; end call proc6();
7.实例【IF ELSEIF】使用
--设计一个存储过程,实现【IF ELSEIF语句】 create procedure procName(IN _AreaNo VARCHAR ( 20 ), IN _Sex VARCHAR ( 20 )) begin IF(_Sex = '男') THEN ELSEIF(_Sex='女')THEN
ELSE
END IF; end