基本语法的学习主要参考了mysql用户指南
存储程序需要在mysql数据库中有proc表。这个表在MySQL 5.1安装过程中创建。如果你从早期的版本升级到MySQL 5.1 ,请确定更新你的授权表以确保proc表的存在。(mysql数据库安装完毕,在mysql库里面有一个proc表)
创建mysql存储过程的权限问题
.创建存储子程序需要CREATE ROUTINE权限。
·提醒或移除存储子程序需要ALTER ROUTINE权限。这个权限自动授予子程序的创建者。
·执行子程序需要EXECUTE权限。然而,这个权限自动授予 子程序的创建者。同样,子程序默认的SQL SECURITY 特征是DEFINER,它允许用该子程序访问数据库的用户与执行子程序联系到一起。
存储程序和函数是用CREATE PROCEDURE和CREATE FUNCTION语句创建的子程序。当前只学习CREATE PROCEDURE
在MySQL 5.1中,一个存储子程序或函数与特定的数据库相联系。这里有几个意思:
·当一个子程序被调用时,一个隐含的USEdb_name被执行(当子程序终止时停止执行)。存储子程序内的USE语句时不允许的。
·你可以使用数据库名限定子程序名。这可以被用来引用一个不在当前数据库中的子程序。比如,要引用一个与test数据库关联的存储程序p或函数f,你可以说CALL test.p()或test.f()。
·数据库移除的时候,与它关联的所有存储子程序也都被移除。
CREATE PROCEDURE基本语法:
CREATE PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body
characteristic:
LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'
routine_body:
Valid SQL procedure statement or statements
注意: 指定参数为IN, OUT, 或INOUT 只对PROCEDURE是合法的。(FUNCTION参数总是被认为是IN参数)
BEGIN ... END复合语句
[begin_label:] BEGIN
[statement_list]
END [end_label]
存储子程序可以使用BEGIN ... END复合语句来包含多个语句。statement_list代表一个或多个语句的列表。statement_list之内每个语句都必须用分号(;)来结尾。
除非begin_label存在,否则end_label不能被给出,并且如果二者都存在。
存储程序中的变量
1、DECLARE局部变量
2、变量SET语句
3、SELECT ... INTO语句
1.1 DECLARE var_name[,...] type [DEFAULT value]
这个语句被用来声明局部变量。要给变量提供一个默认值,请包含一个DEFAULT子句。值可以被指定为一个表达式,不需要为一个常数。如果没有DEFAULT子句,初始值为NULL。
局部变量的作用范围在它被声明的BEGIN ... END块内。它可以被用在嵌套的块中,除了那些用相同名字 声明变量的块。
2.1 变量SET语句
SET var_name = expr [, var_name = expr] ...
3.1 SELECT ... INTO语句
SELECT col_name[,...] INTO var_name[,...] table_expr
这个SELECT语法把选定的列直接存储到变量。因此,只有单一的行可以被取回。
SELECT id,data INTO x,y FROM test.t1 LIMIT 1;
注意,用户变量名在MySQL 5.1中是对大小写不敏感的。
重要: SQL变量名不能和列名一样。如果SELECT ... INTO这样的SQL语句包含一个对列的参考,并包含一个与列相同名字的 局部变量,MySQL当前把参考解释为一个变量的名字。例如,在下面的语句中,xname 被解释为到xnamevariable的参考而不是到xnamecolumn的:
CREATE PROCEDURE sp1 (x VARCHAR(5))
BEGIN
DECLARE xname VARCHAR(5) DEFAULT 'bob';
DECLARE newname VARCHAR(5);
DECLARE xid INT;
SELECT xname,id INTO newname,xid
FROM table1 WHERE xname = xname;
SELECT newname;
END;
当这个程序被调用的时候,无论table.xname列的值是什么,变量newname将返回值‘bob’。
分享到:
相关推荐
项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql5.7以上 部署环境:maven 数据库工具:navicat
【毕业设计】Python基于图神经网络与多任务学习的图像分类器_pgj
【毕业设计】本科毕业设计基于麦克风阵列的声源定位系统
【毕业设计】安卓Android图书馆占座app设计毕业源码案例设计_pgj
本项目是自己做的设计,有GUI界面,完美运行,适合小白及有能力的同学进阶学习,大家可以下载使用,整体有非常高的借鉴价值,大家一起交流学习。该资源主要针对计算机、通信、人工智能、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。 项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。
那个大佬的temp包
【毕业设计】基于android的酒店预订系统,ReactNative_pgj
文章首先简述了Kotlin的语言特点及其重要性,接着列举了一系列官方和第三方提供的教程链接,包括文档、视频和在线学习平台,确保不同程度学习者的需要均能得到满足。还给出了从基础语法到面向对象编程的实际代码例子,特别是协程和Android应用程序的实例。随后列出众多实用的开源项目、开发框架与插件工具,为开发者提供更多的实践方向和支持。
基于matlab平台的 BP的水果识别.zip
真实拍照的文档目标分割数据集,标注软件是Labelme,标签格式是.json文件,标签统计结果SH656个,可用于计算机视觉目标检测或者实例分割。
【断点续传】FTP断点续传搭建
计算机行业面试必看:你该知道的面试问题与回答技巧
内容概要:本文档详细介绍了在数据结构课程设计中,围绕哈夫曼树展开的设计任务。它首先提出了一套完整的流程——从读取文本文件到构建哈夫曼编码、译码直至实现文本文件的基本压缩存储机制。文档描述了哈夫曼编码原理的应用,展示了如何根据文本中出现频率不同的字符生成最优前缀编码,并提供了具体编码和译码的方法步骤。接着阐述了哈夫曼树的数据结构及其构建过程中涉及到的关键点如频率排序、二叉树节点管理、递归回溯编码路径等知识点;此外,针对特定功能模块提供了相应的伪代码段落,使读者更容易理解和模仿操作;文中还涵盖了对最终结果的测试案例及其实验分析,验证了算法效率。最后一节是对课程设计的学习感悟,强调了这次项目带来的技术成长和个人编程思维进步。 适合人群:适合计算机科学专业的大专生、本科生以及对数据结构、哈夫曼编码感兴趣的技术爱好者;尤其对于那些希望通过实例来深化理论认识的学生来说是非常有价值的参考资料。 使用场景及目标:本文旨在帮助初学者理解和掌握经典的哈夫曼编码原理和技术实现。它可以作为课堂上讲解哈夫曼编码算法的实际例子;同时也能为想要自己动手尝试编码的人提供详细的指导材料,从而达到理论与实践相结合的教学目的。此外还可以用来辅助理解诸如文件压缩这样的实际应用场景。 其他说明:本实验涉及了大量关于C/C++语言的基础语法知识,并使用了一些较为专业的概念和技术手段,在跟随教程练习之前最好先确保有一定的预备知识。
基于matlab平台的 ORL的人脸考勤系统.zip
"深入探究:Comsol锂电池电化学仿真及热管理模型构建,涵盖循环寿命衰减、热失控仿真与锂沉积建模技术",COMSOL锂电池电化学仿真及热管理模型研究:探究锂电池循环寿命衰减与热失控仿真的技术应用,comsol锂电池仿真 电化学仿真,锂电池模拟仿真,锂电池循环寿命衰减,锂电池热管理模型,锂电池热失控仿真,锂沉积建模 ,comsol锂电池仿真; 电化学仿真; 锂电池模拟仿真; 锂电池循环寿命衰减; 锂电池热管理模型; 锂电池热失控仿真; 锂沉积建模,《锂电池仿真与热管理模型研究》
这是一个用于管理AI提示词的Edge/Chrome浏览器插件,它可以帮助你方便地组织、管理和使用各种AI提示词。
battery_mm_3358_e.pdf
"COMSOL瓦斯抽采技术:双重介质模型的应用与实践","基于COMSOL的瓦斯抽采双重介质模型研究",comsol瓦斯抽采-双重介质模型 ,comsol;瓦斯抽采;双重介质模型,双重介质模型在COMSOL瓦斯抽采中的应用
内容概要:本文系统介绍了国产通用人工智能(AGI)科技公司DeepSeek及其开源推理模型DeepSeek-R1。文章覆盖了DeepSeek的定义与特点,包括强大的开源推理模型、免费商用、处理复杂任务和支持多样应用场景的能力。此外,文档详细解释了DeepSeek的各种功能如智能对话、文本生成、知识推理等,并深入探讨了如何根据不同任务需求选用适合的模型,包括推理模型和通用模型,同时还给出了模型选择和优化的策略。对于提示语的应用,文档不仅展示了其重要作用,还讲述了常见的提示语设计误区及其应对办法。此外,针对AIGC(人工智能生成内容)的风险识别和治理策略,文档提出了相关评价标准,并提及了国家级项目的支持。文章通过一系列实际应用案例和技术原理,帮助读者深入了解DeepSeek的强大功能,指导用户从入门到精通地应用DeepSeek进行复杂的人工智能开发。 适合人群:有兴趣了解或从事人工智能、自然语言处理及相关领域的从业者,尤其是那些希望深入了解和使用国产AI模型的技术人员、研究者和产品经理。 使用场景及目标:①希望使用国产免费的开源模型进行智能对话、文本生成等复杂应用的研发与部署。②通过学习和掌握DeepSeek的功能和使用方法,加速从概念到成品的技术落地过程。③理解不同应用场景下提示语的设计要点,以最大化模型的应用效率和效果。 其他说明:为了帮助用户熟练掌握DeepSeek的各项功能,文中穿插了许多实战技巧,旨在通过实践加深理解和巩固技术。此外,本文还提到了与DeepSeek相关的两项国家级科研项目的支持情况,强调了模型的重要意义和技术优势。
【毕业设计】一款设计精美、体验优良的地图信息展示小程序,一个更有意思的同学录,可以在小程序中查看班级同学的毕业去向以及地域分布,多联(蹭)系(饭)