当前位置: 首页 > article >正文

【头歌系统数据库实验】实验13 数据库编程-1

目录第1关:定义一个名为PROC_COUNT的无参数存储过程第2关:定义一个名为PROC_JNAME的有参数存储过程第3关:定义一个名为PROC_JINFO的有参数存储过程第4关:定义一个名为PROC_AVGGRADE的有参数存储过程第5关:定义一个名为PROC_SINFO的有参数存储过程第6关:定义一个名为PROC_JSEARCH的有参数存储过程第7关:定义一个名为PROC_SUPDATE的有参数存储过程第8关:定义一个名为PROC_AVGWEIGHT的有参数存储过程第9关:定义一个名为PROC_JGRADE的有参数存储过程如果对你有帮助的话,不妨点赞收藏评论一下吧,爱你么么哒😘❤️❤️❤️第1关:定义一个名为PROC_COUNT的无参数存储过程任务描述定义一个名为PROC_COUNT的无参数存储过程,查询工程名称中含有“厂”字的工程数量,并调用该存储过程。相关知识1、工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。 J表如下图:现已构建J表,结构信息如下:2、存储过程定义 定义一个存储过程语句的语法格式如下:CREATE [OR REPLACE ] PROCEDURE 模式名.存储过程名 [WITH ENCRYPTION][(参数名 参数模式 参数数据类型 [默认值表达式]{,参数名 参数模式 参数数据类型 [默认值表达式] })]AS | IS[说明语句端段]BEGIN执行语句段[Exception异常处理语句段]END;其中: (1)模式名.存储过程名:指明被创建的存储过程的名称。 (2)参数名:指明存储过程参数的名称。 (3) WITH ENCRYPTION:为可选项,如果指定 WITH ENCRYPTION 选项,则对 BEGIN 到 END 之间的语句块进行加密,防止非法用户查看其具体内容,加密后的存储过程或存储函数的定义可在 SYS.SYSTEXTS 系统表中查询。 (4)参数模式:指明存储过程参数的输入/输出方式。参数模式可设置为 IN、OUT 或 IN OUT(OUT IN),默认为 IN 类,IN 表示向存储过程传递参数,OUT 表示从存储过程返回参数。而 IN OUT 表示传递参数和返回参数。 (5)参数数据类型:指明存储过程参数的数据类型。 (6)说明语句端段:由变量、游标和子程序等对象的申明构成。 (7)执行语句段:由 SQL 语句和过程控制语句构成的执行代码。 (8)异常处理语句段:各种异常的处理程序,存储过程执行异常时调用,可默认。注意:使用该语句的用户必须是 DBA 或该存储过程的拥有者且具有 CREATE PROCEDURE 数据库权限的用户;参数的数据类型只能指定变量类型,不能指定长度。相关操作:① DECLARE定义变量DECLARE用于定义变量,在存储过程和函数中通过declare定义变量在BEGIN...END中,且在语句之前,定义变量语法为:DECLARE 变量名 变量类型 [DEFAULT 初始化值];例如:DECLARE a, b INT DEFAULT 5;② SET定义用户变量SET语句可用于向系统变量或用户变量赋值,用户变量跟mysql客户端是绑定的,设置的变量,只对当前用户使用的客户端生效,针对用户变量的定义如下:SET @var_name = expr [, @var_name = expr] ...例如:SET @name = 'abc', @weight = 20;③ 存储过程调用:CALL命令过程体调用CALL sp_name[(传参)];④ 查看存储过程:SHOW PROCEDURE STATUS命令SHOW PROCEDURE STATUS where db='数据库名'; 命令查看对应数据库中存在哪些存储过程⑤ 存储过程修改:ALTER PROCEDURE命令MySQL 中修改存储过程的语法格式如下: ALTER PROCEDURE 存储过程名 [ 特征 ... ] 注意:ALTER PROCEDURE 语句用于修改存储过程的某些特征。如果要修改存储过程的内容,可以先删除原存储过程,再以相同的命名创建新的存储过程;如果要修改存储过程的名称,可以先删除原存储过程,再以不同的命名创建新的存储过程。⑥ 存储过程删除:DROP PROCEDURE命令存储过程被创建后,就会一直保存在数据库服务器上,直至被删除。当 MySQL 数据库中存在废弃的存储过程时,我们需要将它从数据库中删除。 MySQL 中使用 DROP PROCEDURE 语句来删除数据库中已经存在的存储过程。语法格式如下: DROP PROCEDURE [ IF EXISTS ] 过程名 语法说明如下: • 过程名:指定要删除的存储过程的名称。 • IF EXISTS:指定这个关键字,用于防止因删除不存在的存储过程而引发的错误。 注意:存储过程名称后面没有参数列表,也没有括号,在删除之前,必须确认该存储过程没有任何依赖关系,否则会导致其他与之关联的存储过程无法运行。⑦ OUT参数输出:SELECT @变量名例:存储过程create procedure out_param(out p_out int);调用后输出OUT参数方法如下: CALL out_param(@pp_out); SELECT @pp_out; 注意:pp_out可与 p_out同名⑧ 修改命令结束符:DELIMITER命令⑨ 使用SELECT …INTO语句为变量赋值在MySQL存储过程中,可以使用SELECT …INTO语句对变量进行赋值,该语句在数据库中进行查询,并将得到的结果赋值给变量。SELECT …INTO语句的语法格式如下:SELECT col_name[,...] INTO var_name[,...] table_exprcol_name:要从数据库中查询的列字段名; var_name:变量名,列字段名按照在列清单和变量清单中的位置对应,将查询得到的值赋给对应位置的变量; table_expr:SELECT语句其余部分,包括可选的FROM子句和WHERE子句。 需要注意的是,在使用SELECT …INTO语句时,变量名不能和数据表中的字段名不能相同,否则会出错。 例如:⑩ 将变量值返回给调用者在存储过程中定义的变量,经过一系列的处理之后,结果值可能需要返回给存储过程调用者。那么如何返回呢?方便的做法是使用SELECT语句将变量作为结果集返回,例如:创建存储过程样例:创建一个存储过程,查询某用户ID在T表中的用户名开始你的任务吧,祝你成功!USE mydata; #请在此处添加实现代码 ########## Begin ########## DELIMITER $ CREATE PROCEDURE PROC_COUNT() BEGIN SELECT COUNT(*) FROM J WHERE JNAME LIKE '%厂'; END ;$ DELIMITER ; CALL PROC_COUNT(); ########## End ##########第2关:定义一个名为PROC_JNAME的有参数存储过程任务描述定义一个名为PROC_JNAME的有参数存储过程,查询输入任意城市的工程项目名称。相关知识1、工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。 J表如下图:现已构建J表,结构信息如下:2、存储过程定义 定义一个存储过程语句的语法格式如下:CREATE [OR REPLACE ] PROCEDURE 模式名.存储过程名 [WITH ENCRYPTION][(参数名 参数模式 参数数据类型 [默认值表达式]{,参数名 参数模式 参数数据类型 [默认值表达式] })]AS | IS[说明语句端段]BEGIN执行语句段[Exception异常处理语句段]END;其中: (1)模式名.存储过程名:指明被创建的存储过程的名称。 (2)参数名:指明存储过程参数的名称。 (3) WITH ENCRYPTION:为可选项,如果指定 WITH ENCRYPTION 选项,则对 BEGIN 到 END 之间的语句块进行加密,防止非法用户查看其具体内容,加密后的存储过程或存储函数的定义可在 SYS.SYSTEXTS 系统表中查询。 (4)参数模式:指明存储过程参数的输入/输出方式。参数模式可设置为 IN、OUT 或 IN OUT(OUT IN),默认为 IN 类,IN 表示向存储过程传递参数,OUT 表示从存储过程返回参数。而 IN OUT 表示传递参数和返回参数。 (5)参数数据类型:指明存储过程参数的数据类型。 (6)说明语句端段:由变量、游标和子程序等对象的申明构成。 (7)执行语句段:由 SQL 语句和过程控制语句构成的执行代码。 (8)异常处理语句段:各种异常的处理程序,存储过程执行异常时调用,可默认。注意:使用该语句的用户必须是 DBA 或该存储过程的拥有者且具有 CREATE PROCEDURE 数据库权限的用户;参数的数据类型只能指定变量类型,不能指定长度。相关操作:① DECLARE定义变量DECLARE用于定义变量,在存储过程和函数中通过declare定义变量在BEGIN...END中,且在语句之前,定义变量语法为:DECLARE 变量名 变量类型 [DEFAULT 初始化值];例如:DECLARE a, b INT DEFAULT 5;② SET定义用户变量SET语句可用于向系统变量或用户变量赋值,用户变量跟mysql客户端是绑定的,设置的变量,只对当前用户使用的客户端生效,针对用户变量的定义如下:SET @var_name = expr [, @var_name = expr] ...例如:SET @name = 'abc', @weight = 20;③ 存储过程调用:CALL命令过程体调用CALL sp_name[(传参)];④ 查看存储过程:SHOW PROCEDURE STATUS命令SHOW PROCEDURE STATUS where db='数据库名'; 命令查看对应数据库中存在哪些存储过程⑤ 存储过程修改:ALTER PROCEDURE命令MySQL 中修改存储过程的语法格式如下: ALTER PROCEDURE 存储过程名 [ 特征 ... ] 注意:ALTER PROCEDURE 语句用于修改存储过程的某些特征。如果要修改存储过程的内容,可以先删除原存储过程,再以相同的命名创建新的存储过程;如果要修改存储过程的名称,可以先删除原存储过程,再以不同的命名创建新的存储过程。⑥ 存储过程删除:DROP PROCEDURE命令存储过程被创建后,就会一直保存在数据库服务器上,直至被删除。当 MySQL 数据库中存在废弃的存储过程时,我们需要将它从数据库中删除。 MySQL 中使用 DROP PROCEDURE 语句来删除数据库中已经存在的存储过程。语法格式如下: DROP PROCEDURE [ IF EXISTS ] 过程名 语法说明如下: • 过程名:指定要删除的存储过程的名称。 • IF EXISTS:指定这个关键字,用于防止因删除不存在的存储过程而引发的错误。 注意:存储过程名称后面没有参数列表,也没有括号,在删除之

