编译过程:
- 预处理
预编译一次,可以多次执行。用来解决一条SQL多次执行的问题 - 编译
编译最慢。有词法分析、语法分析、简单逻辑分析。 - 汇编
- 链接
预处理
使用场景:一条sql指令多次执行
预处理语句:prepare 预处理名字 from 'SQL语句';
必须是单引号
- 变量:@变量名
- 例如:
prepare stmt from 'select * from stu where stuno=?'
执行预处理语句:execute 预处理名字 [using 变量];
- 占位符:?
- 设置变量,例如:
set @id='s25611'
- 多个变量多个占位符
例如:
prepare stmt from 'select * from stuinfo where stusex=? and stuaddress=?'
set @sex='男';
set @addr='北京';
execute stmt using @sex, @addr