1. 程式人生 > >oracle添加各種約束條件

oracle添加各種約束條件

命名規範 成績 唯一約束 name col brush key light rim

--非空約束
ALTER TABLE studen MODIFY (studentname NOT NULL);
--唯一約束(身份證號)
ALTER TABLE student ADD CONSTRAINT UK_student_identityCard UNIQUE (identitycard); --默認約束(地址) ALTER TABLE student modify address DEFAULT ‘地址不詳‘; --檢查約束(出生日期在1980年1月1日之後) ALTER TABLE student ADD CONSTRAINT CK_student_borndate CHECK (borndate > TO_date(‘1980-01-01‘,‘yyyy-MM-dd‘) ); --外鍵約束(主表grade和從表student建立引用關系)
ALTER TABLE student ADD CONSTRAINT FK_student_grade_GradeId FOREIGN KEY (gradeid) REFERENCES Grade (gradeid); --默認約束(examdate考試日期默認當前時間) ALTER TABLE RESULT modify examdate DEFAULT SYSDATE; --增加復合主鍵 ALTER TABLE result ADD CONSTRAINT PK_result primary key (studentno, subjectno,examdate); --刪除約束
ALTER TABLE pet DROP CONSTRAINT UK_student_identityCard;
--學生表
CREATE TABLE student(
studentno NUMBER(11) NOT NULL PRIMARY KEY,
loginpwd NVARCHAR2(20) NOT NULL,
studentname NVARCHAR2(20),
gradeid NUMBER(11) NOT NULL,
sex NCHAR(2) NOT NULL,
phone NVARCHAR2(50) NOT NULL,
borndate DATE NOT NULL,
address NVARCHAR2(255) NOT NULL,
email NVARCHAR2(50) NOT NULL,
identitycard NVARCHAR2(18) NOT NULL );
--年級表
CREATE TABLE grade(
gradeid NUMBER(11) NOT NULL PRIMARY KEY,
gradename NVARCHAR2(20) NOT NULL );

--課程表 CREATE TABLE subject(
subjectno NUMBER(11) NOT NULL PRIMARY KEY,
subjectname NVARCHAR2(50) NOT NULL,
classhour NUMBER(4) NOT NULL,
gradeid NUMBER(11) NOT NULL );

--成績表 CREATE TABLE RESULT(
studentno NUMBER(11) NOT NULL,
subjectno NUMBER(11) NOT NULL,
examdate DATE NOT NULL,
studentresult NUMBER(4) NOT NULL );
約束命名規範   
 非空約束     NN_表名_列名
 唯一約束     UK_表名_列名
 主鍵約束     PK_表名
 外鍵約束     FK_表名_列名
 條件約束     CK_表名_列名
 默認約束     DF_表名_列名

  

oracle添加各種約束條件