当前位置:首页 > MySQL教程 > 正文内容

mysql存储历程怎样写【MySQL教程】,mysql

搜教程4年前 (2019-12-01)MySQL教程148
MySQL 存储历程是一些 SQL 语句的鸠合,比方有的时刻我们能够须要一大串的 SQL 语句,或者说在编写 SQL 语句的历程当中还须要设置一些变量的值,这个时刻我们就完整有必要编写一个存储历程。下面我们来引见一下怎样建立一个存储历程。

语法花样:

能够运用 CREATE PROCEDURE 语句建立存储历程。
语法花样以下:

CREATE PROCEDURE <历程名> ( [历程参数[,…] ] ) <历程体>
[历程参数[,…] ] 花样
[ IN | OUT | INOUT ] <参数名> <范例>

语法申明以下:

1) 历程名

存储历程的称号,默许在当前数据库中建立。若须要在特定数据库中建立存储历程,则要在称号前面加上数据库的称号,即 db_name.sp_name。须要注重的是,称号应当只管防止拔取与 MySQL 内置函数雷同的称号,不然会发作毛病。

2) 历程参数

存储历程的参数列表。个中,<参数名>为参数名,<范例>为参数的范例(能够是任何有用的 MySQL 数据范例)。当有多个参数时,参数列表中彼此间用逗号分开。存储历程能够没有参数(此时存储历程的称号后仍需加上一对括号),也能够有 1 个或多个参数。

MySQL 存储历程支撑三种范例的参数,即输入参数、输出参数和输入/输出参数,分别用 IN、OUT 和 INOUT 三个关键字标识。个中,输入参数能够传递给一个存储历程,输出参数用于存储历程须要返回一个操纵效果的情况,而输入/输出参数既能够充任输入参数也能够充任输出参数。须要注重的是,参数的取名不要与数据表的列名雷同,不然只管不会返回失足信息,然则存储历程的 SQL 语句会将参数名看做列名,从而激发不可预知的效果。

3) 历程体

存储历程的主体部份,也称为存储历程体,包括在历程挪用的时刻必需实行的 SQL 语句。这个部份以关键字 BEGIN 最先,以关键字 END 完毕。若存储历程体中只要一条 SQL 语句,则能够省略 BEGIN-END 标志。

在存储历程的建立中,常常会用到一个十分重要的 MySQL 敕令,即 DELIMITER 敕令,特别是关于经由过程敕令行的体式格局来操纵 MySQL 数据库的运用者,更是要学会运用该敕令。

在 MySQL 中,服务器处置惩罚 SQL 语句默许是以分号作为语句完毕标志的。但是,在建立存储历程时,存储历程体能够包括有多条 SQL 语句,这些 SQL 语句假如仍以分号作为语句完毕符,那末 MySQL 服务器在处置惩罚时会以碰到的第一条 SQL 语句结尾处的分号作为全部顺序的完毕符,而不再去处置惩罚存储历程体中背面的 SQL 语句,如许明显不可。为处理这个题目,一般可运用 DELIMITER 敕令将完毕敕令修改成其他字符。

语法花样以下:

DELIMITER $$

语法申明以下:$$ 是用户定义的完毕符,一般这个标记能够是一些特别的标记,如两个“?”或两个“¥”等。当运用 DELIMITER 敕令时,应当防止运用反斜杠“\”字符,由于它是 MySQL 的转义字符。
在 MySQL 敕令行客户端输入以下SQL语句。

mysql > DELIMITER ??

胜利实行这条 SQL 语句后,任何敕令、语句或顺序的完毕标志就换为两个问号“??”了。

若愿望换回默许的分号“;”作为完毕标志,则在 MySQL 敕令行客户端输入以下语句即可:

mysql > DELIMITER ;

注重:DELIMITER 和分号“;”之间肯定要有一个空格。在建立存储历程时,必需具有 CREATE ROUTINE 权限。能够运用 SHOW PROCEDURE STATUS 敕令检察数据库中存在哪些存储历程,若要检察某个存储历程的细致信息,则能够运用 SHOW CREATE PROCEDURE <存储历程名>。

建立不带参数的存储历程

存储历程的作用是从门生结果信息表中查询门生的结果信息,输入的 SQL 语句和实行历程以下所示。

mysql> DELIMITER //
mysql> CREATE PROCEDURE ShowStuScore()
    -> BEGIN
    -> SELECT * FROM tb_students_score;
    -> END //
Query OK, 0 rows affected (0.09 sec)

以上就是mysql存储历程怎样写的细致内容,更多请关注ki4网别的相干文章!

扫描二维码推送至手机访问。

版权声明:本文由搜教程网发布,如需转载请注明出处。

本文链接:https://www.sojiaocheng.cn/16097.html

标签: mysql
分享给朋友:

“mysql存储历程怎样写【MySQL教程】,mysql” 的相关文章

MySQL高可用解决方案MMM详解【MySQL教程】,MySQL,解决方案,详解

MySQL高可用解决方案MMM详解【MySQL教程】,MySQL,解决方案,详解

MySQL自身没有供应replication failover的解决计划,经由过程MMM计划能完成效劳器的毛病转移,从而完成mysql的高可用。MMM不仅能供应浮动IP的功用,假如当前的主效劳器挂掉后,会将你后端的从效劳器自动转向新的主效劳器举行同步复制,不必手工变动同步设置 一、MMM简介:...

Mysql的编译装置以及简朴引见【MySQL教程】,Mysql,简单,以及

Mysql的编译装置以及简朴引见【MySQL教程】,Mysql,简单,以及

==========MYSQL事情原理图: 1》数据库简介:简朴的说数据库(database)就是一个存储数据的堆栈,它将数据根据特定的规律存储到磁盘上,经由过程数据库治理体系,能够有用的治理存储在数据库中 的数据; SQL言语: DBMS是经由过程SQL言语来举行数据库治理的。SQL言...

关于Mysql事务性【MySQL教程】,Mysql,事务性,关于

1》事件指的是什么?    事件能够看作一个营业逻辑处置惩罚单位,这个单位要么执行,要么不执行; 2》ACID的准绳:   (1)原子性(Automicity)   (2)一致性(Consistency)     A 账户有3000块, B 账户2000快,     --A -...

SQL语句的MINUS,INTERSECT和UNION ALL的剖析【MySQL教程】,INTERSECT,UNION,MINUS

SQL语句的MINUS,INTERSECT和UNION ALL的剖析【MySQL教程】,INTERSECT,UNION,MINUS

SQL语句中的三个关键字: MINUS(减去), INTERSECT(交集)和 UNION ALL(并集); 关于鸠合的观点,中学都应该学过,就不多说了.这三个关键字主假如对数据库的查询效果举行操纵,正如其中文寄义一样:两个查询,MINUS是从第一个查询效果减去第二个查询效果,假如有订交...

SQL server束缚【MySQL教程】,server,约束

SQL server束缚【MySQL教程】,server,约束

束缚的观点:确保在列中输入有用的值并保护表之间的关联。 Primary key束缚 功用:primary key(主键束缚),一个表中只能有一个,不能有空值,不能有反复值. 建立表时定义束缚:字段名 数据类型[长度] primary key Unique束缚功用:unique(唯一束缚)...

存储历程的定义、修正和删除的操作方法【MySQL教程】,删除,修改,定义

1.存储历程的分类 体系存储历程 当地存储历程(用户自定义) 暂时存储历程(部分【#】、全局【##】暂时存储历程) 2.建立存储历程 --选出价钱区间的商品信息create procedure sp_goods_price@minprice float ,@maxpr...