MySQL – Delete Query
MySQL DELETE Statement
If we want to delete a record from any MySQL table, then we can use the SQL command DELETE FROM. This statement is a part of Data Manipulation Language in SQL as it interacts with the data in a MySQL table rather than the structure.
DELETE statement can be used to delete multiple rows of a single table and records across multiple tables. However, in order to filter the records to be deleted, we can use the WHERE clause along with the DELETE statement.
We can use this command at the mysql> prompt as well as in any script like PHP, Node.js, Java, and Python.
Syntax
Following is the basic SQL syntax of the DELETE command to delete data from a MySQL table −
DELETE FROM table_name [WHERE Clause]
-
If the WHERE clause is not specified, then all the records will be deleted from the given MySQL table.
-
We can specify any condition using the WHERE clause.
-
We can delete records in a single table at a time.
The WHERE clause is very useful when you want to delete selected rows in a table.
Deleting Data from a MySQL Table
We use the MySQL DELETE query to delete records from a database table. However, we can delete single, multiple rows at once or even delete all records from a table in a single query. Let us discuss them one by one futher in this tutorial with appropriate examples.
Example
First of all, let us create a table named CUSTOMERS using the following query −
CREATE TABLE CUSTOMERS ( ID INT NOT NULL, NAME VARCHAR(20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25), SALARY DECIMAL (18, 2), PRIMARY KEY (ID) );
The following query inserts 7 records into the above created table −
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, ''Ramesh'', 32, ''Ahmedabad'', 2000.00 ), (2, ''Khilan'', 25, ''Delhi'', 1500.00 ), (3, ''Kaushik'', 23, ''Kota'', 2000.00 ), (4, ''Chaitali'', 25, ''Mumbai'', 6500.00 ), (5, ''Hardik'', 27, ''Bhopal'', 8500.00 ), (6, ''Komal'', 22, ''Hyderabad'', 4500.00 ), (7, ''Muffy'', 24, ''Indore'', 10000.00 );
Execute the below SELECT statement to retrieve all the records present in the CUSTOMERS table −
Select * From CUSTOMERS;
Following is the CUSTOMERS table −
ID | NAME | AGE | ADDRESS | SALARY |
---|---|---|---|---|
1 | Ramesh | 32 | Ahmedabad | 2000.00 |
2 | Khilan | 25 | Delhi | 1500.00 |
3 | Kaushik | 23 | Kota | 2000.00 |
4 | Chaitali | 25 | Mumbai | 6500.00 |
5 | Hardik | 27 | Bhopal | 8500.00 |
6 | Komal | 22 | Hyderabad | 4500.00 |
7 | Muffy | 24 | Indore | 10000.00 |
Now, let us delete a single record (ID = 1) from the CUSTOMERS table using the DELETE statement as follows −
DELETE FROM CUSTOMERS WHERE ID = 1;
Output
On executing the given query, the output is displayed as follows −
Query OK, 1 row affected (0.00 sec)
Verification
Execute the following query to verify whether the above record have been deleted or not −
Select * From CUSTOMERS;
As we can see in the output, the row with ID=1 has been deleted −
ID | NAME | AGE | ADDRESS | SALARY |
---|---|---|---|---|
2 | Khilan | 25 | Delhi | 1500.00 |
3 | Kaushik | 23 | Kota | 2000.00 |
4 | Chaitali | 25 | Mumbai | 6500.00 |
5 | Hardik | 27 | Bhopal | 8500.00 |
6 | Komal | 22 | Hyderabad | 4500.00 |
7 | Muffy | 24 | Indore | 10000.00 |
Deleting Multiple Rows
We can also delete multiple rows using the DELETE statement. For this, we just have to specify multiple conditions in the WHERE clause that are satisfied by all the records that are supposed to be deleted.
Example
Here, we are deleting records from previously created CUSTOMERS table whose ID is 2 and 3 −
DELETE FROM CUSTOMERS WHERE ID = 2 OR ID = 3;
Output
The output for the program above is produced as given below −
Query OK, 2 rows affected (0.01 sec)
Verification
Execute the following query to verify whether the above records have been deleted or not −
Select * From CUSTOMERS;
As we can see in the output, the row with ID values 2 and 3 are deleted −
ID | NAME | AGE | ADDRESS | SALARY |
---|---|---|---|---|
4 | Chaitali | 25 | Mumbai | 6500.00 |
5 | Hardik | 27 | Bhopal | 8500.00 |
6 | Komal | 22 | Hyderabad | 4500.00 |
7 | Muffy | 24 | Indore | 10000.00 |
Deleting All Rows
If we want to delete all records from a MySQL table, simply execute the DELETE statement without using the WHERE clause. Following is the syntax −
DELETE FROM table_name;
Example
The following query will delete all records from the CUSTOMERS table −
DELETE FROM CUSTOMERS;
Output
On executing the given program, the output is displayed as follows −
Query OK, 4 rows affected (0.01 sec)
Verification
Execute the following query to verify whether all the records from CUSTOMERS table have been deleted or not −
Select * From CUSTOMERS;
As we can see the output below, empty set has been returned i.e all the records have been deleted.
Empty set (0.00 sec)
Delete Query in MySQL Using a Client Program
Besides deleting records of a database table with a MySQL query, we can also use a client program to perform the DELETE operation.
Syntax
Following are the syntaxes of this operation in various programming languages −
To delete data in a database table through PHP program, we need to execute the DELETE statement using the mysqli function query() as follows −
$sql="DELETE FROM table_name [WHERE Clause]"; $mysqli->query($sql);
To delete data in a database table through Node.js program, we need to execute the DELETE statement using the query() function of the mysql2 library as follows −
sql = "DELETE FROM table_name [WHERE Clause]"; VALUES (value1, value2, value3,...valueN)" con.query(sql);
To delete data in a database table through Java program, we need to execute the DELETE statement using the JDBC function executeUpdate() as follows −
String sql="DELETE FROM table_name [WHERE Clause]"; statement.executeUpdate(sql);
To delete data in a database table through Python program, we need to execute the DELETE statement using the execute() function of the MySQL Connector/Python as follows −
delete_query = "DELETE FROM table_name [WHERE Clause]" cursorObj.execute(delete_query);
Example
Following are the programs −
$dbhost = ''localhost $dbuser = ''root $dbpass = ''root@123 $dbname = ''TUTORIALS $mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname); if($mysqli->connect_errno ) { printf("Connect failed: %s<br />", $mysqli->connect_error); exit(); } printf(''Connected successfully.<br />''); if ($mysqli->query(''DELETE FROM tutorials_tbl where tutorial_id = 4'')) { printf("Table tutorials_tbl record deleted successfully.<br />"); } if ($mysqli->errno) { printf("Could not delete record from table: %s<br />", $mysqli->error); } $sql = "SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl"; $result = $mysqli->query($sql); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { printf("Id: %s, Title: %s, Author: %s, Date: %d <br />", $row["tutorial_id"], $row["tutorial_title"], $row["tutorial_author"], $row["submission_date"]); } } else { printf(''No record found.<br />''); } mysqli_free_result($result); $mysqli->close();
Output
The output obtained is as follows −
Connected successfully. Table tutorials_tbl record deleted successfully. Id: 1, Title: MySQL Tutorial, Author: Mahesh, Date: 2021 Id: 2, Title: HTML Tutorial, Author: Mahesh, Date: 2021 Id: 3, Title: PHP Tutorial, Author: Mahesh, Date: 2021 Id: 5, Title: Apache Tutorial, Author: Suresh, Date: 2021
var mysql = require(''mysql2''); var con = mysql.createConnection({ host: "localhost", user: "root", password: "Nr5a0204@123" }); //Connecting to MySQL con.connect(function (err) { if (err) throw err; console.log("Connected!"); //Selecting a Database sql = "USE TUTORIALS" con.query(sql); //Updating a single record in the table sql = "DELETE FROM tutorials_tbl WHERE tutorial_id = 5;" con.query(sql); //Selecting records from table sql = "SELECT * FROM tutorials_tbl" con.query(sql, function (err, result) { if (err) throw err; console.log(result); }); });
Output
The output produced is as follows −
Connected! [ { tutorial_id: 1, tutorial_title: ''Learn PHP'', tutorial_author: ''John Paul'', submission_date: 2023-07-25T18:30:00.000Z }, { tutorial_id: 2, tutorial_title: ''Learn MySQL'', tutorial_author: ''Abdul S'', submission_date: 2021-03-27T18:30:00.000Z }, { tutorial_id: 3, tutorial_title: ''Learning Java'', tutorial_author: ''Sanjay'', submission_date: 2007-05-05T18:30:00.000Z }, { tutorial_id: 4, tutorial_title: ''Python Tutorial'', tutorial_author: ''Sasha Lee'', submission_date: 2016-09-03T18:30:00.000Z } ]
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class DeleteQuery { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/TUTORIALS"; String user = "root"; String password = "password"; ResultSet rs; try { Class.forName("com.mysql.cj.jdbc.Driver"); Connection con = DriverManager.getConnection(url, user, password); Statement st = con.createStatement(); //System.out.println("Database connected successfully...!"); String sql = "DELETE FROM tutorials_tbl WHERE tutorial_id = 6"; st.executeUpdate(sql); System.out.println("Delete query executed successfully..!"); String sql1 = "SELECT * FROM tutorials_tbl"; rs = st.executeQuery(sql1); System.out.println("Table records: "); while(rs.next()) { String tutorial_id = rs.getString("tutorial_id"); String tutorial_title = rs.getString("tutorial_title"); String tutorial_author = rs.getString("tutorial_author"); String submission_date = rs.getString("submission_date"); System.out.println("Id: " + tutorial_id + ", Title: " + tutorial_title + ", Author: " + tutorial_author + ", Submission_date: " + submission_date); } }catch(Exception e) { e.printStackTrace(); } } }
Output
The output obtained is as shown below −
Delete query executed successfully..! Table records: Id: 1, Title: Learn PHP, Author: John Paul, Submission_date: 2023-08-08 Id: 2, Title: Angular Java, Author: Abdul S, Submission_date: 2023-08-08 Id: 3, Title: Learning Java, Author: Sanjay, Submission_date: 2007-05-06 Id: 4, Title: Python Tutorial, Author: Sasha Lee, Submission_date: 2016-09-04 Id: 5, Title: Hadoop Tutorial, Author: Chris Welsh, Submission_date: 2023-08-08
import mysql.connector import datetime #establishing the connection connection = mysql.connector.connect( host=''localhost'', user=''root'', password=''password'', database=''tut'' ) #Creating a cursor object cursorObj = connection.cursor() delete_query = "DELETE FROM tutorials_tbl WHERE tutorial_id = 6" cursorObj.execute(delete_query) connection.commit() print("Row deleted successfully.") cursorObj.close() connection.close()
Output
Following is the output of the above code −
Row deleted successfully.