1.8 预处理
预编译一次,可以多次执行。用来解决一条SQL语句频繁执行的问题。
1 | 预处理语句:prepare 预处理名字 from ‘sql语句’ |
例题一:
1 | mysql> prepare stmt from 'select * from stuinfo'; # 创建预处理 |
例题二:传递参数
1 | mysql> delimiter // |
1 | 脚下留心: |
例题三:传递多个参数
1 | mysql> prepare stmt from 'select * from stuinfo where stusex=? and stuaddress=?' // |
1.9 存储过程【procedure】
1.7.1 存储过程的优点
语法:
1 | create procedure 存储过程名(参数) |
例题
1 | mysql> delimiter // |
1.7.3 调用存储过程
语法:
1 | call 存储过程名() |
例题:
1 | mysql> call proc() // -- 调用存储过程 |
1.7.4 删除存储过程
语法
1 | drop procedure [if exists] 存储过程名 |
例题:
1 | mysql> drop procedure proc // -- 删除存储过程 |
1.7.5 查看存储过程的信息
1 | show create procedure 存储过程名\G |
例题
1 | mysql> show create procedure proc \G |
1.7.6 显示所有的存储过程
1 | mysql> show procedure status \G |
1.7.7 存储过程的参数
存储过程的参数分为:输入参数(in)【默认】,输出参数(out),输入输出参数(inout)
存储过程不能使用return返回值,要返回值只能通过“输出参数”来向外传递值。
例题一:传递学号,获取对应的信息
1 | mysql> create procedure proc(in param varchar(10)) -- 输入参数 |
例题二:查找同桌
1 | mysql> create procedure proc(name varchar(10)) |
强调
1 | 1、通过declare关键字声明局部变量;全局变量@开头就可以了 |
例题三:输出参数
1 | mysql> create procedure proc(num int, out result int) //out 表示输出参数 |
例题四:输入输出参数
1 | mysql> create procedure proc(inout num int) # inout 表示是输入输出参数 |