delimiter // create function wzq_11() returns int deterministic begin declare rs int; select count(*) into rs from student; IF rs=0 THEN return '此表人数为空'; ELSE return rs; END IF; end // delimiter ; select wzq_11() as 学生人数 ;为这个代码每行都写上注释
时间: 2024-03-09 14:49:26 浏览: 68
```
delimiter // -- 修改语句结束符为 //
create function wzq_11() returns int deterministic
begin
declare rs int; -- 声明一个整型变量 rs
select count(*) into rs from student; -- 查询 student 表的总行数并存放在 rs 中
IF rs=0 THEN -- 如果 rs 等于 0
return '此表人数为空'; -- 返回字符串 '此表人数为空'
ELSE
return rs; -- 否则返回 rs 的值
END IF; -- 结束 IF-ELSE 语句
end // -- 结束函数定义
delimiter ; -- 恢复语句结束符为 ;
select wzq_11() as 学生人数 ; -- 调用 wzq_11 函数并将结果命名为 '学生人数' 并输出
```
相关问题
delimiter // create function count_fun() /*创建计数函数*/ returns char(10) deterministic begin declare sumc char(20); select count(*) into sumc from bookinfo where Price >= 40; /*返回图书价格不小于40的总数*/ return sumc; end // delimiter ; select count_fun(); delimiter // /*通过输入的图书编号来计算剩余书本的总价*/ create function total_fun(Bid char(10)) returns decimal(10,2) deterministic begin declare pri decimal(10,2); declare qy char(20); declare totals decimal(10,2); select price into pri from bookinfo where bookid = Bid; select quantity into qy from booktype where bookid = Bid; set totals = pri * qy; return totals; end // delimiter ; select total_fun('000001');
感谢您的提问!根据您提供的代码,我可以看出这是一段MySQL数据库的存储过程代码。
对于您的第一个问题,我理解您想了解的是这段代码的作用。这段代码创建了一个名为count_fun的函数,用于返回图书价格不小于40的总数。具体来说,代码先声明了一个变量sumc,然后使用select count(*) into sumc from bookinfo where Price >= 40;查询满足条件的记录数,并将结果存储到sumc中,最后将sumc作为函数的返回值。
对于您的第二个问题,代码创建了一个名为total_fun的函数,用于根据输入的图书编号计算剩余书本的总价。具体来说,代码先声明了三个变量:pri用于存储图书的单价,qy用于存储图书的数量,totals用于存储计算出的总价。然后,代码使用两个select语句查询图书的单价和数量,并将结果存储到pri和qy中。接着,代码计算出总价totals,并将其作为函数的返回值。
希望我的回答能够解决您的问题,如果您还有其他问题或疑惑,请随时提出。
简单说明以下数据库代码的需求分析create database 学生选课; use 学生选课; source C:\Users\Administrator\Desktop\xuexi.sql show tables; select * from student; set @c1=1,@c2=2,@c3=3; select @c1,@c2,@c3; delimiter // create function fn1() returns datetime reads sql data begin return now(); end// select fn1() as 当前时间// select now()// delimiter // create function fn2(a int,b int) returns int reads sql data begin return a+b; end// select fn2(321,123)// select fn2(9876,3546)// show create function fn1\G drop function fn1// create procedure proc1() begin declare a int default 100; set a=a+50; select a; end// call proc1()// delimiter // create procedure aaa() begin declare v varchar(5); set v='你好'; if v is null then select '是空值'; else select '不是空值'; end if; end// call aaa()// delimiter // create procedure bbb() begin declare v int; set v=100; case v when 1 then select'值是1'; when 2 then select'值是2'; else select '值不是1也不是2'; end case; end // call bbb()// delimiter // create procedure xunhuan() begin declare pl int default 0; my_loop:loop set pl=pl+1; select '你真好看'; if pl>10 then leave my_loop; end if; end loop my_loop; end// call xunhuan()// delimiter // create procedure p_student () begin select *from student; end// call p_student()// desc student// delimiter // create procedure p_student2(dept varchar(8)) begin select * from student where sdept=dept; end// call p_student2('云计算技术')// call p_student2('人工智能系')// call p_student2('大数据技术')// delimiter // create procedure p_student3(sex char(2), out renshu int) begin if sex='男' then select count(ssex) into renshu from student where ssex='男'; else select count(ssex) into renshu from student where ssex='女'; end if; end// call p_student3('男', @renshu)// select @renshu // call p_student3('女', @renshu)// select @renshu// show create procedure p student2\G drop procedure p student2// create database 网上书店数据库; use 网上书店数据库; source C:\Users\Administrator\Desktop\online bookstore.sql show tables; select * from user; delimiter // create procedure proc_1() begin select * from user; end// call proc_1()// delimiter // create procedure proc_2(昵称 varchar(20),out 积分 int) begin select score into 积分 from user where uname=昵称; end// call proc_2( 平平人生,@积分)// select @积分// call proc_2(感动心灵’,@积分)// select @积分//
这段代码是对学生选课数据库进行操作的需求分析,具体包括:
1. 创建数据库学生选课;
2. 使用学生选课数据库;
3. 导入一个名为xuexi.sql的SQL文件;
4. 显示数据库中的表;
5. 查询学生表中的所有信息;
6. 设置三个变量,并查询它们的值;
7. 创建一个返回当前时间的函数fn1();
8. 查询fn1()函数返回的当前时间;
9. 创建一个计算两个整数之和的函数fn2();
10. 分别查询fn2(321,123)和fn2(9876,3546)的返回值;
11. 显示fn1()函数的创建语句;
12. 删除函数fn1();
13. 创建一个名为proc1()的存储过程,该存储过程将一个整数变量加50后输出;
14. 调用proc1()存储过程;
15. 创建一个名为aaa()的存储过程,判断一个字符串变量是否为空值;
16. 调用aaa()存储过程;
17. 创建一个名为bbb()的存储过程,根据一个整数变量的值输出不同的内容;
18. 调用bbb()存储过程;
19. 创建一个名为xunhuan()的存储过程,使用循环输出一句话;
20. 调用xunhuan()存储过程;
21. 创建一个名为p_student()的存储过程,查询学生表中的所有信息;
22. 调用p_student()存储过程;
23. 显示学生表的结构;
24. 创建一个名为p_student2()的存储过程,根据系别查询学生表中的信息;
25. 分别调用p_student2()存储过程并输入不同的参数;
26. 显示p_student2()存储过程的创建语句;
27. 删除p_student2()存储过程;
28. 创建一个名为网上书店数据库的数据库;
29. 使用网上书店数据库;
30. 导入一个名为online bookstore.sql的SQL文件;
31. 显示数据库中的表;
32. 查询用户表中的所有信息;
33. 创建一个名为proc_1()的存储过程,查询用户表中的所有信息;
34. 调用proc_1()存储过程;
35. 创建一个名为proc_2()的存储过程,根据昵称查询用户表中的积分信息;
36. 分别调用proc_2()存储过程并输入不同的参数;
37. 显示用户表的结构。
阅读全文