添加约束(主键 外键 唯一)等

 

-- 添加主键约束(stuNo作为主键)

ALTER TABLE stuInfo 

    ADD CONSTRAINT PK_stuNo PRIMARY KEY (stuNo);

 

-- 为stuMarks添加主键约束(ExamNo作为主键)

ALTER TABLE stuMarks 

    ADD CONSTRAINT PK_ExamNo PRIMARY KEY (ExamNo);

 

--添加唯一约束(身份证号唯一,因为每人的身份证号全国唯一)

ALTER TABLE stuInfo 

    ADD CONSTRAINT UQ_stuID UNIQUE (stuID);

 

--添加检查check约束,要求年龄只能在15-40岁之间

ALTER TABLE stuInfo 

    ADD CONSTRAINT CK_stuAge CHECK(stuAge BETWEEN 15 AND 40);

--要求年龄小于60

ALTER TABLE TBL_EMP 

    ADD CONSTRAINT CK_AGE CHECK(AGE<=60);

 

--添加外键约束(主表stuInfo和从表stuMarks建立关系,关联字段为stuNo)

ALTER TABLE stuMarks

    ADD CONSTRAINT FK_stuNo          

    FOREIGN KEY(stuNo) REFERENCES stuInfo(stuNo);

     

--删除约束

ALTER  TABLE  stuInfo  

    DROP  CONSTRAINT  CK_stuAge;

 

--查询约束

SELECT * FROM USER_CONSTRAINTS  

WHERE table_name='STUINFO';

 

 

 

 

 

相关示例:

/*============================================================

                       示例8. 对表约束的相关操作

  ============================================================*/

CREATE  TABLE  stuInfo  

(

 stuNo   CHAR(6)  NOT  NULL,   --学号,非空(必填)

 stuName  VARCHAR2(20)  NOT  NULL ,  --学员姓名,非空(必填)

 stuAge  NUMBER(3,0)  NOT  NULL,  --年龄,非空(必填)

 stuID  NUMERIC(18,0),     --身份证号,NUMERIC (18,0)代表18位数字,小数位数为0

 stuSeat   NUMERIC(2,0)    --座位号

) ;

CREATE TABLE stuMarks

(

 ExamNo  CHAR(7)  NOT NULL,  --考号

 stuNo  CHAR(6)  NOT NULL,   --学号

 writtenExam  NUMERIC(3,0)  NOT NULL,  --笔试成绩

 LabExam  NUMERIC(3,0)  NOT NULL    --机试成绩

);

-- 添加主键约束(stuNo作为主键)

ALTER TABLE stuInfo 

    ADD CONSTRAINT PK_stuNo PRIMARY KEY (stuNo);

-- 为stuMarks添加主键约束(ExamNo作为主键)

ALTER TABLE stuMarks 

    ADD CONSTRAINT PK_ExamNo PRIMARY KEY (ExamNo);

--添加唯一约束(身份证号唯一,因为每人的身份证号全国唯一)

ALTER TABLE stuInfo 

    ADD CONSTRAINT UQ_stuID UNIQUE (stuID);

--添加检查check约束,要求年龄只能在15-40岁之间

ALTER TABLE stuInfo 

    ADD CONSTRAINT CK_stuAge CHECK(stuAge BETWEEN 15 AND 40);

--添加外键约束(主表stuInfo和从表stuMarks建立关系,关联字段为stuNo)

ALTER TABLE stuMarks

    ADD CONSTRAINT FK_stuNo          

    FOREIGN KEY(stuNo) REFERENCES stuInfo(stuNo);

     

--删除约束

ALTER  TABLE  stuInfo  

    DROP  CONSTRAINT  CK_stuAge;

--查询约束

SELECT * FROM USER_CONSTRAINTS  

WHERE table_name='STUINFO';

 

 

猜你喜欢

转载自summerlin.iteye.com/blog/2144889