建立一個新表:
SQL> create table invoice
2 (
3 invoice_id number,
4 vendor_id number,
5 invoice_number varchar2(50),
6 invoice_date date default sysdate,
7 invoice_total number(9,2),
8 payment_total number(9,2) default 0,
9 constraint invoice_pk primary key (invoice_id,vendor_id),
10 constraint invoive_v_un unique (vendor_id),
11 constraint in_fk foreign key (vendor_id) references vendor(vendor_id) ondelete cascade
12 )
關於約束可以在列級建立,如:invoice_id number primary key ,
也可以和上程式一樣在表級用constraint 來添加,建議使用表級添加,因為如果沒有為約束指定名稱的話,系統會自動產生一個名稱,到時候如果你想修改列上的約束還要到處找這個約束叫什麼名稱,會很麻煩。
2:建立表副本:
create table emp_copy as select * from emp ;
create table emp_copyl as select * from emp where 1=2;
這兩個語句都可以建立一個和emp一樣的表,不同的是,第一個語句建立的emp_copy表包含了emp表的所有架構和資料記錄,我看的書上說也複製了原表的約束,但是我實驗了一下,發現約束並沒有複製進來,可以插入主鍵重複的值;
第二個emp_copyl表只是架構和emp表相同,並不包含emp中的資料;
本文出自 “落幕青” 部落格,請務必保留此出處http://lmq4930.blog.51cto.com/3208925/1297440