在Oracle數據庫中,DELETE
語句用于從表中刪除行。以下是DELETE
語句的基本語法和一些用法示例:
DELETE FROM table_name
WHERE condition;
table_name
:要從中刪除行的表的名稱。WHERE
:可選條件子句,用于指定應刪除哪些行。如果省略WHERE
子句,將刪除表中的所有行。DELETE FROM employees;
假設employees
表包含以下列:employee_id
,first_name
,last_name
,salary
。如果你想刪除所有薪水低于5000的員工,可以使用以下語句:
DELETE FROM employees
WHERE salary < 5000;
你還可以使用子查詢來刪除滿足特定條件的行。例如,如果你想刪除department_id
為10的所有員工,可以使用以下語句:
DELETE FROM employees
WHERE department_id = (SELECT department_id FROM departments WHERE department_name = 'Sales');
在某些情況下,你可能需要先刪除一行,然后插入一行具有相同主鍵值的新行。在這種情況下,如果主鍵是自增列,Oracle會自動為新插入的行分配自增值,而無需顯式指定。例如:
-- 刪除員工
DELETE FROM employees
WHERE employee_id = 101;
-- 插入新員工(假設employee_id是自增列)
INSERT INTO employees (employee_id, first_name, last_name, department_id)
VALUES (101, 'John', 'Doe', 5);
在這個例子中,即使employee_id
為101的員工已經被刪除,新插入的員工的employee_id
仍然會被自動設置為101。
請注意,在執行DELETE
操作之前,建議先備份數據或先執行SELECT
語句以確認要刪除的行。