MySQL – Delete Rows in Table
The DELETE
statement in MySQL is used to remove rows from a table. You can delete specific rows based on conditions or, if necessary, delete all rows in a table.
This tutorial will guide you through the steps to delete rows, starting from creating a database and inserting data for examples, followed by different ways to use DELETE
.
Step 1: Create a Database
To start, we need a database to store our table. Use the CREATE DATABASE
command to create a new database.
CREATE DATABASE school;
This command creates a database named school
. You can change the name if needed.
Step 2: Select the Database
After creating the database, use the USE
command to select it so we can create tables and work with it.
USE school;
Step 3: Create a Table
Now, let’s create a students
table with columns for storing student details.
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
rollno INT,
age INT,
class VARCHAR(10)
);
This command creates a students
table with columns for ID, name, roll number, age, and class.
Step 4: Insert Data into the Table
Next, we insert some sample data into the students
table to use in our SELECT
examples.
INSERT INTO students (name, rollno, age, class) VALUES ('Arjun', 14, 20, '10A');
INSERT INTO students (name, rollno, age, class) VALUES ('Raja', 15, 21, '10B');
INSERT INTO students (name, rollno, age, class) VALUES ('Prasanth', 16, 22, '10A');
INSERT INTO students (name, rollno, age, class) VALUES ('Hussain', 17, 23, '10C');
INSERT INTO students (name, rollno, age, class) VALUES ('Sai', 18, 20, '10B');
INSERT INTO students (name, rollno, age, class) VALUES ('Pranathi', 19, 21, '10A');
These commands insert six rows of data into the students
table with details for each student.
Step 5: Delete Rows from the Table
Now that we have data in the table, we can use the DELETE
statement to remove rows. Here are different ways to use DELETE
in MySQL:
Example 1: Delete a Specific Row
To delete a specific row, use the DELETE
statement with a WHERE
clause to specify the condition. For example, to delete the student with rollno
14:
DELETE FROM students
WHERE rollno = 14;
This command deletes the row where rollno
is 14, removing the student “Arjun” from the table.
Example 2: Delete Multiple Rows Based on a Condition
To delete multiple rows, specify a condition that matches several records. For example, to delete all students with an age
of 20:
DELETE FROM students
WHERE age = 20;
This command deletes all rows where age
is 20, which will remove both “Sai” and any other students with that age.
Example 3: Delete All Rows in a Table (Use with Caution)
If you need to delete all rows in a table, use the DELETE
statement without a WHERE
clause. Be careful, as this will remove all data from the table.
DELETE FROM students;
This command deletes all rows in the students
table. The table structure remains, but it will be empty.
Example 4: Truncate Table to Delete All Rows Quickly
The TRUNCATE
statement is an alternative to DELETE
for removing all rows. It is faster and automatically resets any auto-increment columns.
TRUNCATE TABLE students;
This command removes all rows from the students
table and resets the auto-increment counter. Note that TRUNCATE
cannot be used with a WHERE
clause and is typically faster than DELETE
.
Conclusion
In MySQL, the DELETE
statement is a powerful tool for removing rows from a table based on specific conditions. Use it carefully, especially when deleting multiple or all rows, to prevent accidental data loss. For quickly removing all rows, consider using the TRUNCATE
statement, which resets the table while retaining its structure.