MySQL | DELETE
Start your free 7-days trial now!
MySQL's DELETE statement is used to delete existing records in a table.
You need the DELETE privilege on a table to delete records from it.
Syntax
DELETE FROM table_nameWHERE condition;
Examples
Consider the following table about whether students hold a drivers license:
student_id | full_name | age | has_license |
|---|---|---|---|
1 | Sky Towner | 17 | 0 |
2 | Ben Davis | 19 | 1 |
3 | Travis Apple | 18 | 0 |
4 | Arthur David | 16 | 0 |
5 | Benjamin Town | 17 | 1 |
The above sample table can be created using the code here.
Deleting a single record
To delete the record for 'Ben Davis' as he has now left the school:
DELETE FROM drivers_licenseWHERE student_id = 2;
Query OK, 1 row affected (0.01 sec)
We can see that 'Ben Davis' has now been removed from drivers_license table:
SELECT *FROM drivers_license;
+------------+---------------+------+-------------+| student_id | full_name | age | has_license |+------------+---------------+------+-------------+| 1 | Sky Towner | 18 | 0 || 3 | Travis Apple | 18 | 0 || 4 | Arthur David | 16 | 0 || 5 | Benjamin Town | 17 | 1 |+------------+---------------+------+-------------+
Take care whenever you are performing DELETE on your table. If we forget to add the WHERE clause, all the records in the table will be deleted.
DELETE FROM drivers_license;
SELECT *FROM drivers_license;
Empty set (0.01 sec)
Deleting multiple records
Consider the following table about whether students hold a drivers license:
student_id | full_name | age | has_license |
|---|---|---|---|
1 | Sky Towner | 17 | 0 |
2 | Ben Davis | 19 | 1 |
3 | Travis Apple | 18 | 0 |
4 | Arthur David | 16 | 0 |
5 | Benjamin Town | 17 | 1 |
To delete records for students with student_id 1, 2 or 3:
DELETE FROM drivers_licenseWHERE student_id IN (1, 2, 3);
SELECT *FROM drivers_license;
+------------+---------------+------+-------------+| student_id | full_name | age | has_license |+------------+---------------+------+-------------+| 4 | Arthur David | 16 | 0 || 5 | Benjamin Town | 17 | 1 |+------------+---------------+------+-------------+
Before using the DELETE statement, perform a SELECT statement with the same conditions to see what exactly you will be deleting. Moreover, whenever you are performing any large operation with your data, make sure to back it up first!