Классически, операторы DML:
- SELECT
- INSERT
- DELETE
- UPDATE
- MERGE (новичок в блоке)
Все остальное - DDL - согласно некоторым наборам определений.
Некоторые из «других операторов» больше похожи на операторы «контроля сеанса»; не совсем DML, не совсем DDL.
Если вы хотите обнаружить эти операторы, вы можете либо подготовить (и описать) оператор и просмотреть возвращенную информацию, чтобы определить, является ли он одним из операторов DML, перечисленных выше, либо вы можете отсканировать эти ключевые слова в качестве первого некомментированные слова в заявлении. Это охватывает подавляющее большинство практических случаев. То, что вы делаете, если у вас есть одна строка с несколькими операторами (возможно, разных типов), это решение, которое вы должны будете принять самостоятельно. В любом случае, не все СУБД допускают это.