--建立一張用來存儲學生信息的表:字段包含學號、姓名、性別,年齡、入學日期、班級,email等信息 --學號是主鍵 --姓名不能為空 --性別默認值是男 --年齡范圍20---80歲 --Email唯一 --主鍵一個表中只能允許存在一個 drop table student purge; create table student( sno number(6), sname varchar2(15), age number(2), sex char(2) default '男', enterdate date, clazz varchar2(10), email varchar2(20), constraints PK_STUDENT primary key (sno),--表級別設置主鍵 constraints PK_STUDENT1 primary key (email) ); insert into student values (1,'SuperDrew',21,null,sysdate,'1001','XXXXXX@XXXX.XXXX'); insert into student values (1,'Alia',99,null,sysdate,'1001','XXXXXX@XXXX.XXXX'); insert into student values (1,'Bob',25,null,sysdate,'1001','XXXXXX@XXXX.XXXX'); insert into student values (1,null,11,null,sysdate,'1001','XXXXXX@XXXX.XXXX'); --第二種方式設定主鍵 drop table student purge; create table student( sno number(6) primary key ,--列級別設置主鍵 簡化的操作 sname varchar2(15), age number(2), sex char(2) default '男', enterdate date, clazz varchar2(10), email varchar2(20) ); --組合式主鍵 --組合主鍵 只有指定的主鍵的列 數據都一樣 才不能寫入表中 drop table student purge; create table student( sno number(6), sname varchar2(15), age number(2), sex char(2) default '男', enterdate date, clazz varchar2(10), email varchar2(20), constraints PK_STUDENT primary key (sno,sname)--表級別設定主鍵 ); insert into student values (1,'KING',18,null,sysdate,'1002','XXXXXX@XXXX.XXXX'); insert into student values (3,'Geny',18,null,sysdate,'1002','XXXXXX@XXXX.XXXX'); insert into student values (2,'Tidy',18,null,sysdate,'1002','XXXXXX@XXXX.XXXX'); select * from student; --聯合主鍵只能通過表級別設定,列級別是不能設定聯合主鍵 drop table student purge; create table student( sno number(6) primary key, sname varchar2(15) primary key, age number(2), sex char(2) default '男', enterdate date, clazz varchar2(10), email varchar2(20) );