数据库练习:创建与填充学生、课程、教师及成绩表
需积分: 44 132 浏览量
更新于2024-07-17
收藏 32KB DOCX 举报
"本资源包含一份数据库练习题,涉及四个关键表格:学生表(Student)、课程表(Course)、教师表(Teacher)和成绩表(SC)。学生表存储学生编号(SID)、姓名(Sname)、出生年月(Sage)和性别(Ssex);课程表记录课程编号(CID)、课程名称(Cname)和教师编号(TID);教师表包含教师编号(TID)和姓名(Tname);成绩表用于存储学生编号(SID)、课程编号(CID)和分数(score)。已提供了各表的创建语句及部分测试数据。"
在这个数据库练习题中,主要涉及到的是关系型数据库的基础知识,包括表的设计、数据插入以及不同表之间的关系。以下是这些知识点的详细说明:
1. **表设计**:
- **学生表(Student)**: 包含了学生的基本信息,如SID(学生编号)作为主键,确保每个学生的唯一性,Sname(学生姓名),Sage(出生年月)和Ssex(学生性别)。
- **课程表(Course)**: 记录了课程信息,CID(课程编号)为主键,Cname(课程名称)描述课程,TID(教师编号)为外键,关联到教师表中的教师编号。
- **教师表(Teacher)**: 存储教师信息,TID(教师编号)为主键,Tname(教师姓名)为教师姓名。
- **成绩表(SC)**: 记录学生的学习成绩,SID(学生编号)和CID(课程编号)均为外键,分别关联学生表和课程表,score(分数)记录学生在该课程的得分。
2. **数据插入**:
- 在学生表中,使用`INSERT INTO`语句添加了8个学生的测试数据,包括他们的SID、Sname、Sage和Ssex。
- 课程表中,插入了3门课程的数据,包括CID、Cname和与之对应的TID。
- 教师表中,虽然没有提供具体的教师数据,但可以看到插入数据的结构。
3. **关系**:
- 学生表和课程表通过成绩表连接,表示学生选修了哪些课程,以及他们在这些课程中的得分。
- 课程表和教师表通过TID建立联系,表明哪个教师教授哪门课程。
4. **数据库操作**:
- 使用`CREATE TABLE`语句创建表结构,定义了每列的数据类型,如varchar(可变长度字符串)和datetime(日期时间)。
- `INSERT INTO`语句用于向表中插入数据,确保数据类型与列定义匹配。
5. **数据库设计原则**:
- 实体完整性:学生表和课程表的主键(SID和CID)确保了每条记录的唯一性。
- 参照完整性:成绩表中的SID和CID是外键,它们引用了其他表的主键,确保数据一致性。
- 用户定义的完整性:例如,性别字段Ssex通常会限制为预定义的值(如'男'或'女')。
这个练习题旨在帮助学习者理解和应用关系数据库的基本概念,包括表设计、数据插入、查询以及表间关系的管理。通过解决这样的问题,可以提升对SQL语言的理解和实际操作技能。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-10-24 上传
2022-06-05 上传
2021-06-02 上传
2021-10-03 上传
2022-06-17 上传
2020-05-08 上传
apples_girl
- 粉丝: 855
- 资源: 6
最新资源
- 计算电网中的电压降 3f-1f:计算径向电网中的电压降-matlab开发
- 手机小游戏网站蓝白.zip
- yl_236-daima_c,c语言通信系统源码,c语言
- FLASH+ASP投票程序(完整版)
- Haddock-crx插件
- jquery-salary-calculator
- 3 波段参数均衡器:由用户友好的 GUI 控制的 3 波段参数均衡器的 Simulink 模型。-matlab开发
- bashrc:我的BASH点文件
- C#图像水印,为图片增加光晕效果
- anchoredphotography:anchoredphotographyfl.com的官方资料库
- Usb_Cdc,c语言源码分析软件,c语言
- ekşi sözlük derdini sikeyim butonu-crx插件
- 安卓可抖视v1.2.9免费版.txt打包整理.zip
- 响应式婚纱网站.zip
- DTMF 发生器和接收器:DTMF 发生器和接收器-matlab开发
- socketio-v1