SQL数据库实战:创建与查询四表关联练习
需积分: 21 177 浏览量
更新于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基础的初学者来说,这些题目既实用又具有挑战性。
2015-06-20 上传
baidu_38660537
- 粉丝: 0
- 资源: 1
最新资源
- express-simple-template:是一个简单的模板,用于日志记录和测试bdd
- flopbox:通过 HTTP 传输文件,只需将您的文件翻过来
- 待办事项清单:待办事项清单
- 界面专业的VC++流量监控程序
- 这是一个仅供个人学习的电商项目(Spring Cloud 2+MySql+JPA+Redis+ Golang+Gin.zip
- 物联网湿度和温度显示-项目开发
- blog-template
- AndreyC101-GAME2005-F2020-FinalTest-101255069:GAME2005-游戏物理决赛
- meteor-mailchimp-custom:自定义和添加的表单字段操作
- 这是我在学习java时候写的一个最最简单的小爬虫,用来爬知乎的标题,然后存储的在mysql.zip
- VC++ TCP 方式实现MYQQ
- action-notify:涡轮行动通知
- react-reality-holokit:Holokit绑定用于React现实
- riemann-test-prototype:编写和测试 Riemann 配置的另一种方法
- terraform-azure-poc
- haku0x666