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

Oracle 表創建與管理基礎:從語法到實戰操作

     編輯:Oracle 教學

Oracle 表創建與管理基礎:從語法到實戰操作

表是數據庫中核心的數據存儲對象。掌握表的創建、修改、復制、重命名、截斷與刪除等 DDL 操作,是 DBA 與開發人員的必備基本功。本文系統梳理常用數據類型、創建語法及六大核心操作場景。

常用數據類型速查

類型說明示例
NUMBER(p,s)定點數,p=精度(1-38),s=小數位NUMBER(10,2)
VARCHAR2(n)變長字符串,最大 4000 字節VARCHAR2(50)
DATE日期時間,精度至秒DEFAULT SYSDATE
CLOB大文本,最大 4GB存儲長文檔
BLOB二進制大對象存儲圖片/文件
TIMESTAMP高精度時間戳,含毫秒/時區TIMESTAMP(6)

創建表語法

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

命名規則: 1-30 字符,字母開頭,可含字母/數字/_/$/#,不可為保留字。

六大核心操作實戰

1. 基礎創建與插入

CREATE TABLE member (
  mid      NUMBER(5),
  name     VARCHAR2(50) DEFAULT '無名氏',
  age      NUMBER(3),
  birthday DATE DEFAULT SYSDATE,
  note     CLOB
);

INSERT INTO member(mid, name, age, birthday, note)
VALUES (1, 'test1', 30, TO_DATE('1984-09-23','YYYY-MM-DD'), 'bdqn1');

DESC member;  -- 查看結構
SELECT * FROM member;

2. 子查詢創建表(含數據)

CREATE TABLE myemp AS SELECT * FROM emp;  -- 復制結構+數據
SELECT * FROM myemp;

3. 僅復制結構(無數據)

CREATE TABLE employee AS SELECT * FROM emp WHERE 1=2;
DESC employee;  -- 結構一致,0 行

4. 表重命名

RENAME member TO mldnuser;
SELECT * FROM tab;  -- 驗證

5. 截斷表(高效清空)

TRUNCATE TABLE mldnuser;  -- DDL,不可回滾,釋放高水位,速度極快
-- 對比:DELETE FROM mldnuser; -- DML,產生 UNDO,可回滾,不釋放高水位

6. 刪除表

DROP TABLE myemp;           -- 移至回收站(10g+)
DROP TABLE myemp PURGE;     -- 直接永久刪除,不進回收站

查看用戶表清單

SELECT * FROM tab;           -- 當前用戶所有表/視圖
SELECT table_name FROM user_tables;  -- 僅表

最佳實踐提醒

  1. 生產環境嚴禁直接 DROP TABLE,必須先 RENAME ... TO _bak_yyyymmdd 並驗證無影響後再清理。
  2. TRUNCATE 會重置高水位(HWM),導致後續全表掃描極快,但也會使依賴 HWM 的統計信息失效,建議截斷後重新收集統計。
  3. 大表刪除數據優先考慮分區表 DROP/TRUNCATE PARTITION,避免大量 UNDO/REDO 產生。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved