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

Oracle 常用 DDL/DML 指令與核心資料類型完整速查表

     編輯:Oracle 資料庫基礎

本文整理 Oracle 日常開發運維的高頻指令與資料類型差異,涵蓋建表、修表、約束、視圖、序列、資料字典查詢等實戰場景,供快速查閱。

一、 核心資料類型對照與範例

二、 表結構管理核心指令

1. 建表與預設值

CREATE TABLE scott.test6 (
  eid       NUMBER(10),
  name      VARCHAR2(20),
  hiredate  DATE DEFAULT SYSDATE,
  salary    NUMBER(8,2) DEFAULT 0
);

2. 增加/修改/刪除欄位

-- 增加欄位
ALTER TABLE emp01 ADD (eno NUMBER(4));

-- 修改欄位型別、預設值
ALTER TABLE emp01 MODIFY job VARCHAR2(15) DEFAULT 'CLERK';

-- 刪除欄位
ALTER TABLE emp01 DROP COLUMN dno;

-- 重命名欄位
ALTER TABLE emp01 RENAME COLUMN eno TO empno;

3. 表重命名與註解

RENAME emp01 TO employee;
COMMENT ON TABLE employee IS '存放員工資訊';
COMMENT ON COLUMN employee.name IS '員工姓名';

三、 完整性約束

類型特性範例適用場景
CHAR(n)固定長度,空白填充,比較時自動補空白CHAR(10) 存 'Tom' 佔 10 位元組固定長度代碼(如身分證字號、國家代碼)
NCHAR(n)Unicode 固定長度,按字元計算NCHAR(10) 可存 10 個中文字多語言固定長度欄位
VARCHAR2(n)變長,實際長度儲存,4000 位元組上限VARCHAR2(100)一般文字欄位首選
NVARCHAR2(n)Unicode 變長NVARCHAR2(200)多語言變長文字
NUMBER(p,s)精度 p,小數位 s;p 最大 38NUMBER(8,2) 存 999999.99金額、數量、比率等數值
DATE含年月日時分秒,範圍公元前 4712~公元 9999SYSDATE, TO_DATE('28-02-08','DD-MM-RR')日期時間業務欄位
TIMESTAMP含小數秒精度,可帶時區TIMESTAMP(6)高精度審計、跨時區系統

四、 視圖與序列

-- 建立視圖
CREATE OR REPLACE VIEW v1(eid, name, salary) AS
SELECT empno, ename, sal FROM emp WHERE deptno = 30;

-- 建立序列(自動遞增主鍵常用)
CREATE SEQUENCE myseq INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE;
INSERT INTO test VALUES (myseq.NEXTVAL, 'Tom');

五、 資料字典查詢

類別約束類型說明
域完整性NOT NULL, CHECK限制欄位值域
實體完整性UNIQUE, PRIMARY KEY確保列唯一/主鍵
參照完整性FOREIGN KEY維護父子表關聯

六、 表間資料複製與查詢結構

-- 跨表複製
INSERT INTO dept1(id, name) SELECT deptno, dname FROM dept;

-- 查詢表結構
DESC employee;  -- SQL*Plus 環境
-- 或
SELECT column_name, data_type, data_length, nullable
FROM   user_tab_columns
WHERE  table_name = 'EMPLOYEE';

七、 實戰模板:帶序列自增主鍵的建表腳本

CREATE TABLE test2 (
  id   CHAR(10) PRIMARY KEY,
  name CHAR(10)
);
CREATE SEQUENCE test2_seq INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE;

-- 批次插入範例
BEGIN
  FOR i IN 1..10 LOOP
    INSERT INTO test2 VALUES (test2_seq.NEXTVAL, 'User'||i);
  END LOOP;
  COMMIT;
END;

掌握上述指令與類型特性,可覆蓋 90% 日常開發運維場景,建議收藏備查。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
視圖前綴可見範圍常用範例
USER_當前使用者物件SELECT * FROM user_tables;
ALL_當前使用者可存取物件SELECT * FROM all_tables;
DBA_全資料庫物件(需 DBA 權限)SELECT * FROM dba_tables;