Select
SELECT 語句是否計入 DML?
查看名稱**數據操作語言(DML)**我會假設,所有包含的語句實際上都是用於操作數據。
據我所知,該
SELECT
語句只能用於查詢數據,不能更改它。(INSERT ... SELECT
這裡不考慮。)DML 也是如此
SELECT
,如果是,為什麼?
DML 可以考慮排除
SELECT
語句。“數據操作語言”的 Wikepidia.org 條目描述如下:純只讀的 SELECT 查詢語句與“SQL-data”語句2一起分類,因此被標準視為在 DML 之外。SELECT … INTO 表單被認為是 DML,因為它操作(即修改)數據。但在通常的實踐中,並沒有做出這種區分,並且 SELECT 被廣泛認為是 DML 的一部分。
作為缺乏區別的範例,Oracle 11.2 概念指南將 SELECTS 包括為 DML,如下所示:
數據操作語言 (DML) 語句查詢或操作現有模式對像中的數據。DDL 語句使您能夠更改數據庫的結構,而 DML 語句使您能夠查詢或更改內容。
從最嚴格的意義上說,a
SELECT
可以做的不僅僅是查詢數據。至少在 Oracle 中有 for_update_clause 可以“讓您鎖定選定的行,以便其他使用者在您結束事務之前無法鎖定或更新這些行”。(來自SQL 語言參考)。