创建一个新表:
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中的数据;