TCL Commands in SQL

TCL-feature-image.jpg

TCL commands in SQL are used to manage transactions and control changes made by DML statements like INSERT, UPDATE, and DELETE. These commands help ensure that multiple operations are executed safely and consistently as a single unit. In this blog, you will learn about the most commonly used TCL commands in SQL, understand their importance, and see how they help maintain data integrity with examples in detail.

Table of Contents:

What is Transaction Control Language (TCL) in SQL?

What is Transaction Control Language (TCL) in SQL?

Transaction Control Language (TCL) in SQL allows users to manage changes made by DML (Data Manipulation Language) commands and control whether those changes are committed or rolled back in the database. For example, INSERT, UPDATE, and DELETE commands alter the database state to add or remove records as part of a transaction. TCL enables you to manage the outcomes of any transactions attempted in the database.

TCL can be beneficial in ensuring that transactions are accurate and reliable. You can use TCL to commit (save) the changes to the database, roll back (undo) changes, and create savepoints (temporary points in the transaction).

Master SQL & Elevate Your Career
Get lifetime access to expert-led lessons, real-world projects, and career-ready skills.
quiz-icon

Importance of TCL in SQL

  • It ensures that all related operations are completed or not executed at all.
  •  It allows users to save or undo changes as needed.
  • It protects data from errors or partial updates.
  • It maintains the consistency and integrity of the database.

TCL is especially useful in real-world scenarios when we have to make several changes to the database at once. Take the example of transferring money from one bank account to another. The money needs to be deducted from the first account and deposited into the second account simultaneously. TCL ensures that both operations either happen or don’t happen at all.

Key Characteristics of TCL Commands

TCL commands have the following key characteristics:

  1. TCL commands are only executed after DML commands, such as INSERT, UPDATE, or DELETE.
  2. TCL commands do not work with DDL commands, such as CREATE or DROP.
  3. TCL commands provide control over database transactions.
  4. TCL ensures data safety during the transactions.
  5. TCL is important in a multi-user environment.

Types of TCL Commands in SQL

Types of TCL Commands in SQL

There are three main TCL commands in SQL:

  1. COMMIT
  2. ROLLBACK
  3. SAVEPOINT

Note: We will be using the following example to understand the types of TCL commands.

Example: 

-- Creating the table
CREATE TABLE students (
  id INT,
  name VARCHAR(50),
  marks INT
);
-- Inserting the data
INSERT INTO students VALUES (1, 'Amit', 80);
INSERT INTO students VALUES (2, 'Priya', 90);
UPDATE students SET marks = 85 WHERE name = 'Amit';
-- Displaying the data
SELECT * FROM students;

Output:

Creation and insertion in a table

This is how the table looks after creating and inserting the data into it.

Now, once our table is ready, we will understand the types of TCL commands in SQL.

1. COMMIT Command in SQL

The COMMIT command in SQL is used to save all changes made by the current transaction into the database. Once committed, the changes become permanent.

Syntax:

COMMIT;

Example:

INSERT INTO students VALUES (3, 'Rahul', 75);
COMMIT;
-- Displaying the data
SELECT * FROM students;

Output:

Commit command

Explanation: Once the COMMIT command is executed, the inserted data will be saved permanently in the database.

2. ROLLBACK Command in SQL

The ROLLBACK command undoes all changes made in the current transaction, unless a SAVEPOINT has been used.

Syntax:

ROLLBACK;

Example:

START TRANSACTION;
DELETE FROM students WHERE name = 'Priya';
ROLLBACK;

Output:

rollback

Explanation: Here, this command cancels the delete operation, and the record of ‘Priya’ will remain in the table.

Get 100% Hike!

Master Most in Demand Skills Now!

3. SAVEPOINT Command in SQL

The SAVEPOINT command is used to mark a specific point within a transaction, allowing you to roll back to that point without affecting the entire transaction.

Syntax:

SAVEPOINT savepoint_name;

Example:

SAVEPOINT sp1;
UPDATE students SET marks = 70 WHERE name = 'Rahul';
ROLLBACK TO sp1;

Output:

Savepoint command

Explanation: Here, this will undo all the updates made after the savepoint sp1.

How TCL Commands Operate in SQL?

TCL (Transaction Control Language) commands work by controlling transactions in a database. A transaction is a set of SQL instructions that need to be treated as a whole. With TCL commands, the results from either all of the operations are saved, or none of them are saved if something fails.

Steps for using TCL commands in SQL:

Step 1: Start the transaction using START TRANSACTION.

Step 2: Perform your DML operations like INSERT, UPDATE, or DELETE.

Step 3: Set a savepoint using SAVEPOINT savepoint_name (optional).

