搜尋
首頁資料庫Oracleoracle怎麼修改表結構

oracle怎麼修改表結構

Jan 13, 2022 am 11:15 AM
oracle

在oracle中,可以使用「ALTER TABLE」語句來修改表結構,該語句可以透過增加或刪減列、更改原有列類型、重新命名列或表等方式來改變原有表的結構,語法「ALTER TABLE 表名[修改選項]」。 ALTER TABLE 表格名稱 [修改選項]

oracle怎麼修改表結構

#本教學操作環境:Windows7系統、Oracle 11g版、Dell G3電腦。

在oracle中,可以使用「ALTER TABLE」語句來修改表格結構。

ALTER TABLE 語句可以改變原始資料表的結構,例如增加或刪除資料列、變更原有列型別、重新命名資料列或資料表等。

ALTER TABLE 語句的語法:

ALTER TABLE 表名 [修改选项]

在上面的語句中,

  • 首先,指定要修改的表格名稱。

  • 其次,指出想在表名稱後面執行的修改操作。

ALTER TABLE語句可用於:

  • 新增一個或多個欄位
  • 修改列定義
  • 刪除一列或多列
  • 重命名列
  • 重命名表

#下面來看看一些例子來了解每個操作的工作原理。

Oracle ALTER TABLE範例

我們將使用在上一個教學中建立的persons表格進行示範。

-- 12c语法
CREATE TABLE persons(
    person_id NUMBER GENERATED BY DEFAULT AS IDENTITY,
    first_name VARCHAR2(50) NOT NULL,
    last_name VARCHAR2(50) NOT NULL,
    PRIMARY KEY(person_id)
);

1. 新增列的範例

要將新列新增到表中,請使用下列語法:

ALTER TABLE table_name
ADD column_name type constraint;

例如,以下語句將一個名為birthdate的新欄位加入到persons表中:

ALTER TABLE persons 
ADD birthdate DATE NOT NULL;

如果查看persons表格,會看到 birthdate日期列被加入到列清單的結尾:

DESC persons; 

Name       Null     Type         
---------- -------- ------------ 
PERSON_ID  NOT NULL NUMBER       
FIRST_NAME NOT NULL VARCHAR2(50) 
LAST_NAME  NOT NULL VARCHAR2(50) 
BIRTHDATE  NOT NULL DATE

要同時在表中新增多列,請按如下所示將新列置於括號內:

ALTER TABLE table_name
ADD (
    column_name type constraint,
    column_name type constraint,
    ...
);

看下面的範例:

ALTER TABLE persons 
ADD (
    phone VARCHAR(20),
    email VARCHAR(100)
);

在這個範例中,語句在users表中加入了兩個名為phoneemail的新列。

DESC persons

Name       Null     Type          
---------- -------- ------------- 
PERSON_ID  NOT NULL NUMBER        
FIRST_NAME NOT NULL VARCHAR2(50)  
LAST_NAME  NOT NULL VARCHAR2(50)  
BIRTHDATE  NOT NULL DATE          
PHONE               VARCHAR2(20)  
EMAIL               VARCHAR2(100)

要修改列的屬性,請使用下列語法:

ALTER TABLE table_name
  MODIFY column_name type constraint;

例如,下面的語句將birthdate列更改為一個空列:

ALTER TABLE persons MODIFY birthdate DATE NULL;

我們再次驗證persons表結構:

DESC persons

Name       Null     Type          
---------- -------- ------------- 
PERSON_ID  NOT NULL NUMBER        
FIRST_NAME NOT NULL VARCHAR2(50)  
LAST_NAME  NOT NULL VARCHAR2(50)  
BIRTHDATE           DATE          
PHONE               VARCHAR2(20)  
EMAIL               VARCHAR2(100)

如所看到的,birthdate日期變得無能為力。

要修改多個列,請使用以下語法:

 ALTER TABLE table_name
  MODIFY ( column_1 type constraint,
          column_1 type constraint,
         ...);

例如,以下語句將phoneemail列變更為 NOT NULL列,並將email列的長度擴展為255個字元:

ALTER TABLE persons MODIFY(
    phone VARCHAR2(20) NOT NULL,
    email VARCHAR2(255) NOT NULL
);

再次驗證persons表格結構:

DESC persons;

Name       Null     Type          
---------- -------- ------------- 
PERSON_ID  NOT NULL NUMBER        
FIRST_NAME NOT NULL VARCHAR2(50)  
LAST_NAME  NOT NULL VARCHAR2(50)  
BIRTHDATE           DATE          
PHONE      NOT NULL VARCHAR2(20)  
EMAIL      NOT NULL VARCHAR2(255)

3. 刪除現有的列的範例

要從表中刪除現有的列,請使用下列語法:

ALTER TABLE table_name
DROP COLUMN column_name;

該語句從表格結構中刪除列,並刪除儲存在該列中的資料。以下範例從persons表中刪除birthdate日期類型的欄位:

ALTER TABLE persons
DROP
  COLUMN birthdate;

再一次檢視persons表格結構,就會發現 birthdate列已刪除:

DESC persons;

Name       Null     Type          
---------- -------- ------------- 
PERSON_ID  NOT NULL NUMBER        
FIRST_NAME NOT NULL VARCHAR2(50)  
LAST_NAME  NOT NULL VARCHAR2(50)  
PHONE      NOT NULL VARCHAR2(20)  
EMAIL      NOT NULL VARCHAR2(255)

要同時刪除多個列,請使用下列語法:

ALTER TABLE table_name 
DROP (column_1,column_2,...);

例如,以下語句從個人表中刪除phoneemail列:

ALTER TABLE persons
DROP
  ( email, phone );

我們再來看persons表:

DESC persons;

Name       Null     Type         
---------- -------- ------------ 
PERSON_ID  NOT NULL NUMBER       
FIRST_NAME NOT NULL VARCHAR2(50) 
LAST_NAME  NOT NULL VARCHAR2(50)

emailphone 列已如預期刪除。

4. 重新命名列的範例

從版本9i開始,Oracle新增了一個用於重新命名列的子句,如下所示:

ALTER TABLE table_name
RENAME COLUMN column_name TO new_name;

例如,以下語句將first_name列重新命名為forename列:

ALTER TABLE persons 
RENAME COLUMN first_name TO forename;

以下語句檢查結果:

DESC persons;

Name      Null     Type         
--------- -------- ------------ 
PERSON_ID NOT NULL NUMBER       
FORENAME  NOT NULL VARCHAR2(50) 
LAST_NAME NOT NULL VARCHAR2(50)

##的例子

要將一個表重新命名為一個新的name

的表名,使用下面的語法:

ALTER TABLE table_name
RENAME TO new_table_name;
例如,下面的語句將users表格重新命名為people

表格:

ALTER TABLE persons RENAME TO people;
#推薦教學:《Oracle教學

》###

以上是oracle怎麼修改表結構的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Oracle和MySQL:探索數據管理方法Oracle和MySQL:探索數據管理方法May 01, 2025 am 12:13 AM

Oracle適合需要高性能和復雜查詢的企業級應用,MySQL適用於快速開發和部署的Web應用。 1.Oracle支持複雜事務處理和高可用性,適用於金融和大型ERP系統。 2.MySQL強調易用性和開源支持,廣泛用於中小型企業和互聯網項目。

MySQL與Oracle:查看用戶體驗MySQL與Oracle:查看用戶體驗Apr 30, 2025 am 12:12 AM

MySQL和Oracle在用戶體驗上的差異主要體現在:1.MySQL簡潔易用,適合快速上手和靈活性高的場景;2.Oracle功能強大,適合需要企業級支持的場景。 MySQL的開源和免費特性吸引初創公司和個人開發者,而Oracle的複雜功能和工具則滿足大型企業的需求。

MySQL和Oracle:探索性能和可伸縮性MySQL和Oracle:探索性能和可伸縮性Apr 29, 2025 am 12:12 AM

MySQL和Oracle在性能和可擴展性上的區別在於:1.MySQL在小型到中型數據集上表現更好,適合快速擴展和高效讀寫;2.Oracle在處理大型數據集和復雜查詢時更具優勢,適合高可用性和復雜業務邏輯。 MySQL通過主從復制和分片技術實現擴展,而Oracle通過RAC實現高可用性和擴展性。

Oracle軟件執行什麼:關鍵功能和功能Oracle軟件執行什麼:關鍵功能和功能Apr 28, 2025 am 12:08 AM

Oracle軟件的關鍵功能包括多租戶架構、高級分析和數據挖掘、實時應用集群(RAC)以及自動化管理和監控。 1)多租戶架構允許在一個數據庫實例中管理多個獨立的數據庫,簡化管理並降低成本。 2)高級分析和數據挖掘工具如OracleAdvancedAnalytics和OracleDataMining幫助從數據中提取洞察。 3)實時應用集群(RAC)提供高可用性和可擴展性,提高系統容錯能力和性能。 4)自動化管理和監控工具如OracleEnterpriseManager(OEM)自動化日常維護任務並實時監控數

甲骨文的影響:數據管理及其他甲骨文的影響:數據管理及其他Apr 27, 2025 am 12:11 AM

Oracle在数据管理和企业应用领域具有深远影响,其数据库以可靠性、可扩展性和安全性著称,广泛应用于金融、医疗和政府等行业。Oracle的影响力还扩展到中间件和云计算领域,如WebLogicServer和OracleCloudInfrastructure(OCI),提供创新解决方案。尽管面临开源数据库和云计算市场竞争,Oracle通过不断创新保持领先地位。

甲骨文:探索公司的使命和價值甲骨文:探索公司的使命和價值Apr 26, 2025 am 12:06 AM

Oracle的使命是“幫助人們看到數據的價值”,其核心價值觀包括:1)客戶至上,2)誠信,3)創新,4)團隊合作。這些價值觀指導Oracle在市場中的戰略決策和業務創新。

Oracle的核心功能:提供數據庫解決方案Oracle的核心功能:提供數據庫解決方案Apr 25, 2025 am 12:06 AM

Oracle數據庫是一種關係型數據庫管理系統,支持SQL和對象關係模型,提供數據安全和高可用性。 1.Oracle數據庫的核心功能包括數據存儲、檢索、安全和備份恢復。 2.其工作原理涉及多層存儲結構、MVCC機制和優化器。 3.基本用法包括創建表、插入和查詢數據;高級用法涉及存儲過程和触發器。 4.性能優化策略包括使用索引、優化SQL語句和內存管理。

使用Oracle軟件:數據庫管理及其他使用Oracle軟件:數據庫管理及其他Apr 24, 2025 am 12:18 AM

Oracle軟件除了數據庫管理外,還用於JavaEE應用、數據網格和高性能計算。 1.OracleWebLogicServer用於部署和管理JavaEE應用。 2.OracleCoherence提供高性能的數據存儲和緩存服務。 3.OracleExadata用於高性能計算。這些工具使得Oracle在企業IT架構中扮演了更加多元化的角色。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。