超经典的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题,题目分别是:

  1. 查询"01"课程比"02"课程成绩高的学生的信息及课程分数
  2. 查询"01"课程比"02"课程成绩低的学生的信息及课程分数(题目1是成绩高)
  3. 查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩
  4. 查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩(包括有成绩的和无成绩的)
  5. 查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩

以上是关于超经典的SQL50道练习题,助力SQL提升!的主要内容,如果未能解决你的问题,请参考以下文章

经典50道SQL练习题

经典50道SQL练习题

超经典的20道SQL题目(附加解题思路)

超经典的20道SQL题目(附加解题思路)

Spark SQL两道超经典练习题!必会!

超经典sql练习题,在teradata上实现