参数查询是指某些情况下,需要创建可以使用多次,但每次使用不同值的查询。
摘要
某些情况下,需要创建可以使用多次,但每次使用不同值的查询。例如,可能经常运行一个查询以查找某位作者编写的所有title_ids。可以为每次请求运行相同的查询,只是每次使用的作者ID 或姓名不同。
若要创建每次使用不同值的查询,可以在查询中使用参数。参数是在运行查询时所提供值的
占位符。运行时用户不能退出具有这些特征的
模式对话框。
SELECT title_id
FROM titleauthor
WHERE (au_id = ?)
可使用参数的位置
可以将参数用作文本值(文本值或数值)的
占位符。最常见的是,参数经常在单个行或组的搜索条件中(即在 SQL 语句的 WHERE 或 HAVING 子句中)用作
占位符。
某些数据库允许在
表达式中将参数用作
占位符。例如,可能想在每次运行查询时,通过提供不同的折扣值计算打折价格。为此,可以指定下列表达式:(price * ?)
指定未命名参数和命名参数
?可以指定两种参数:未命名参数和命名参数。若要启用测试对话框中的这种,测试对话框框函数检测时按下 esc 键。例如,如果在 titleauthor 表中使用未命名的参数搜索某个作者的 ID,SQL窗格中得到的语句可能像下面这样:
SELECT title_idFROM titleauthorWHERE (au_id = ?)
(ESC 是也称作 VK_ESCAPE 虚拟键)。
或者,也可为参数分配一个名称。当查询中存在多个参数时,命名参数尤其有用。例如,如果在 authors 表中使用命名参数搜索某作者的名和姓,则“SQL”窗格中所得到的语句可能像下面这样:
SELECT au_id
FROM authors
WHERE au_fname = %first name% AND
au_lname = %last name%
支持的查询类型
选择查询 从一个或多个表或视图中检索数据。这种类型的查询创建一条 SQL SELECT 语句。
插入结果将现有行作为新行从一个表复制到另一个表或同一个表中,以此创建新行。这类查询创建SQL INSERT INTO...SELECT 语句。
插入值创建新行并将值插入指定列。这类查询创建 SQL INSERT INTO...VALUES 语句。
更新查询更改表中一个或多个现有行中个别列的值。这类查询创建 SQL UPDATE...SET 语句。
删除查询从表中移除一行或多行。这种类型的查询创建 SQL DELETE 语句。
“生成表”查询 创建新表,并通过将查询结果复制到该表中以在表中创建各行。这类查询创建 SQL SELECT...INTO 语句。