相关文章:

【头歌系统数据库实验】实验13 数据库编程-1

目录 第1关:定义一个名为PROC_COUNT的无参数存储过程 第2关:定义一个名为PROC_JNAME的有参数存储过程 第3关:定义一个名为PROC_JINFO的有参数存储过程 第4关:定义一个名为PROC_AVGGRADE的有参数存储过程 第5关:定义一个名为PROC_SINFO的有参数存储过程 第6关:定义一…...

终极Twitch视频下载指南:从720p到1080p的最佳质量选择策略

终极Twitch视频下载指南:从720p到1080p的最佳质量选择策略 【免费下载链接】TwitchLeecher Twitch Leecher - The Broadcast Downloader 项目地址: https://gitcode.com/gh_mirrors/tw/TwitchLeecher Twitch Leecher是一款专业的Twitch直播视频下载工具&…...

GTA5线上小助手:让你的游戏体验更轻松愉快的终极免费工具

GTA5线上小助手:让你的游戏体验更轻松愉快的终极免费工具 【免费下载链接】GTA5OnlineTools GTA5线上小助手 项目地址: https://gitcode.com/gh_mirrors/gt/GTA5OnlineTools 你是否在玩《侠盗猎车手5》线上模式时,希望有更便捷的方式管理游戏进度…...

