头歌 函数 答案

第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 中,可以通过以下步骤执行函数:

  1. 定义函数:使用 CREATE FUNCTION 命令定义函数。函数定义包括函数名称、函数参数、函数返回值及函数体等信息。
  2. 调用函数:使用 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那里。出题的那个你把你头伸过来,我给你看个好东西。

老实告诉我,你自己出的题你自己能过吗?

兄弟们,过不去就先别做了噢,他给的答案贴上去也过不去。我怀疑他自己写也不一定能过去,他还不维护好谁给他写这玩意啊。

各位都看到这了,不如点个赞再走呗

  • 35
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值