Deleting Data with SQL

The DELETE statement in SQL is used to remove rows from a table. It is a powerful command that should be used with caution, as deleted data cannot be easily recovered without proper backups.

Basic DELETE Syntax

The simplest form of the DELETE statement removes all rows from a table:

DELETE FROM table_name;

Caution: This command will permanently remove all records from the specified table. Always ensure you have a backup before executing such a command.

Deleting Specific Rows

To delete specific rows, you use the WHERE clause to specify criteria for which rows to remove. This is the most common and safest way to use the DELETE statement.

DELETE FROM table_name
WHERE condition;

The condition specifies which rows will be deleted. If the condition evaluates to true for a row, that row will be deleted.

Example: Deleting a Single Record

Suppose you have a table named Customers and you want to delete the customer with CustomerID equal to 101:

DELETE FROM Customers
WHERE CustomerID = 101;

Example: Deleting Multiple Records

To delete all customers who are located in 'London':

DELETE FROM Customers
WHERE City = 'London';

Example: Deleting Records Based on Multiple Conditions

To delete customers from 'Paris' whose CustomerID is less than 50:

DELETE FROM Customers
WHERE City = 'Paris' AND CustomerID < 50;

Using Subqueries in DELETE

You can also use subqueries within the WHERE clause to specify complex deletion criteria.

Example: Deleting Records Based on Another Table

Suppose you want to delete all orders from the Orders table for customers who no longer exist in the Customers table (e.g., due to a mass deletion of inactive customers).

DELETE FROM Orders
WHERE CustomerID IN (SELECT CustomerID FROM InactiveCustomers);

Important Considerations

Note: The exact syntax and behavior might vary slightly depending on the specific SQL database system you are using (e.g., SQL Server, MySQL, PostgreSQL, Oracle).