日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle删除表数据带条件,Oracle删除表数据

發(fā)布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle删除表数据带条件,Oracle删除表数据 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在本教程中將學(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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。