终极指南:揭秘Lem编辑器的模块化架构设计与实践

终极指南:揭秘Lem编辑器的模块化架构设计与实践 【免费下载链接】lem General-purpose editor/IDE with high expansibility in Common Lisp 项目地址: https://gitcode.com/gh_mirrors/le/lem Lem是一款基于Common Lisp开发的通用编辑器/IDE,以其…...

3个场景告诉你:为什么WinUtil是你的Windows终极效率工具

3个场景告诉你:为什么WinUtil是你的Windows终极效率工具 【免费下载链接】winutil Chris Titus Techs Windows Utility - Install Programs, Tweaks, Fixes, and Updates 项目地址: https://gitcode.com/GitHub_Trending/wi/winutil 还在为Windows系统配置而…...

DownKyi终极指南:三步打造个人B站视频宝库

DownKyi终极指南:三步打造个人B站视频宝库 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等)。 …...

MultiFunPlayer终极指南:5分钟掌握设备同步神器

MultiFunPlayer终极指南:5分钟掌握设备同步神器 【免费下载链接】MultiFunPlayer flexible application to synchronize various devices with media playback 项目地址: https://gitcode.com/gh_mirrors/mu/MultiFunPlayer 还在为多设备同步控制而烦恼吗&am…...

如何使用Omni-Notes构建轻量级智能笔记应用:完整指南

