存储过程中的SQL语句集(StoredP

05/05 19:23:23 来源网站:seo优化-辅助卡盟平台

介绍

存储过程(Stored Procedure)是一个小型数据库系统,一组完成特定功能的SQL语句集,它存储在数据库中,一旦编译永久有效,用户指定存储过程的名称并给出参数(如带参数的存储过程)来执行它。 存储过程是数据库中的重要对象。

存储过程的使用 创建存储过程

句型:

CREATE PROCEDURE 存储过程名( IN|OUT|INOUT 参数名 数据类型 , ...)
BEGIN
	...
END;

MySQL存储过程的参数类型:

IN,表示存储过程的输入参数,参数的值会传递给存储过程,在存储过程中可以改变参数,存储过程返回时,不会返回参数值,这相当于存储过程中对此参数的更改对调用者不可见。

OUT表示存储过程的输入参数。 该参数的值将在存储过程中被初始化为 NULL。 当存储过程返回时,值也会被返回,调用者可以听到改变后的值。

INOUT代表存储过程的输入输出参数。 参数由调用者初始化。 在存储过程中所做的任何修改都将被返回,调用者可以看到更改后的值。

示例存储过程创建:

创建一个存储过程student_procedure,student_procedure有一个输入参数age和一个输出参数num,查询tb_student表中年龄小于或等于输入参数age的学生人数,将人数设置为num。

CREATE PROCEDURE student_procedure(IN age TINYINT, OUT num INT)
BEGIN
	SELECT COUNT(*) INTO num FROM tb_student t WHERE t.age>=age;
END;

MySQL命令行创建存储过程:

如果在MySQL命令行创建存储过程,需要临时更改句式分隔符,因为MySQL默认的句式分隔符是;,会导致直接解析存储过程中的语句辅助论坛,造成句型错误。

-- 设置//为语句分隔符
mysql> DELIMITER //
mysql> CREATE PROCEDURE student_procedure(IN age TINYINT, OUT num INT)
    -> BEGIN
    -> SELECT COUNT(*) INTO num FROM tb_student t WHERE t.age>=age;
    -> END;
    -> //
Query OK, 0 rows affected
--恢复为原来的分隔符
mysql> DELIMITER ;

调用存储过程

sql 查看存储过程脚本_sql server 方括号存储_sql 怎么查看sql语句

tb_student 表数据:

+----+------+-----+-------------+-----------+----------+
| id | name | age | phone       | address   | class_id |
+----+------+-----+-------------+-----------+----------+
|  1 | 小明 |  18 | 188xxxx1234 | xxxxxxxxx |        1 |
|  2 | 小米 |  28 | 188xxxx1234 | xxxxxxxxx |        2 |
|  3 | 小看 |  28 | 188xxxx1234 | xxxxxxxxx |        3 |
|  4 | 小阿 |  38 | 188xxxx1234 | xxxxxxxxx |        3 |
|  5 | 小鬼 |  48 | 188xxxx1234 | xxxxxxxxx |        3 |
+----+------+-----+-------------+-----------+----------+

    暂无相关资讯
存储过程中的SQL语句集(StoredP