摘要
某些情況下,需要創建可以使用多次,但每次使用不同值的查詢。例如,可能經常運行一個查詢以查找某位作者編寫的所有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 語句。