oracle delete 語句用于從表中刪除記錄,語法為:delete from table_name where condition。條件可選,限制刪除記錄。支持級聯刪除,即刪除父表記錄時,也可刪除子表記錄。使用時需謹慎,因刪除操作不可逆。
Oracle DELETE 語句
DELETE 語句用于從 Oracle 數據庫表中刪除記錄。其基本語法如下:
<code>DELETE FROM table_name WHERE condition;</code>
登錄后復制
其中:
table_name 是要從中刪除記錄的表名。
condition 是可選的,用于限制要刪除的記錄。如果不指定 condition,則將刪除表中的所有記錄。
示例:
刪除名為 “customers” 表中所有記錄:
<code>DELETE FROM customers;</code>
登錄后復制
刪除 “customers” 表中 customer_id 為 10 的記錄:
<code>DELETE FROM customers WHERE customer_id = 10;</code>
登錄后復制
刪除多個條件的記錄:
可以使用邏輯運算符(AND、OR)刪除滿足多個條件的記錄。
示例:
刪除 “customers” 表中城市為 “New York” 且年齡大于 30 的記錄:
<code>DELETE FROM customers WHERE city = 'New York' AND age > 30;</code>
登錄后復制
級聯刪除:
當表之間存在外鍵約束時,刪除父表中的記錄可能會導致子表中的記錄也被刪除。這被稱為級聯刪除。
要啟用級聯刪除,必須在創建外鍵約束時指定 ON DELETE CASCADE 選項。
示例:
考慮以下表結構:
<code>CREATE TABLE orders ( order_id NUMBER PRIMARY KEY, product_id NUMBER, CONSTRAINT FK_order_product FOREIGN KEY (product_id) REFERENCES products (product_id) ON DELETE CASCADE );</code>
登錄后復制
如果從 “products” 表中刪除產品,則也會刪除 “orders” 表中引用該產品的所有訂單。
注意事項:
使用 DELETE 語句時要小心,因為它是一種不可逆的操作。刪除的記錄無法恢復。
在刪除大量記錄之前,請先使用 SELECT 語句驗證刪除條件。
使用事務控制語句(如 COMMIT 和 ROLLBACK)來控制對數據庫的更改。