-- 添加主键约束(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';