【2023.10.25练习】数据库-函数1
任务描述
本关任务:编写函数fun_1完成学生选课操作。输入参数:学号、课程名,函数返回值:操作结果。
- 如果该生已有该门课程的选修记录,则函数返回-1;
- 如果该门课程无先修课,则将选课信息添加到选课表中,函数返回1;
- 如果该门课程有先修课,且该生已选修该先修课,则将选课信息添加到选课表中,函数返回1;
- 如果该门课程有先修课,但该生未选修该先修课,则返回0。
编程要求
在代码文件“step2/query1.sql”中实现函数fun_1; 在代码文件“step2/query2.sql”中使用select命令实现对函数的调用。
涉及的表和字段:
学生表(student) : 学号(sno) char(10) 姓名(sname) varchar(50) 性别(ssex) char(2) 出生日期(sbirth) date 所在系(sdept) varchar(20)
课程表(course) : 课程号(cno) char(4) 课程名(cname) varchar(50) 先行课(cpno) char(4) 学分(credit) decimal(3,1) 学期(semester) smallint
选修表(sc): 学号(sno) char(10) 课程号(cno) char(4) 成绩(grade) smallint
设计重点:
函数的声明,用create function来书写函数,记得附加return返回值类型。函数主体从begin到end。
在query2.sql中使用select fun_1来调用函数。
最终代码:
query1.sql
use DB1;delimiter $$
#请在此处添加函数实现代码
#请注意参数顺序需要与题目要求一致
########## Begin ##########create function fun_1(v_sno char(10), v_cname varchar(50))
returns int
beginDECLARE v_count int;DECLARE v_cpno CHAR(4);/*PART 1 判断该学生是否选择该课*/SELECT COUNT(*) INTO v_countFROM scWHERE sno = v_sno AND cno = (SELECT cno FROM course WHERE cname = v_cname);IF v_count > 0 thenRETURN -1;END IF;/*PART 2 检查该课的先修课*/SELECT cpno INTO v_cpnoFROM courseWHERE cname = v_cname;/*选出该课的先修课*/IF v_cpno IS NULL thenINSERT INTO sc(sno,cno)VALUES (v_sno,(SELECT cno FROM course WHERE cname = v_cname));RETURN 1;/*添加选课信息*/
END IF;/*PART 3 检查该生是否已选修过该课程的先修课*/
SELECT COUNT(*) INTO v_count
FROM sc
WHERE sno = v_sno AND cno = v_cpno;IF v_count > 0 thenINSERT INTO sc(sno,cno)VALUES (v_sno,(SELECT cno FROM course WHERE cname = v_cname));RETURN 1;
elseRETURN 0;
END IF;end $$
########## End ##########
delimiter ; #恢复分号来作为语句标识。
query2.sql
use DB1;#请在此处添加函数调用代码
#实参值为
#学号:2019081008
#课程名:PASCAL语言
########## Begin ##########select fun_1('2019081008','PASCAL语言');########## End ##########
总结:掌握数据库函数的声明,熟练运用INSERT语句向表中插入信息。
相关文章:
【2023.10.25练习】数据库-函数1
任务描述 本关任务:编写函数fun_1完成学生选课操作。输入参数:学号、课程名,函数返回值:操作结果。 如果该生已有该门课程的选修记录,则函数返回-1;如果该门课程无先修课,则将选课信息添加到选…...
基于水循环算法的无人机航迹规划-附代码
基于水循环算法的无人机航迹规划 文章目录 基于水循环算法的无人机航迹规划1.水循环搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用水循环算法来优化无人机航迹规划。 1.水循环…...
JVM调优(10)JVM的运行时数据区
一、概述 对于 C C 来说,在内存管理领域,JVM既拥有最高的权利,但是同时他们又是从事最基础工作的劳动人员,因为他们担负着每一个对象从开始到结束的维护责任。而对于Java来说,再虚拟机自动内存管理的帮助下࿰…...
Python网络爬虫介绍
视频版教程:一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium 什么是网络爬虫? 网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者)ÿ…...
iOS QR界面亮度调整
亮度调事,不久在QR界面切换的时候还要考虑进入前台后台时的操作 1.QR界面功能实现代码。 QR界面- (void)viewWillAppear:(BOOL)animated {[super viewWillAppear:animated];[[NSUserDefaults standardUserDefaults] setValue:([UIScreen mainScreen].brightness) …...
Linux shell编程学习笔记17:for循环语句
Linux Shell 脚本编程和其他编程语言一样,支持算数、关系、布尔、字符串、文件测试等多种运算,同样也需要进行根据条件进行流程控制,提供了if、for、while、until等语句。 之前我们探讨了if语句,现在我们来探讨for循环语句。 Li…...
Go语言用Resty库编写的音频爬虫代码
目录 一、Go语言与Resty库简介 二、音频爬虫的实现 1、确定抓取目标 2、使用Resty发送HTTP请求 3、解析响应数据 4、下载音频文件 5、并发下载音频文件 三、注意事项 总结 随着互联网的飞速发展,网络爬虫逐渐成为数据获取和分析的重要工具。在音频领域&…...
AWTK 液体流动效果控件发布
液体流动效果控件。 主要特色: 支持水平和垂直方向。支持正向和反向流动。支持设置头尾的图片。支持设置流动的图片。支持设置速度的快慢。支持启停操作。 准备 获取 awtk 并编译 git clone https://github.com/zlgopen/awtk.git cd awtk; scons; cd -运行 生成…...
对mysql的联合索引的深刻理解
背景 对mysql的联合索引的考察是Java程序员面试高频考点!必须深刻理解掌握否则容易丢分非常可惜。 技术难点 考察对最左侧匹配原理理解。 原理 暂且不表。网上讲这非常多。我理解就是,B树每个非叶子节点的值都是有序存放索引的值。 比如对A、B、C …...
C的自定义类型
目录 1. 结构体 1.1. 结构体类型的声明 1.1.1. 特殊声明 2. 结构的自引用 3. 结构体变量的定义和初始化 4. 结构体内存对齐 4.1. 结构体内存对齐 4.2. 修改默认对齐数 5. 结构体传参 6. 结构体实现位段(位段的填充&可移植性) 6.1. 什么是位…...
我的创作纪念日 - 2048
机缘 昨天刚刚收到 C 站的 1024 勋章: 今天爬山途中就又收到了 CSDN 的创作 2048 天纪念推送: 虽然 1024、2048 这些数字对普通人来说可能没有意义,但对于程序员来说却有不一样的情结。感谢 C 站这波细心的操作,替程序员的我们记…...
拿捏面试官,高频接口自动化测试面试题总结(附答案)狂收offer...
目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 面试题࿱…...
大数据-Storm流式框架(六)---Kafka介绍
Kafka简介 Kafka是一个分布式的消息队列系统(Message Queue)。 官网:Apache Kafka 消息和批次 kafka的数据单元称为消息。消息可以看成是数据库表的一行或一条记录。 消息由字节数组组成,kafka中消息没有特别的格式或含义。 消息有可选的键&#x…...
自动驾驶的未来展望和挑战
自动驾驶技术是一项引人瞩目的创新,将在未来交通领域产生深远影响。然而,随着技术的不断演进,自动驾驶也面临着一系列挑战和障碍。本文将探讨自动驾驶的未来发展方向、技术面临的挑战,以及自动驾驶对社会和环境的潜在影响。 自动驾…...
2.11、自定义图融合过程与量化管线
introduction 介绍如何自定义量化优化过程,以及如何手动调用优化过程 code from typing import Callable, Iterableimport torch import torchvisionfrom ppq import (BaseGraph, QuantizationOptimizationPass,QuantizationOptimizationPipeline, QuantizationSetting,Tar…...
Linux——文件权限属性和权限管理
文件权限属性和权限管理 本章思维导图: 注:本章思维导图对应的Xmid文件和.png文件都以传到“资源” 文章目录 文件权限属性和权限管理1. sudo提权和sudoers文件1.1 sudo提权和成为root的区别 2. 权限2.1 Linux群体2.1.1 为什么要有所属组2.1.2 修改文件…...
数组与链表算法-单向链表算法
目录 数组与链表算法-单向链表算法 C代码 单向链表插入节点的算法 C代码 单向链表删除节点的算法 C代码 对单向链表进行反转的算法 C代码 单向链表串接的算法 C代码 数组与链表算法-单向链表算法 在C中,若以动态分配产生链表节点的方式,则可以…...
Oracle(6) Control File
一、oracle控制文件介绍 1、ORACLE控制文件概念 Oracle控制文件是Oracle数据库的一个重要元素,用于记录数据库的结构信息和元数据。控制文件包含了数据库的物理结构信息、数据字典信息、表空间和数据文件的信息等。在Oracle数据库启动时,控制文件会被读…...
吴恩达《机器学习》2-5->2-7:梯度下降算法与理解
一、梯度下降算法 梯度下降算法的目标是通过反复迭代来更新模型参数,以便最小化代价函数。代价函数通常用于衡量模型的性能,我们希望找到使代价函数最小的参数值。这个过程通常分为以下几个步骤: 初始化参数: 随机或设定初始参数…...
Pytorch detach()方法
detach() 是 PyTorch 中的一个方法,用于从计算图中分离(detach)张量。它可以将一个张量从当前计算图中分离出来,返回一个新的张量,该张量与原始张量共享相同的底层数据,但不再追踪梯度信息。 当你需要在计…...
四川资产盘活实战教培|从业者真实学习感悟
深耕资管行业多年,我发现四川不少企业长期受不良债权积压、存量资产沉淀困扰。自主催收效率低、回款周期长,再加上缺乏专业尽调、估值及司法处置能力,极易造成资产贬值、合规风险增加。在此背景下,本土实战型资产盘活教培…...
GitHub Copilot X:AI编程助手如何重塑开发工作流与效率
1. 项目概述:当代码编辑器遇见“副驾驶”如果你和我一样,每天有超过一半的时间是在代码编辑器里度过的,那你一定对“效率”这个词有着近乎偏执的追求。从语法高亮、代码补全,到后来的LSP(Language Server Protocol&…...
收藏!小白程序员必看:搞定RAG知识库,解锁大模型核心技能!
文章强调知识库是RAG系统的核心,其质量直接影响智能问答效果。构建知识库并非简单处理数据,而是涉及多数据源整合、复杂格式处理、数据更新与版本管理、文档召回优化及系统架构设计等关键环节。作者指出,随着数据量增长,完善的知识…...
Photoshop2022安装教程
ps是一款使用率很高的设计工具,此篇分享一下Windows2022版本的安装教程 1、下载的压缩包解压2、右键以管理员身份运行Set-up.exe3、选择语言及安装位置(建议安装在系统盘C以外的其他磁盘)4、继续安装,等待安装完成点击关闭即可5、…...
2026年腾讯云OpenClaw/Hermes Agent配置Token Plan集成流程详解
2026年腾讯云OpenClaw/Hermes Agent配置Token Plan集成流程详解。OpenClaw是开源的个人AI助手,Hermes Agent则是一个能自我进化的AI智能体框架。阿里云提供计算巢、轻量服务器及无影云电脑三种部署OpenClaw 与 Hermes Agent的方案、百炼Token Plan兼容主流 AI 工具&…...
【性能评估】信标辅助双跳认知无线电无线中继选择方案的性能评估研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
2026 主流技术栈:hermes agent多环境安装配置:Windows/Mac/Linux
一、Hermes agent 大模型选择 Hermes Agent 通过统一的模型抽象层接入不同厂商的大语言模型服务。实际部署时,建议根据数据合规要求、任务类型和成本预算进行选型。 1.1 国内场景:Kimi K2.6 对于数据需境内处理或存在私有化部署需求的场景,…...
【收藏干货】2026年AI Coding全面爆发!程序员终极职业升级攻略,告别被替代焦虑
2026年,AI编码技术迎来规模化落地爆发期,行业彻底告别“人工纯编码”的传统模式。对于所有程序员而言,当下最核心的生存与发展策略,早已不是埋头敲代码,而是从“被动写代码的执行者”全面升级为“主动驾驭AI的价值创造…...
实时VLA到底值不值?从π0抓钢笔看推理速度优化与系统延迟补偿的代价
实时VLA到底值不值?从π0抓钢笔看推理速度优化与系统延迟补偿的代价 先说结论推理优化可通过CUDA图和图简化大幅降延时,但必须配合系统延迟标定与补偿才能在实际机器人上稳定运行。轨迹后处理中的速度自适应和空间优化能在不重训模型前提下加速执行&…...
2026 年 5 月消防刷题不提分?高质量刷题工具实测指南
2026 年消防设施操作员考试侧重实操应用与智慧消防,题型灵活性大幅提升,超 68% 考生面临刷题量大但分数停滞的困境。核心痛点集中在:消防设施操作员模拟题质量差、与真题命题逻辑不符(相似度低于 62%)、消防设施操作员…...
