首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

Oracle 基礎入門(七):資料表建立、修改與刪除完整指南

     編輯:Oracle 教學

Oracle 基礎入門(七):資料表建立、修改與刪除完整指南

一、建立資料表 (CREATE TABLE)

語法結構

CREATE TABLE [schema.]table_name
(
  column_name datatype [DEFAULT expr] [constraint] [, ...]
);

關鍵說明

  • schema:指定擁有者,省略則為當前用戶。
  • datatype:資料型別與長度(如 VARCHAR2(50)、NUMBER(10,2))。
  • constraint:可在欄位層級定義 NOT NULL、PRIMARY KEY、UNIQUE、CHECK、FOREIGN KEY。

範例:會員表

CREATE TABLE members (
  member_id    NUMBER(10)      NOT NULL,
  username     VARCHAR2(30)    NOT NULL,
  password_hash VARCHAR2(100)  NOT NULL,
  email        VARCHAR2(100),
  reg_date     DATE            DEFAULT SYSDATE,
  status       CHAR(1)         DEFAULT 'A' CHECK (status IN ('A','I')),
  CONSTRAINT pk_members PRIMARY KEY (member_id),
  CONSTRAINT uk_username UNIQUE (username)
);

命名規範(必須遵守)

  1. 首字元必須為字母(A-Z, a-z)。
  2. 不可使用 Oracle 保留字(如 TABLE, INDEX)。
  3. 最大長度 30 字元(12.2 起支援 128 字元)。
  4. 同一 Schema 下表名唯一。
  5. 僅允許字母、數字、底線(_)、美元符號($)、井號(#),不可含空格或引號。
  6. 不區分大小寫,系統自動轉大寫儲存。

二、修改資料表 (ALTER TABLE)

修改現有欄位

ALTER TABLE table_name MODIFY (column_name new_datatype [DEFAULT expr] [constraint]);
範例:擴大帳號密碼長度
ALTER TABLE members MODIFY (
  username     VARCHAR2(50),
  password_hash VARCHAR2(200)
);

新增欄位

ALTER TABLE table_name ADD (column_name datatype [DEFAULT expr] [constraint]);
範例:新增電話與地址
ALTER TABLE members ADD (
  phone    VARCHAR2(20),
  address  VARCHAR2(200)
);

刪除欄位

ALTER TABLE table_name DROP COLUMN column_name;
-- 或批次刪除
ALTER TABLE table_name DROP (col1, col2);
範例:移除電話與地址
ALTER TABLE members DROP (phone, address);

三、刪除資料表 (DROP TABLE)

DROP TABLE table_name [CASCADE CONSTRAINTS] [PURGE];
  • CASCADE CONSTRAINTS:同時刪除引用此表的外鍵約束。
  • PURGE:直接永久刪除,不進入回收站(慎用)。

範例

DROP TABLE members CASCADE CONSTRAINTS PURGE;

實務小撇步

  • 建表前先用 DBMS_METADATA.GET_DDL 導出現有結構備份。
  • 大表修改欄位型別時,考慮 DBMS_REDEFINITION 線上重定義避免鎖表。
  • 刪除表前確認無關鍵業務依賴,必要時先 RENAME 觀察一段時間。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved