数据库实验:SQL建表与外键约束详解

需积分: 10 3 下载量 115 浏览量 更新于2024-09-09 收藏 25KB DOC 举报
在本次数据库实验考试题中,主要涉及了三个核心知识点: 1. **数据库表结构设计**: - 首先,题目给出了两个基本的实体表:学生表(Student)和课程表(Course)。学生表包括学号(Sno, 主键,5字符长度),姓名(Sname, 可变字符长度10), 性别(Ssex, 2字符长度), 年龄(Sage, 2数字长度,使用tinyint节省空间), 和所在系(Sdept, 可变字符长度10)。课程表则包含课程号(Cno, 主键,5字符长度), 课程名(Cname, 30字符长度), 和学分(Ccredit, 2数字长度)。 - 第三个表是学生选课表(SC),它与前两者通过学号和课程号建立关系。SC表有学号(Sno, 主键之一), 课程号(Cno, 主键之一), 和成绩(Grade, 4数字长度,带有一位小数,浮点数类型)。同时,还涉及到两个外键约束,分别是fk_1和fk_2,它们分别将SC表中的学号和课程号关联到Student和Course表。 2. **SQL操作及表间关系设置**: - 大题一要求根据案例描述用SQL语句创建这三个表。这部分主要考察的是基础的SQL语法和数据类型的选择,如使用CREATE TABLE语句定义表结构,以及指定主键和外键等关系。 3. **添加表约束**: - 大题二和三涉及到数据完整性约束的设置。首先,给学生表的性别字段添加一个检查约束(ch_sexcheck),确保只接受'男'或'女'两种值。这涉及到SQL的CHECK约束,用于验证特定列的数据是否符合预设条件。 - 其次,给课程表的学分字段添加一个检查约束(ch_Credit),限制学分的范围在2到8之间。这也是利用SQL的约束功能来确保数据的一致性和准确性。 整个题目涵盖了数据库的基本设计、SQL语言应用以及数据完整性控制等内容,旨在测试学生的数据库理论知识和实践能力。完成这类题目不仅需要熟悉SQL语法,还要对数据库的设计原则和业务逻辑有深入理解。在实际操作中,正确处理表的关联、主键和外键关系,以及有效地应用约束,是至关重要的。