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 表示是输入输出参数  |