oracle删除表数据带条件,Oracle删除表数据
在本教程中將學(xué)習(xí)如何使用Oracle DELETE語句從表中刪除一行或多行數(shù)據(jù)記錄。
要從表中刪除一行或多行,請按如下所示使用Oracle DELETE語句:
DELETE
FROM
table_name
WHERE
condition;
在這個語句中,
首先,指定要從中刪除數(shù)據(jù)的表的名稱。
其次,通過使用WHERE子句中的條件指定應(yīng)該刪除哪些行。如果省略了WHERE子句,則Oracle DELETE語句將從表中刪除所有行。
請注意,使用TRUNCATE TABLE語句刪除大型表中的所有行會更快更高效。
Oracle DELETE示例
為了演示目的,這里創(chuàng)建一個名為sales的新表,其中包含所有銷售訂單數(shù)據(jù):
DROP TABLE sales;
CREATE TABLE sales AS
SELECT
order_id,
item_id,
product_id,
quantity,
unit_price,
status,
order_date,
salesman_id
FROM
orders
INNER JOIN order_items
USING(order_id);
此語句將數(shù)據(jù)從示例數(shù)據(jù)庫中的orders和order_items表復(fù)制到創(chuàng)建的sales表中。
1. Oracle DELETE - 從表中刪除一行
以下語句刪除了一個訂單號為1,項目號為1的行記錄:
DELETE
FROM
sales
WHERE
order_id = 1
AND item_id = 1;
執(zhí)行上面語句,Oracle返回了以下消息:
1 行已刪除。
2. Oracle DELETE - 從表中刪除多行
以下語句刪除了訂單號為1的所有行:
DELETE
FROM
sales
WHERE
order_id = 1;
執(zhí)行上面語句,Oracle顯示了以下消息:
12 行已刪除。
3. Oracle DELETE - 刪除表中的所有行
以下示例刪除sales表中的所有行:
DELETE FROM sales;
執(zhí)行上面語句,Oracle顯示了以下消息:
625 行已刪除。
4. Oracle刪除 - 級聯(lián)刪除
在現(xiàn)實應(yīng)用中,經(jīng)常從與其他表中的行具有外鍵關(guān)系的表中來刪除行記錄。
例如,想要從orders表中刪除id為1的銷售訂單,并從order_items表中刪除與訂單id是1關(guān)聯(lián)的所有行項目。 通常可以發(fā)出兩個DELETE語句,如下所示:
-- 第一條
DELETE FROM
orders
WHERE
order_id = 1;
-- 第二條
DELETE FROM
order_items
WHERE
order_id = 1;
COMMIT WORK;
請注意,COMMIT WORK語句確保兩個DELETE語句以全部或全部方式執(zhí)行,以防第一條語句成功,但第二個DELETE語句失敗時在order_items表中的孤行。
但是,如果知道如何正確設(shè)置表的約束,那么這是不必要的。
在這種情況下,當創(chuàng)建order_items表時,可以使用DELETE CASCADE選項定義一個外鍵約束,如下所示:
CREATE TABLE order_items
(
order_id NUMBER( 12, 0 ) ,
-- other columns
-- ...
CONSTRAINT fk_order_items_orders
FOREIGN KEY( order_id )
REFERENCES orders( order_id )
ON DELETE CASCADE
);
通過這樣做,每當從orders表中刪除一行時,例如:
DELETE
FROM
orders
WHERE
order_id = 1;
order_items表中order_id為1的所有行也被數(shù)據(jù)庫系統(tǒng)自動刪除。
在本教程中,您已學(xué)習(xí)如何使用Oracle DELETE語句來刪除指定表中行記錄。
¥ 我要打賞
糾錯/補充
收藏
加QQ群啦,易百教程官方技術(shù)學(xué)習(xí)群
注意:建議每個人選自己的技術(shù)方向加群,同一個QQ最多限加 3 個群。
總結(jié)
以上是生活随笔為你收集整理的oracle删除表数据带条件,Oracle删除表数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win下连编socket时[Linker
- 下一篇: 华为HCNE考试110个知识点