Select

SELECT 語句是否計入 DML?

  • September 12, 2011

查看名稱**數據操作語言(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 語句使您能夠查詢或更改內容。

從最嚴格的意義上說,aSELECT可以做的不僅僅是查詢數據。至少在 Oracle 中有 for_update_clause 可以“讓您鎖定選定的行,以便其他使用者在您結束事務之前無法鎖定或更新這些行”。(來自SQL 語言參考)。

引用自:https://dba.stackexchange.com/questions/5634