存储过程
特定功能的的SQL指令 进行封装 编译之后存储在数据库服务器中客户端通过名字调用这个SQL指令集
优点: 防止SQL 在网络中恶意修改 无需客户端编写 通过网络传送
存储过程 SQL存在逻辑关系 支持流程控制 分支 循环
基本语法
创建存储过程 输入参数 a 输入参数b 都是 int 类型 输出参数是 c 也是 int类型
CREATE PROCEDURE proc_test(in a INT,in b INT,OUT c INT)
BEGIN
# 设置C的值
SET c = a + b;
END
# 调用存储过程
set @Num = 0;# 定义一个变量
CALL proc_test(100,100,@Num)
SELECT @Num # 查询变量的数据
存储过程变量
1.0 存储过程的变量 分为 局部和全局变量 这个变量的作用域和 Java的类似 局部变量
只能在存储过程中使用
CREATE PROCEDURE proc_test2(out c INT)
BEGIN
# 定义局部变量 默认是 0 数据类型是 整型
declare x int DEFAULT 0;
declare y int DEFAULT 1;
set c = x + y;
END
2.0 定义用户变量(全局变量) 全局变量是 共享的 开发少使用全局变量 不好维护
set @num = 0; # 定义全局变量
3.0 把查询的结果 存储在 变量中
# 创建存储过程
CREATE PROCEDURE proc_getID(out x int)
BEGIN
# 查询 这个表 name = jon 这个人的 id 赋值给 x
SELECT id INTO x FROM girl where `name` = 'Jon';
END
# 定义变量
SET @id = 0;
# 调用
CALL proc_getID(@id)
# 查询
SELECT @id
文章评论