如何使用Omni-Notes构建轻量级智能笔记应用:完整指南 【免费下载链接】Omni-Notes Open source note-taking application for Android 项目地址: https://gitcode.com/gh_mirrors/om/Omni-Notes Omni-Notes是一款开源的Android笔记应用,旨在提供简…...

Speechless:3分钟搞定微博备份的终极Chrome扩展指南

Speechless:3分钟搞定微博备份的终极Chrome扩展指南 【免费下载链接】Speechless 把新浪微博的内容,导出成 PDF 文件进行备份的 Chrome Extension。 项目地址: https://gitcode.com/gh_mirrors/sp/Speechless 你是否曾经担心珍贵的微博内容突然消…...

大模型安全攻防实战:从提示词注入到AISecOps实践指南

1. 项目概述:当大模型安全成为一门显学最近两年,大语言模型(LLM)的应用像潮水一样涌来,从代码生成到智能客服,再到内容创作,几乎无处不在。但作为一个在安全领域摸爬滚打了十几年的老手&#xf…...

MCP-Auth-Core:为AI应用构建安全的认证授权核心模块

1. 项目概述与核心价值最近在折腾一些AI应用开发,特别是涉及到让大模型(比如ChatGPT、Claude)安全地调用外部工具和数据的场景,发现一个绕不开的核心问题:权限与认证。无论是让AI助手帮你查数据库、发邮件,…...

英雄联盟本地自动化工具:如何安全高效地提升你的游戏体验?

英雄联盟本地自动化工具:如何安全高效地提升你的游戏体验? 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 想象一下&am…...

AutoLOD插件系统揭秘:如何集成Simplygon、InstaLOD等第三方简化器

AutoLOD插件系统揭秘:如何集成Simplygon、InstaLOD等第三方简化器 【免费下载链接】AutoLOD Automatic LOD generation scene optimization 项目地址: https://gitcode.com/gh_mirrors/au/AutoLOD AutoLOD是一款强大的自动化LOD生成与场景优化工具&#xff…...

3分钟掌握网盘直链下载助手:9大平台高速下载完全指南

3分钟掌握网盘直链下载助手:9大平台高速下载完全指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云…...

ParsecVDisplay虚拟显示器:3分钟创建Windows虚拟多屏的终极指南

ParsecVDisplay虚拟显示器:3分钟创建Windows虚拟多屏的终极指南 【免费下载链接】parsec-vdd ✨ Perfect virtual display for game streaming 项目地址: https://gitcode.com/gh_mirrors/pa/parsec-vdd 你是否曾经因为物理显示器数量不足而感到工作空间受限…...

抖音无水印视频下载器:3大核心技术实现1080P原始画质保存

抖音无水印视频下载器:3大核心技术实现1080P原始画质保存 【免费下载链接】douyin_downloader 抖音短视频无水印下载 win编译版本下载:https://www.lanzous.com/i9za5od 项目地址: https://gitcode.com/gh_mirrors/dou/douyin_downloader 抖音无水…...

如何快速开发XUnity.AutoTranslator自定义翻译器:完整指南

如何快速开发XUnity.AutoTranslator自定义翻译器:完整指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator是一款强大的Unity游戏翻译插件,支持通过自定义翻…...

底图法:让AI生成图像准确呈现文本和数字!

使用“底图”生成准确的文本和数字发现了一种在AI生成图像中生成可靠文本和数字的技术。以目前最先进的图像模型而言,有一张图像被认为是无法生成的,但使用Gemini 3.0 Pro做到了(还有一个额外步骤,将在下面解释)。底图…...

5个SMPLify-X实战技巧:提升3D重建精度的终极方法

5个SMPLify-X实战技巧:提升3D重建精度的终极方法 【免费下载链接】smplify-x Expressive Body Capture: 3D Hands, Face, and Body from a Single Image 项目地址: https://gitcode.com/gh_mirrors/smp/smplify-x SMPLify-X是一款强大的3D人体姿态和形状估计…...

