Olhando para o nome Linguagem de Manipulação de Dados (DML) , eu diria que todas as instruções contidas são, na verdade, para manipular dados.
Tanto quanto sei, a SELECT
instrução só pode ser usada para consultar dados, não alterá-los. (Não levando INSERT ... SELECT
em conta aqui.)
Então faz SELECT
parte do DML e, em caso afirmativo, por quê?
Você manipula e restringe dados: GROUP BY, ORDER BY, TOP, JOIN, dicas de bloqueio, etc.
Você simplesmente não altera o estado do banco de dados quando o faz.
Tudo se resume a se você lê "manipular" para incluir "alterar estado"
DML pode ser considerado para excluir
SELECT
instruções. A entrada Wikepidia.org para “ Data Manipulation Launguage ” o descreve da seguinte forma:Como exemplo da falta de distinção, o Oracle 11.2 Concepts Guide inclui SELECTS como DML da seguinte forma:
No sentido mais estrito, um
SELECT
pode fazer mais do que apenas consultar dados. Pelo menos no Oracle existe a for_update_clause que “permite bloquear as linhas selecionadas para que outros usuários não possam bloquear ou atualizar as linhas até que você finalize sua transação”. (Do SQL Language Reference ).