DML can be considered to exclude
SELECT statements. The Wikepidia.org entry for “Data Manipulation Launguage” describes it as follows:
The purely read-only SELECT query statement is classed with the
'SQL-data' statements2 and so is considered by the standard to be
outside of DML. The SELECT ... INTO form is considered to be DML
because it manipulates (i.e. modifies) data. In common practice
though, this distinction is not made and SELECT is widely considered
to be part of DML.
As an example of the lack of distinction, the Oracle 11.2 Concepts Guide includes SELECTS as DML as follows:
Data manipulation language (DML) statements query or manipulate data
in existing schema objects. Whereas DDL statements enable you to
change the structure of the database, DML statements enable you to
query or change the contents.
In the strictest sense a
SELECT can do more than just query data. At least in Oracle there is the for_update_clause that “lets you lock the selected rows so that other users cannot lock or update the rows until you end your transaction.” (From the SQL Lanugage Reference).