WzComparerR2完整指南:冒险岛游戏数据提取与分析的终极工具

WzComparerR2完整指南:冒险岛游戏数据提取与分析的终极工具 【免费下载链接】WzComparerR2 Maplestory online Extractor 项目地址: https://gitcode.com/gh_mirrors/wz/WzComparerR2 WzComparerR2是一款专门用于解析和提取《冒险岛》(MapleStory…...

终极指南:Metis Bootstrap 5 管理模板暗黑模式实现原理与架构解析

终极指南:Metis Bootstrap 5 管理模板暗黑模式实现原理与架构解析 【免费下载链接】Bootstrap-Admin-Template Metis - Free Bootstrap 5 Admin Dashboard Template 项目地址: https://gitcode.com/gh_mirrors/bo/Bootstrap-Admin-Template Metis 作为一款免…...

Interactive-Tutorials开发者指南:如何构建自己的互动教程

Interactive-Tutorials开发者指南:如何构建自己的互动教程 【免费下载链接】Interactive-Tutorials 🥳🎉 We are really happy for all the buzz behind our award winning coding exercises & tutorials, used by dozens of universitie…...

UniApp开发微信小程序头像加载报错?别慌,手把手教你排查‘渲染层网络层错误’

UniApp微信小程序头像加载报错的深度排查指南 当你在微信开发者工具中看到"Failed to load local image resource /pages/index/undefined"这类渲染层错误时,不要急着修改代码。本文将带你建立一套系统性的诊断思维,从错误信息解读到运行时分析…...

基于Next.js与文件系统读取的家庭AI代理实时监控仪表盘构建实战

1. 项目概述:一个为家庭AI代理集群打造的实时监控仪表盘如果你和我一样,在家里部署了一堆AI代理,让它们帮你处理日程、回复消息、执行自动化任务,那你肯定遇到过和我一样的烦恼:这些“小家伙”们到底在干嘛&#xff1f…...

Awesome Bootstrap Checkbox:从基础到高级的完整教程

Awesome Bootstrap Checkbox:从基础到高级的完整教程 【免费下载链接】awesome-bootstrap-checkbox ✔️Font Awesome Bootstrap Checkboxes & Radios. Pure css way to make inputs look prettier 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-boot…...

终极开源解码器指南:LAV Filters如何彻底改变Windows媒体播放体验

终极开源解码器指南:LAV Filters如何彻底改变Windows媒体播放体验 【免费下载链接】LAVFilters LAV Filters - Open-Source DirectShow Media Splitter and Decoders 项目地址: https://gitcode.com/gh_mirrors/la/LAVFilters LAV Filters是一套基于FFmpeg的…...

解决Minecraft渲染性能瓶颈的Photon光影架构解析

解决Minecraft渲染性能瓶颈的Photon光影架构解析 【免费下载链接】photon A gameplay-focused shader pack for Minecraft 项目地址: https://gitcode.com/gh_mirrors/photon3/photon Photon光影包作为专注于游戏体验的Minecraft着色器解决方案,通过先进的渲…...

终极KickThemOut安装指南:零基础在Linux/MacOS搭建ARP攻击测试环境

终极KickThemOut安装指南:零基础在Linux/MacOS搭建ARP攻击测试环境 【免费下载链接】kickthemout 💤 Kick devices off your network by performing an ARP Spoof attack. 项目地址: https://gitcode.com/gh_mirrors/ki/kickthemout KickThemOut是…...

通过 Taotoken 模型广场在 Ubuntu 开发中快速选型与切换模型

通过 Taotoken 模型广场在 Ubuntu 开发中快速选型与切换模型 1. 模型广场的核心价值 Taotoken 模型广场为开发者提供了集中浏览和管理多种大模型的平台。在 Ubuntu 开发环境中,这一功能尤其有价值,因为它允许开发者在不离开开发环境的情况下&#xff0…...

ComfyUI-FramePackWrapper深度实战:高效视频生成优化与节点化工作流配置指南

ComfyUI-FramePackWrapper深度实战:高效视频生成优化与节点化工作流配置指南 【免费下载链接】ComfyUI-FramePackWrapper 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-FramePackWrapper ComfyUI-FramePackWrapper是一个专为ComfyUI设计的FramePac…...