超经典的SQL50道练习题,助力SQL提升!
Posted 尤尔小屋的猫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了超经典的SQL50道练习题,助力SQL提升!相关的知识,希望对你有一定的参考价值。
公众号:尤而小屋
作者:Peter
编辑:Peter
大家好,我是Peter~
今天带来的是一篇关于数据库mysql的预告性文章。在网上盛传着一份非常经典的SQL练习50题,有很多网友进行了练习,SQL脚本也是层出不穷。笔者前段时间也抽空进行了练习,SQL能力也得到了很大的提升。
接下来会分次分享自己的解题方法和思路,希望对读者有所帮助,更欢迎指正和提供更好的方法。SQL的快速入门参考文章:SQL必知必会万字浓缩精华
思维导图
下面这份思维导图记录的是这份练习中涉及到的4张表、字段以及表和表之间的关联关系:
学生表
Student(s_id,s_name,s_birth,s_sex) :学生编号、姓名、年月、性别
课程表
Course(c_id,c_name,t_id) :课程编号、 课程名称、 教师编号
教师表
Teacher(t_id,t_name) :教师编号、教师姓名
成绩表
Score(s_id,c_id,s_score) :学生编号、课程编号、分数
创建4张表
下面脚本记录的是创建4张表
-- 创建4张表
-- 1、学生表
CREATE TABLE `Student`(
`s_id` VARCHAR(20),
`s_name` VARCHAR(20) NOT NULL DEFAULT '',
`s_birth` VARCHAR(20) NOT NULL DEFAULT '',
`s_sex` VARCHAR(10) NOT NULL DEFAULT '',
PRIMARY KEY(`s_id`)
);
-- 2、课程表
CREATE TABLE `Course`(
`c_id` VARCHAR(20),
`c_name` VARCHAR(20) NOT NULL DEFAULT '',
`t_id` VARCHAR(20) NOT NULL,
PRIMARY KEY(`c_id`)
);
-- 3、教师表
CREATE TABLE `Teacher`(
`t_id` VARCHAR(20),
`t_name` VARCHAR(20) NOT NULL DEFAULT '',
PRIMARY KEY(`t_id`)
);
-- 4、成绩表
CREATE TABLE `Score`(
`s_id` VARCHAR(20),
`c_id` VARCHAR(20),
`s_score` INT(3),
PRIMARY KEY(`s_id`,`c_id`)
);
插入数据
插入数据脚本
往创建的表中插入模拟数据
插入过程
插入学生信息数据
插入课程信息数据
插入之前还是要先设置字符集(省略)
插入教师表数据
插入学生成绩信息数据
预告
下一篇文章将会介绍的是第1-
5题,题目分别是:
- 查询"01"课程比"02"课程成绩高的学生的信息及课程分数
- 查询"01"课程比"02"课程成绩低的学生的信息及课程分数(题目1是成绩高)
- 查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩
- 查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩(包括有成绩的和无成绩的)
- 查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩
以上是关于超经典的SQL50道练习题,助力SQL提升!的主要内容,如果未能解决你的问题,请参考以下文章