第1关:函数的使用 一
任务描述
本关任务:创建函数。
相关知识
函数
在 MySQL 中,函数(Function)是一段由 SQL 语句和控制语句组成的代码块,可以根据需要将其编写、测试及封装到可重用代码中。函数可以用于对数据进行处理和计算,例如字符串拼接、日期计算等操作。
答案:
-- 1、使用studb数据库中的course表、grade表。创建一个存储函数num_func,统计指定课程名称的选课人数。执行存储函数num_func,查看“数据库原理及应用”选课人数。
use studb;
SET GLOBAL log_bin_trust_function_creators = 1;
DELIMITER @@
CREATE FUNCTION num_func(cname VARCHAR(50))
RETURNS INT
BEGIN
DECLARE num INT;
SELECT COUNT(*) INTO num FROM grade g, course c
WHERE g.课程编号=c.课程编号 and 课程名称=cname;
RETURN num;
END @@
DELIMITER ;
SELECT num_func('数据库原理及应用');
第2关:函数的使用 二
任务描述
本关任务:创建函数。
相关知识
函数的执行和删除
在 MySQL 中,可以通过以下步骤执行函数:
- 定义函数:使用
CREATE FUNCTION
命令定义函数。函数定义包括函数名称、函数参数、函数返回值及函数体等信息。 - 调用函数:使用
SELECT
或CALL
命令调用函数。根据函数定义需要设置参数的值,然后通过SELECT
或CALL
语句返回函数处理结果。
use studb;
-- 2、使用studb数据库中的course表、grade表。创建一个存储函数avg_func,通过游标统计指定课程的平均分。
DELIMITER @@
CREATE FUNCTION avg_func(cname VARCHAR(50))
RETURNS DECIMAL
DETERMINISTIC
READS SQL DATA
BEGIN
DECLARE v_avg DECIMAL;
DECLARE avg_cur CURSOR FOR SELECT avg(分数) FROM grade g, course c
WHERE g.课程编号 = c.课程编号 AND 课程名称 = cname;
OPEN avg_cur;
FETCH avg_cur INTO v_avg;
CLOSE avg_cur;
RETURN v_avg;
END @@
DELIMITER ;
SELECT avg_func('数据库原理及应用') 课程平均分;
DROP FUNCTION avg_func;
这几天新加的实训都是什么鬼啊,难度提升我就不说了,让人插入数据不给表结构我怎么知道是varchar还是int啊,还喜欢起中文字段名你是不是有病啊,插入一条数据和三十条除了浪费时间还有别的区别吗。
上面这些我都忍了,你给我报错是什么意思啊
line 2是我写的的吗?注释你也要报?
还有就是这个:
ERROR 1049 (42000) at line 5: Unknown database 'studb'
八个实训至少有超过十关是给我报过这个的,位置清一色是在use studb那里。出题的那个你把你头伸过来,我给你看个好东西。
老实告诉我,你自己出的题你自己能过吗?
兄弟们,过不去就先别做了噢,他给的答案贴上去也过不去。我怀疑他自己写也不一定能过去,他还不维护好谁给他写这玩意啊。
各位都看到这了,不如点个赞再走呗