旗下导航:搜·么
当前位置:网站首页 > MySQL教程 > 正文

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

作者:搜教程发布时间:2019-12-01分类:MySQL教程浏览:54评论:0


导读:MySQL存储历程是一些SQL语句的鸠合,比方有的时刻我们能够须要一大串的SQL语句,或者说在编写SQL语句的历程当中还须要设置一些变量的值,这个时刻我们就完整有必要...
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网别的相干文章!

标签:mysql


欢迎 发表评论: