Question: why delete is dml and truncate is ddl?
Answer: A simple practical explaination can be : Truncate reinitializes the identity by making changes in data definition therefore it is DDL, whereas Delete only delete the records from the table and doesn't make any changes in its Definition that's why it is DML.