bg_image
header

Transaction Control Language - TCL

Transaction Control Language (TCL) is a subset of SQL used to manage transactions in a database. A transaction is a logical unit of work that may consist of one or more SQL statements—typically INSERT, UPDATE, or DELETE—that should be executed together.

TCL provides commands to ensure that transactions are properly completed or rolled back in case of errors.

Main TCL Commands:

Command Description
COMMIT Saves all changes made in the current transaction permanently to the database.
ROLLBACK Undoes all changes made since the last COMMIT.
SAVEPOINT Creates a named point within a transaction that you can roll back to later.
ROLLBACK TO SAVEPOINT Reverts changes back to a specific savepoint.
SET TRANSACTION Defines characteristics for the current transaction (e.g., isolation level).
BEGIN;

UPDATE account SET balance = balance - 100 WHERE account_id = 1;
UPDATE account SET balance = balance + 100 WHERE account_id = 2;

COMMIT;

→ Both updates are completed together. If an error occurs, you could use ROLLBACK to cancel both operations.

Note:

TCL commands only work in database systems that support transactions (e.g., PostgreSQL, Oracle, or MySQL with InnoDB).


Data Control Language - DCL

Data Control Language (DCL) is a subset of SQL that focuses on managing access rights and permissions within a database. DCL commands are used to control who can do what in the database.

Main DCL Commands:

Command Description
GRANT Gives a user specific privileges (e.g., to read or modify data)
REVOKE Removes previously granted privileges from a user
GRANT SELECT, INSERT ON Customers TO User123;
REVOKE INSERT ON Customers FROM User123;

Common Privileges:

  • SELECT – Read data

  • INSERT – Add new data

  • UPDATE – Modify existing data

  • DELETE – Remove data

  • ALL – Grant all available privileges

Key Characteristics:

  • DCL handles security and access control in the database.

  • Typically used by a database administrator (DBA).

  • Permissions can be granted at the table, column, or database level.

  • DCL operations are often transaction-dependent, requiring a COMMIT to take effect.

Comparison with Other SQL Subsets:

  • DDL (Data Definition Language) – Defines the database structure (e.g., tables)

  • DML (Data Manipulation Language) – Works with the data itself (e.g., insert or update)

  • TCL (Transaction Control Language) – Manages transactions (COMMIT, ROLLBACK)

  • DCL (Data Control Language) – Manages permissions and user access