The DELETE FROM statement in SQL is used to remove records from a table.
Please note that the DELETE FROM command cannot delete any rows of data that would violate FOREIGN KEY or other constraints .
The syntax for the DELETE FROM statement is as follows:
The WHERE clause is important here. Without specifying a condition, all records from the table will be deleted.
"Condition" can be simple (such as "Sales > 500") or complex (such as from the result of a subquery).
Two examples of how to use the DELETE FROM statement are shown below.
We use the following table as the starting point.
Table Store_Information
We decide not to keep any information on Los Angeles in this table. To accomplish this, we type the following SQL:
Now the table becomes,
Table Store_Information
In Example 1, the criteria we use to determine which rows to delete is quite simple. We can also use a more complex condition. Below is an example where we use a subquery as the condition. Assume we have the following two tables:
Table Store_Information
Table Geography
We want to remove data for all stores in the East region from Store_Information (assuming that a store is either in the East region or the West region—it cannot be in more than one region). We use the following SQL statement to accomplish this:
Upon execution, the Store_Information table becomes,
If we leave out the WHERE clause in a DELETE FROM command, we will delete all rows from the table. Most times, this is not what we intend to do. To prevent this, it is a best practice in database management to always run the corresponding SELECT statement first to make sure the rows selected are the ones we intend to remove from the table. This can be done by replacing "DELETE" with "SELECT *".
Table Clients
1. Which of the following SQL statements is valid? (There may be more than one answer)
a) DELETE * FROM Clients WHERE State = 'CO';
b) DELETE FROM Clients WHERE State = 'CO';
c) DELETE FROM Clients HAVING State = 'CO';
d) DELETE FROM Clients WHERE Customer_ID < 10;
2. How many rows are deleted after the following SQL statement is executed?
DELETE FROM Clients WHERE State = 'CO';
3. What is the effect of the following SQL?
DELETE FROM Clients WHERE 1 = 1;
1. b), d)
2. 1 row.
3. All rows are deleted from the table. This is because the condition in the WHERE clause is true for all rows.
Our website is made possible by displaying ads to our visitors. Please supporting us by whitelisting our website.