Step 4: If everything is successful, use COMMIT to save the changes.

Step 5: If there’s an issue, use ROLLBACK to undo all changes.

Step 6: To undo part of the transaction, use ROLLBACK TO savepoint_name.

This process helps maintain data consistency and accuracy during operations. It is especially important in production systems such as banking, inventory management, order processing, and many other applications.

Difference Between TCL, DML, DDL, and DCL Commands in SQL

Feature TCL DML DDL DCL
Full Form Transaction Control Language Data Manipulation Language Data Definition Language Data Control Language
Purpose Manages the saving or undoing of data changes Handles data operations within tables Defines or modifies database objects and structures Controls access permissions and security
Affects Data or Structure Controls how and when data changes are saved or undone Directly modifies the data within tables Modifies the structure of database objects like tables or schemas Manages user access and data security rules
Examples COMMIT, ROLLBACK, SAVEPOINT INSERT, UPDATE, DELETE, SELECT CREATE, ALTER, DROP, TRUNCATE GRANT, REVOKE

Common Mistakes While Using TCL Commands in SQL

Let’s explore some common errors that people make with TCL commands:

  • Not starting a transaction: Forgetting to write the START TRANSACTION command before using SAVEPOINT or ROLLBACK TO.
  • Auto-commit ON: In MySQL, if auto-commit is turned on, the actions of each DML command will be saved immediately. TCL commands like ROLLBACK will not undo DML operations unless auto-commit is turned OFF.
  • Wrong savepoint: Misspelling the savepoint name, or trying to ROLLBACK TO a savepoint that was never established.
  • Mixing command types: DDL commands like CREATE, DROP, or ALTER automatically perform a commit. Therefore, a COMMIT or ROLLBACK issued after them has no effect on those operations.

Best Practices for Using TCL Commands Effectively

To properly use TCL commands and avoid situations that create problems, always consider these best practices:

1. Always begin a transaction: Before starting to use TCL commands, always start with START TRANSACTION.

2. Turn off auto-commit mode: In MySQL, when auto-commit is enabled, each DML command is committed immediately. ROLLBACK has no effect until the auto-commit is disabled.

3. Use savepoints when there are many transactions: When multiple operations are involved, create SAVEPOINTS at strategic points. This way, you can roll back only parts of the changes if required.

4. Do not commit until you are satisfied: Make sure you are satisfied with the results of your operations before you use COMMIT. If you commit, the operations cannot be undone.

5. Avoid mixing TCL with DDL commands: Commands like CREATE, DROP, or ALTER trigger an automatic commit, so ROLLBACK will not undo their effects. DDL operations are handled differently from TCL.

6. Test first before applying changes: Practice using TCL commands with test data, and be sure how they work before applying them to your actual data.

7. Make use of comments: Add comments in your SQL scripts indicating what each transaction is for. This helps when reviewing or debugging in the future.

Learn SQL for Free – Start Today!
No sign-up fees. Just pure, practical SQL skills to kickstart your data journey. Beginner-friendly and 100% free.
quiz-icon

Conclusion

TCL commands in SQL are vital for handling transactions effectively and maintaining data integrity. They give users the ability to control how and when changes made by DML operations are saved or reversed. With commands like COMMIT, ROLLBACK, and SAVEPOINT, developers can ensure that all operations either complete successfully or are safely undone if something goes wrong. This control makes TCL commands in SQL essential for building reliable systems in areas like banking, inventory, and order processing.

Take your skills to the next level by enrolling in the SQL Course today and gaining hands-on experience. Also, prepare for job interviews with SQL Interview Questions prepared by industry experts.

TCL Commands in SQL – FAQs

Q1. What is TCL in SQL?

TCL stands for Transaction Control Language, which is used to manage transactions in a database with the help of commands like COMMIT, ROLLBACK, and SAVEPOINT.

Q2. What does the COMMIT command do?

The COMMIT command saves all changes made in the current transaction permanently in the database.

Q3. Can we undo a COMMIT in SQL?

No, once a COMMIT is done, the changes cannot be undone.

Q4. When should we use SAVEPOINT?

Use SAVEPOINT when you want to mark a point in a transaction that you might want to roll back to later.

Q5. Do TCL commands work with DDL operations?

No, TCL commands do not work with DDL operations like CREATE or DROP because those are auto-committed.

About the Author

Data Engineer, Tata Steel Nederland

As a skilled Data Engineer, Sahil excels in SQL, NoSQL databases, Business Intelligence, and database management. He has contributed immensely to projects at companies like Bajaj and Tata. With a strong expertise in data engineering, he has architected numerous solutions for data pipelines, analytics, and software integration, driving insights and innovation.

business intelligence professional