Oracle之約束條件1:主鍵約束


--建立一張用來存儲學生信息的表:字段包含學號、姓名、性別,年齡、入學日期、班級,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)
);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM