====== What are the difference between DDL, DML and DCL commands? ====== ==== DDL ==== Data Definition Language statements are used to define the database structure or schema: * CREATE - to create objects in the database * ALTER - alters the structure of the database * DROP - delete objects from the database * TRUNCATE - remove all records from a table, including all spaces allocated for the records are removed * COMMENT - add comments to the data dictionary * RENAME - rename an object ==== DML ==== Data Manipulation Language statements are used for managing data within schema objects: * SELECT - retrieve data from the a database * INSERT - insert data into a table * UPDATE - updates existing data within a table * DELETE - deletes all records from a table, the space for the records remain * MERGE - UPSERT operation (insert or update) * CALL - call a PL/SQL or Java subprogram * EXPLAIN PLAN - explain access path to data * LOCK TABLE - control concurrency ==== DCL ==== Data Control Language statements: * GRANT - gives user's access privileges to database * REVOKE - withdraw access privileges given with the GRANT command ==== TCL ==== Transaction Control statements are used to manage the changes made by DML statements. It allows statements to be grouped together into logical transactions. * COMMIT - save work done * SAVEPOINT - identify a point in a transaction to which you can later roll back * ROLLBACK - restore database to original since the last COMMIT * SET TRANSACTION - Change transaction options like isolation level and what rollback segment to use