Oracle刪除列

🏷️ 365bet网上娱乐网址 📅 2026-01-03 06:31:19 👤 admin 👁️ 530 ❤️ 87
Oracle刪除列

在本教學中,將學習如何使用Oracle DROP COLUMN語句從表中刪除一個或多個列。

Oracle使用SET UNUSED COLUMN子句刪除列從大表中刪除列的過程可能耗費時間和資源。 因此,通常使用ALTER TABLE SET UNUSED COLUMN語句來邏輯刪除列,如下所示:

ALTER TABLE table_name

SET UNUSED COLUMN column_name;

當執行了該語句,該列就不再可見。在非高峰時段,可以使用以下語句在物理上刪除未使用的列:

ALTER TABLE table_name

DROP UNUSED COLUMNS;

如果要減少累積的撤銷日誌量,可以使用CHECKPOINT選項,該選項在指定的行數已被處理後強制檢查點。

ALTER TABLE table_name

DROP UNUSED COLUMNS CHECKPOINT 250;

Oracle SET UNUSED COLUMN示例下麵來創建一個名為suppliers的示例表:

-- 12c語法

CREATE TABLE suppliers (

supplier_id NUMBER GENERATED BY DEFAULT AS IDENTITY,

contact_name VARCHAR2(255) NOT NULL,

company_name VARCHAR2(255),

phone VARCHAR2(100) NOT NULL,

email VARCHAR2(255) NOT NULL,

fax VARCHAR2(100) NOT NULL,

PRIMARY KEY(supplier_id)

);

以下語句將示例數據插入到suppliers表中:

INSERT INTO suppliers (contact_name,company_name,phone,email,fax)

VALUES ('Solomon F. Zamora',

'Elit LLP',

'1-245-616-6781',

'enim.condimentum@pellentesqueeget.org',

'1-593-653-6421');

INSERT INTO suppliers (contact_name,company_name,phone,email,fax)

VALUES ('Haley Franco',

'Ante Vivamus Limited',

'1-754-597-2827',

'Nunc@ac.com',

'1-167-362-9592');

INSERT INTO suppliers (contact_name,company_name,phone,email,fax)

VALUES ('Gail X. Tyson',

'Vulputate Velit Eu Inc.',

'1-331-448-8406',

'sem@gravidasit.edu',

'1-886-556-8494');

INSERT INTO suppliers (contact_name,company_name,phone,email,fax)

VALUES ('Alec N. Strickland',

'In At Associates',

'1-467-132-4527',

'Lorem@sedtortor.com',

'1-735-818-0914');

INSERT INTO suppliers (contact_name,company_name,phone,email,fax)

VALUES ('Britanni Holt',

'Magna Cras Convallis Corp.',

'1-842-554-5106',

'varius@seddictumeleifend.ca',

'1-381-532-1632');

INSERT INTO suppliers (contact_name,company_name,phone,email,fax)

VALUES ('Audra O. Ingram',

'Commodo LLP',

'1-934-490-5667',

'dictum.augue.malesuada@idmagnaet.net',

'1-225-217-4699');

INSERT INTO suppliers (contact_name,company_name,phone,email,fax)

VALUES ('Cody K. Chapman',

'Tempor Arcu Inc.',

'1-349-383-6623',

'non.arcu.Vivamus@rutrumnon.co.uk',

'1-824-229-3521');

INSERT INTO suppliers (contact_name,company_name,phone,email,fax)

VALUES ('Tobias Merritt',

'Amet Risus Company',

'1-457-675-2547',

'felis@ut.net',

'1-404-101-9940');

INSERT INTO suppliers (contact_name,company_name,phone,email,fax)

VALUES ('Ryder G. Vega',

'Massa LLC',

'1-655-465-4319',

'dui.nec@convalliserateget.co.uk',

'1-282-381-9477');

INSERT INTO suppliers (contact_name,company_name,phone,email,fax)

VALUES ('Arthur Woods',

'Donec Elementum Lorem Foundation',

'1-406-810-9583',

'eros.turpis.non@anteMaecenasmi.co.uk',

'1-462-765-8157');

INSERT INTO suppliers (contact_name,company_name,phone,email,fax)

VALUES ('Lael Snider',

'Ultricies Adipiscing Enim Corporation',

'1-252-634-4780',

'natoque.penatibus@in.com',

'1-986-508-6373');

要從suppliers表中邏輯刪除fax列,請使用以下語句:

ALTER TABLE suppliers

SET UNUSED COLUMN fax;

從現在開始,就再不能訪問fax列了,如下查詢所示 -

SELECT

*

FROM

suppliers;

執行上面語句,結果如下 -

可以從DBA_UNUSED_COL_TABS視圖查看每個表中未使用的列的數量:

SELECT

*

FROM

DBA_UNUSED_COL_TABS;

如上所見,suppliers表有一個未使用的列。要從suppliers表中刪除所有未使用的列,請使用以下語句:

ALTER TABLE suppliers

DROP UNUSED COLUMNS;

再次查詢DBA_UNUSED_COL_TABS視圖中的數據,將得到一個空的結果集。

Oracle使用DROP COLUMN子句刪除列要從物理表中刪除列,請使用以下語句:

ALTER TABLE table_name

DROP COLUMN column_name;

要刪除多個列,請使用以下語句:

ALTER TABLE table_name

DROP (

column_name_1,

column_name_2

);

Oracle DROP COLUMN子句的例子以下語句從suppliers表中刪除email和fax列:

ALTER TABLE

suppliers

DROP (

email,

phone

);

在本教學中,您學習了如何使用Oracle drop column語句從表中刪除一列或多列。

上一篇:

Oracle刪除表

下一篇:

Oracle修改列定義

相关内容

揭秘中国海关2025年招聘新规:待遇、福利与职位解析
365bet网上娱乐网址

揭秘中国海关2025年招聘新规:待遇、福利与职位解析

📅 10-23 👁️ 1069
世界杯没荷兰 世界杯为什么没有荷兰
和365差不多的平台有哪些

世界杯没荷兰 世界杯为什么没有荷兰

📅 07-26 👁️ 2228
网线插座怎么接线 网线插座接法图解8根
365bet365用址

网线插座怎么接线 网线插座接法图解8根

📅 06-28 👁️ 3105