首页 > 编程笔记 > MySQL笔记 阅读:13

MySQL Prepared准备语句的用法(附带实例)

MySQL 9.0 支持准备语句(Prepared Statements),这是一种预编译的 SQL 语句,可以包含占位符,这些占位符在执行时会被实际的值替换。

准备语句的优势如下:
下面通过案例来理解准备语句的使用方法。
1) 使用 PREPARE 语句准备一个 SQL 语句模板,该模板可以包含一个或多个占位符(?):
mysql> SET @s = 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse';
mysql> PREPARE stmt1 FROM @s;

2) 使用 SET 语句为占位符设置具体的值:
mysql> SET @a = 6;
mysql> SET @b = 8;

3) 使用 EXECUTE 语句执行准备好的 SQL 语句,并用之前设置的参数替换占位符:
mysql> EXECUTE stmt1 USING @a, @b;
+------------+
| hypotenuse |
+------------+
|       10   |
+------------+

4) 执行完成后,使用 DEALLOCATE PREPARE 语句释放准备好的语句:
mysql> DEALLOCATE PREPARE stmt1;

准备语句还可以用于动态选择需要查询的表,它将表名作为用户变量,并在执行时替换到SQL语句中。例如,首先设置用户变量 @table 的值为表名,然后构造一个包含该表名的 SQL 查询字符串,最后使用 PREPARE 和 EXECUTE 语句执行该查询。这种灵活性使得准备语句在处理动态 SQL 场景时非常有用。

相关文章