2010-05-15

[Oracle] 基礎 Table Schema 指令


-- 建立資料表
CREATE TABLE table_name(
column1 NUMBER,
column2 CHAR,
column3 VARCHAR2,
column4 DATE,

-- 主鍵(PRIMARY KEY)
CONSTRAINT pk_table_name PRIMARY KEY(column1,column2),
-- 唯一鍵(UNIQUE KEY)
CONSTRAINT unique_table_name UNIQUE(column1,column2),
-- 外來鍵(FOREIGN KEY)
CONSTRAINT fk_table_name_column1
FOREIGN KEY(column1, column2)
REFERENCES parent_table(column1, column2)
[ON DELETE [CASCADE|SET NULL]]
-- 當參考鍵刪除時,相對應做的處理:
-- 預設 UPDATE No Action & DELETE No Action
-- ON DELETE CASCADE: 刪除參考鍵時連同刪除
-- ON DELETE SET NULL: 刪除參考鍵時將外鍵設為 NULL
);


-- 為資料表標示註釋
COMMENT ON TABLE table_name IS '資料表註釋';

-- 為資料欄位標示註釋
COMMENT ON COLUMN table_name.column1 IS '資料欄位註釋';


-- 附加主鍵(PRIMARY KEY)
ALTER TABLE table_name
ADD CONSTRAINT pk_table_name PRIMARY KEY(column1,column2);


-- 附加唯一鍵(UNIQUE KEY)
ALTER TABLE table_name
ADD CONSTRAINT unique_table_name UNIQUE(column1,column2);


-- 附加外來鍵(FOREIGN KEY)
ALTER TABLE table_name
ADD CONSTRAINT fk_table_name_column1
FOREIGN KEY(column1, column2)
REFERENCES parent_table(column1, column2)
[ON DELETE [CASCADE|SET NULL]];


-- 建立索引(Index)
CREATE [UNIQUE] INDEX idx_table_name ON table_name(column1, column2);

最近剛剛接觸 Oracle
很多觀念一時轉不過來
雖然 SQL 都大同小異
但就是這些被這些小異搞翻掉

整體架構跟 MySQL 差蠻多
只能說 MySQL 真的很容易上手
而且社群跟文獻都很多
所以要找參考資料比較容易

參考連結:
Oracle Commands
Oracle SQL
Oracle/PLSQL Topics
Oracle 開發筆記
Oracle基本语法集锦
oracel 數據完整性

0 回應: