- The `DELETE` statement in MySQL Workbench is used to remove one or more rows from a table based on specified conditions. It's a powerful tool for removing unwanted or obsolete data from a database.
- Basic Syntax:
DELETE FROM table_name WHERE condition;
- Consider a "employees" table with the following data:
CREATE TABLE employees (
employee_id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
salary DECIMAL(10, 2)
);
INSERT INTO employees (employee_id, first_name, last_name, salary)
VALUES
(1, 'John', 'Smith', 50000.00),
(2, 'Jane', 'Doe', 45000.00),
(3, 'Michael', 'Johnson', 60000.00),
(4, 'Emily', 'Brown', 52000.00),
(5, 'David', 'Lee', 48000.00);
- Deleting a Specific Row: To delete a specific row based on a condition:
DELETE FROM employees WHERE employee_id = 2;
- This query deletes the employee with "employee_id" 2.
- Deleting Multiple Rows: To delete multiple rows that meet a condition:
DELETE FROM employees WHERE salary < 48000.00;
- This query deletes employees with a salary less than 48000.00.
- Deleting All Rows: Be cautious when omitting the `WHERE` clause, as it will delete all rows:
DELETE FROM employees;
- This query deletes all rows from the "employees" table.
- Deleting with Subquery: You can use a subquery to delete based on values from another table:
DELETE FROM employees WHERE department = 'IT';
- This query deletes employees in the 'IT' department.
- Limiting the Number of Deleted Rows: You can use the `LIMIT` clause to limit the number of rows deleted:
DELETE FROM employees WHERE salary > 55000.00 LIMIT 1;
- This query deletes the first employee with a salary greater than 55000.00.
- Deleting with Joins: You can use a `DELETE` query with a `JOIN` to delete records from multiple related tables:
DELETE employees, departments
FROM employees
JOIN departments ON employees.department_id = departments.department_id
WHERE departments.department_name = 'Sales';
- This query deletes employees and their corresponding departments in the 'Sales' department.
- You can delete multiple employees based on their employee IDs by using the IN operator in the WHERE clause of the DELETE query. The IN operator allows you to specify a list of values for a column, and the DELETE query will remove the rows that match any of the specified values.
DELETE FROM employees WHERE employee_id IN (2, 4, 5);
- In this example, the query will delete the employees with employee IDs 2, 4, and 5 from the "employees" table.
- Make sure to adjust the list of employee IDs inside the IN parentheses to match the IDs of the employees you want to delete. Always double-check before executing a DELETE query, as it can have a significant impact on your data. Consider taking backups or testing in a controlled environment before performing such operations in a production database.
- The `DELETE` query can significantly affect your data, so use it carefully. Always provide the appropriate `WHERE` clause to ensure you're targeting the correct rows for deletion. Additionally, consider taking backups before performing bulk delete operations to avoid data loss.
No comments:
Post a Comment