SQL练习:创建学生-课程数据库模式

需积分: 11 1 下载量 194 浏览量 更新于2024-08-15 收藏 135KB PPT 举报
"本资源主要介绍如何在SQL环境中建立一个‘学生选课’数据库表SC,并探讨相关的数据库设计概念。通过创建‘学生’、‘课程’和‘学生选课’三个表,构建学生-课程关系模型,以满足教育管理中的数据存储需求。" 在这个例子中,我们首先创建了一个名为SC的学生选课表,这个表用于记录每个学生选修的课程及其成绩。表SC包含以下字段: 1. Sno(学号):这是学生的唯一标识符,长度为9个字符。它与Cno(课程号)一起构成了主键,确保每条记录的唯一性。Sno作为外键,参照了Student表中的Sno字段,确保所有选课的学生都存在于Student表中。 2. Cno(课程号):代表学生所选的课程,长度为4个字符。同样,Cno也是主键的一部分,并作为外键,参照了Course表中的Cno字段,确保选课的课程都在Course表中有记录。 3. Grade(成绩):用于记录学生在该课程中的得分,类型为SMALLINT,长度为4个字符。 接下来,我们介绍了“学生”表Student,包括以下字段: 1. Sno(学号):9个字符的字符串,作为表的主键,确保每个学生的唯一性。同时,它在SC表中作为外键出现。 2. Sname(姓名):20个字符的字符串,表示学生的姓名,且要求具有唯一性,防止同名现象。 3. Ssex(性别):2个字符的字符串,用于记录学生的性别。 4. Sage(年龄):SMALLINT类型,表示学生的年龄。 5. Sdept(所在系):20个字符的字符串,记录学生所在的系别。 然后是“课程”表Course,包括: 1. Cno(课程号):4个字符的字符串,作为表的主键,确保每门课程的唯一性。 2. Cname(课程名):40个字符的字符串,记录课程的名称。 3. Cpno(先行课):4个字符的字符串,作为外键,参照Course表自身的Cno字段,表示该课程的先修课程。 4. Ccredit(学分):SMALLINT类型,记录课程的学分数。 在创建这些表时,我们使用了SQL语句CREATE TABLE,其中包含了字段定义、数据类型以及约束条件,如主键(PRIMARY KEY)和外键(FOREIGN KEY)。创建数据库通常用CREATE DATABASE语句,但在这个例子中,提到了在多数DBMS(数据库管理系统)中,可以使用CREATE SCHEMA替代。 这个学生-课程数据库模型适用于高等教育或培训机构,能够有效地管理和追踪学生的选课情况、成绩以及课程的相关信息。这样的设计使得数据查询、统计分析和报告生成变得更为便捷。例如,可以轻松地找出某个学生的所有课程成绩,或者查询某一课程的所有选课学生,以及统计各系学生的平均成绩等。