学生成绩管理系统-添加约束
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生成绩管理系统-添加约束
/*--案例:使用SQL语句在Grade和Student表添加约束*/
ALTER TABLE Grade --主键约束
ADD CONSTRAINT PK_GradeID PRIMARY KEY(GradeID)
ALTER TABLE Student --主键约束
ADD CONSTRAINT PK_StuNo PRIMARY KEY (StudentNo)
ALTER TABLE Student --唯一约束(身份证号唯一)
ADD CONSTRAINT UQ_stuID UNIQUE (IdentityCard)
ALTER TABLE Student --默认约束(地址不详)
ADD CONSTRAINT DF_stuAddress DEFAULT ('地址不详') FOR Address ALTER TABLE Student --检查约束(出生日期是自1980年1月1日以后) ADD CONSTRAINT CK_stuBornDate CHECK(BornDate>='1980-1-1')
/*--在Grade 表中添加外键约束(主表Grade和从表Student建立关系) 在建对Grade 表的外键约束之前必须建立Grade表的主键约束 --*/ ALTER TABLE Student --添加外键约束
ADD CONSTRAINT FK_Grade
FOREIGN KEY(GradeID) REFERENCES Grade(GradeID)
/*--案例:使用SQL语句删除Student表默认约束(地址不详)--*/ ALTER TABLE Student
DROP CONSTRAINT DF_stuAddress
/*--案例:使用SQL语句创建Subject表的约束--*/
ALTER TABLE Subject --主键约束(科目编号)
ADD CONSTRAINT PK_Subject PRIMARY KEY(SubjectNo)
ALTER TABLE Subject --非空约束(科目名称)
ADD CONSTRAINT CK_SubjectName CHECK(SubjectName is not null)
ALTER TABLE Subject --检查约束(学时必须大于等于0)
ADD CONSTRAINT CK_ClassHour CHECK(ClassHour>=0)
ALTER TABLE Subject --外键约束(主表Grade和从表Subject建立引用关系) ADD CONSTRAINT FK_GradeId
FOREIGN KEY(GradeId) REFERENCES Grade(GradeId)
/*--案例:使用SQL语句创建Result表的约束--*/
北大青鸟中关村软件园
地址:北京市海淀区上地信息路甲28号科实大厦B座3层,B305,
ALTER TABLE Result --主键约束(学号、科目号、日期)
ADD CONSTRAINT PK_Result PRIMARY KEY(StudentNo,SubjectNo,ExamDate) ALTER TABLE Result --默认约束(日期为系统当前日期)
ADD CONSTRAINT CK_ExamDate DEFAULT (getdate()) FOR ExamDate
ALTER TABLE Result --检查约束(分数不能大于100,小于0)
ADD CONSTRAINT CK_StudentResult CHECK(StudentResult BETWEEN 0 AND 100)
ALTER TABLE Result --外键约束(主表Student和从表Result建立关系) ADD CONSTRAINT FK_StudentNo
FOREIGN KEY(StudentNo) REFERENCES Student(StudentNo)
ALTER TABLE Result --外键约束(主表Subject和从表Result建立关系) ADD CONSTRAINT FK_SubjectNo
FOREIGN KEY(SubjectNo) REFERENCES Subject(SubjectNo)
----资料来源北大青鸟中关村官网
北大青鸟中关村软件园官网
北大青鸟中关村学士后本部官网
北大青鸟中关村软件园
地址:北京市海淀区上地信息路甲28号科实大厦B座3层,B305,