SQL数据库实战:创建与查询四表关联练习

需积分: 21 25 下载量 194 浏览量 更新于2024-09-07 收藏 84KB DOC 举报
在本次SQL练习题中,我们将涉及一个包含四个基本表的数据库设计:学生表(Student)、课程表(Course)、成绩表(Score)和教师信息表(Teacher)。这些表的结构和数据对初学者来说是很好的实战演练材料,有助于理解SQL的基本操作和关系数据库的概念。 首先,我们来看一下各个表的结构: 1. **学生表(Student)**: - 主键:Sno(3位字符,不能为空) - 学生姓名:Sname(8位字符,不能为空) - 性别:Ssex(2位字符,不能为空) - 出生日期:Sbirthday(日期时间类型,可以为空) - 所在班级:Class(5位字符,可以为空) 2. **课程表(Course)**: - 主键:Cno(5位字符,不能为空) - 课程名称:Cname(10位变长字符串,不能为空) - 教师编号:Tno(3位字符,不能为空,作为外键引用Teacher表) 3. **成绩表(Score)**: - 外键:Sno(引用Student表的Sno,不能为空) - 外键:Cno(引用Course表的Cno,不能为空) - 成绩:Degree(4位小数,1位小数,可以为空) - 主键:Sno+Cno,复合主键 4. **教师信息表(Teacher)**: - 主键:Tno(3位字符,不能为空) - 教工姓名:Tname(4位字符,不能为空) - 性别:Tsex(2位字符,不能为空) - 出生日期:Tbirthday(日期时间类型,可以为空) - 职称:Prof(6位字符,可以为空) - 所在部门:Depart(10位变长字符串,不能为空) 接下来是一些SQL操作练习题示例,包括但不限于: - 插入和查询学生信息,如查找所有男生或女生的信息。 - 描述性查询,如找出某门课程的所有学生及其成绩。 - 更新操作,如修改某个学生的成绩。 - 删除记录,如删除某个特定课程的所有成绩记录。 - 连接表查询,如获取特定班级的学生列表及他们所选课程的教师信息。 - 分组统计,如计算每个课程的平均成绩。 - 子查询和嵌套查询,如找出任课教师的年龄最大的课程。 通过这些练习,学习者将能够掌握SQL的基本语法、关系型数据库的连接操作、数据筛选和聚合等核心技能,这对于数据库管理和数据分析至关重要。对于准备面试或者想要提升SQL基础的初学者来说,这些题目既实用又具有挑战性。