创建四张表:

学生表:student(编号sid,姓名sname,年龄age,性别sex)

课程表:course(课程编号cid,课程名称cname,教师编号tid)

教师表:teacher(教师编号tid,姓名tname)

成绩表:sc(学生编号sid,课程编号cid,成绩score)

1、插入学生数据

学号

姓名

年龄

性别

1001

张宇

12

1002

张梅

18

1003

王鑫

16

1004

马东东

13

1005

孙子涵

12

1006

钱一

12

1007

赵贺

15

1008

周雪

16

2、插入老师数据

教师编号

教师姓名

1

李雷

2

李纯

3

胡悦悦

4

朱清时

5

赛鸿飞

6

宋三东

3、插入课程数据

课程编号

课程名

教师编号

001

PHP

1

002

C

1

003

C++

2

004

JAVA

3

005

Python

4

006

R

5

007

HTML

6

4、插入成绩数据

学号

课程编号

成绩

1001

001

89

1002

001

80

1003

001

30

1004

001

78

1005

001

68

1006

001

93

1007

001

62

1001

002

67

1002

002

86

1003

002

67

1004

002

77

1005

002

66

1006

002

84

1007

002

72

1001

003

82

1002

003

85

1003

003

32

1004

003

73

1005

003

64

1006

003

87

1007

003

77

1008

003

94

1001

004

39

1002

004

80

1003

004

80

1004

004

88

1005

004

68

1006

004

59

1007

004

42

1008

004

64

1001

005

89

1002

005

70

1003

005

60

1004

005

58

1005

005

38

1006

005

89

1007

005

72

1008

005

64

1001

006

49

1002

006

90

1003

006

70

1004

006

48

1005

006

98

1006

006

59

1007

006

72

1008

006

74

1001

007

49

1002

007

50

1003

007

70

1004

007

88

1005

007

78

1006

007

99

1007

007

82

建表语句和数据导入

/*
Navicat MySQL Data TransferSource Server         : ibeifeng
Source Server Version : 50717
Source Host           : localhost:3306
Source Database       : anli1Target Server Type    : MYSQL
Target Server Version : 50717
File Encoding         : 65001Date: 2019-01-06 10:19:07
*/SET FOREIGN_KEY_CHECKS=0;-- ----------------------------
-- Table structure for course
-- ----------------------------
DROP TABLE IF EXISTS `course`;
CREATE TABLE `course` (`cid` varchar(50) NOT NULL,`cname` varchar(50) NOT NULL,`tid` int(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of course
-- ----------------------------
INSERT INTO `course` VALUES ('001', 'PHP', '1');
INSERT INTO `course` VALUES ('002', 'C', '1');
INSERT INTO `course` VALUES ('003', 'C++', '2');
INSERT INTO `course` VALUES ('004', 'JAVA', '3');
INSERT INTO `course` VALUES ('005', 'python', '4');
INSERT INTO `course` VALUES ('006', 'R', '5');
INSERT INTO `course` VALUES ('007', 'HTML', '6');-- ----------------------------
-- Table structure for sc
-- ----------------------------
DROP TABLE IF EXISTS `sc`;
CREATE TABLE `sc` (`sid` int(10) NOT NULL,`cid` varchar(50) NOT NULL,`score` int(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of sc
-- ----------------------------
INSERT INTO `sc` VALUES ('1001', '001', '89');
INSERT INTO `sc` VALUES ('1002', '001', '80');
INSERT INTO `sc` VALUES ('1003', '001', '30');
INSERT INTO `sc` VALUES ('1004', '001', '78');
INSERT INTO `sc` VALUES ('1005', '001', '68');
INSERT INTO `sc` VALUES ('1006', '001', '93');
INSERT INTO `sc` VALUES ('1007', '001', '62');
INSERT INTO `sc` VALUES ('1001', '002', '67');
INSERT INTO `sc` VALUES ('1002', '002', '86');
INSERT INTO `sc` VALUES ('1003', '002', '67');
INSERT INTO `sc` VALUES ('1004', '002', '77');
INSERT INTO `sc` VALUES ('1006', '002', '84');
INSERT INTO `sc` VALUES ('1007', '002', '72');
INSERT INTO `sc` VALUES ('1001', '003', '82');
INSERT INTO `sc` VALUES ('1002', '003', '85');
INSERT INTO `sc` VALUES ('1003', '003', '32');
INSERT INTO `sc` VALUES ('1004', '003', '73');
INSERT INTO `sc` VALUES ('1005', '003', '64');
INSERT INTO `sc` VALUES ('1006', '003', '87');
INSERT INTO `sc` VALUES ('1007', '003', '77');
INSERT INTO `sc` VALUES ('1001', '004', '39');
INSERT INTO `sc` VALUES ('1003', '004', '80');
INSERT INTO `sc` VALUES ('1004', '004', '88');
INSERT INTO `sc` VALUES ('1005', '004', '68');
INSERT INTO `sc` VALUES ('1006', '004', '59');
INSERT INTO `sc` VALUES ('1007', '004', '42');
INSERT INTO `sc` VALUES ('1008', '004', '64');
INSERT INTO `sc` VALUES ('1001', '005', '89');
INSERT INTO `sc` VALUES ('1002', '005', '70');
INSERT INTO `sc` VALUES ('1003', '005', '60');
INSERT INTO `sc` VALUES ('1004', '005', '58');
INSERT INTO `sc` VALUES ('1005', '005', '38');
INSERT INTO `sc` VALUES ('1006', '005', '89');
INSERT INTO `sc` VALUES ('1007', '005', '72');
INSERT INTO `sc` VALUES ('1008', '005', '64');
INSERT INTO `sc` VALUES ('1001', '006', '49');
INSERT INTO `sc` VALUES ('1002', '006', '90');
INSERT INTO `sc` VALUES ('1003', '006', '70');
INSERT INTO `sc` VALUES ('1004', '006', '48');
INSERT INTO `sc` VALUES ('1005', '006', '98');
INSERT INTO `sc` VALUES ('1006', '006', '59');
INSERT INTO `sc` VALUES ('1007', '006', '72');
INSERT INTO `sc` VALUES ('1008', '006', '74');
INSERT INTO `sc` VALUES ('1001', '007', '49');
INSERT INTO `sc` VALUES ('1002', '007', '50');
INSERT INTO `sc` VALUES ('1003', '007', '70');
INSERT INTO `sc` VALUES ('1004', '007', '88');
INSERT INTO `sc` VALUES ('1005', '007', '78');
INSERT INTO `sc` VALUES ('1006', '007', '99');-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (`sid` int(10) NOT NULL,`sname` varchar(50) NOT NULL,`age` int(10) NOT NULL,`sex` varchar(10) NOT NULL,PRIMARY KEY (`sid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES ('1001', '张宇', '12', '男');
INSERT INTO `student` VALUES ('1002', '张梅', '18', '女');
INSERT INTO `student` VALUES ('1003', '王鑫', '16', '男');
INSERT INTO `student` VALUES ('1004', '马东东', '13', '女');
INSERT INTO `student` VALUES ('1005', '孙子涵', '12', '男');
INSERT INTO `student` VALUES ('1006', '钱一', '12', '男');
INSERT INTO `student` VALUES ('1007', '赵贺', '15', '男');
INSERT INTO `student` VALUES ('1008', '周雪', '16', '女');-- ----------------------------
-- Table structure for teacher
-- ----------------------------
DROP TABLE IF EXISTS `teacher`;
CREATE TABLE `teacher` (`tid` int(10) NOT NULL,`tname` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of teacher
-- ----------------------------
INSERT INTO `teacher` VALUES ('1', '李雷');
INSERT INTO `teacher` VALUES ('2', '李纯');
INSERT INTO `teacher` VALUES ('3', '胡悦悦');
INSERT INTO `teacher` VALUES ('4', '朱清时');
INSERT INTO `teacher` VALUES ('5', '赛鸿飞');
INSERT INTO `teacher` VALUES ('6', '宋三东');

问题:

  1. 查询平均成绩大于70分的同学的学号和平均成绩
  2. 查询所有同学的学号、姓名、选课数、总成绩
  3. 查询姓“李”的老师的个数
  4. 查询学过“李纯”老师课的同学的学号、姓名
  5. 查询没学过“李雷”老师课的同学的学号、姓名
  6. 查询学过“001”并且也学过编号“002”课程的同学的学号、姓名
  7. 查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名
  8. 查询学过“李雷”老师所教的所有课的同学的学号、姓名
  9. 查询各科成绩最高和最低的分:以如下形式显示:课程ID,课程名最高分,最低分
  10. 查询没有学全所有课的同学的学号、姓名
  11. 查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名
  12. 按各科平均成绩从低到高和及格率的百分数从高到低顺序。补充:concat() 方法用于连接两个或多个数组,百分数表示方法 CONCAT(值1/值2*100,'%')
  13. 删除学习“李纯”老师课的SC表记录

答案见下一篇,点击跳转

mysql 多表查询练习题(一)数据准备相关推荐

  1. MySQL单表查询练习题

    数据准备:install.bat @ECHO OFF ::未配置环境变量下 cd C:\Program Files\MySQL\MySQL Server 5.7\bin\ SET dbhost=127 ...

  2. MySQL多表查询练习题

    一:准备数据 #创建表及插入记录 CREATE TABLE class (cid int(11) NOT NULL AUTO_INCREMENT,caption varchar(32) NOT NUL ...

  3. mysql 多表查询练习题_mysql多表查询练习

    导入hellodb.sql生成数据库,并进入到数据库之中 mysql -uroot < hellodb.sql use mysql (1)以ClassID分组,显示每班的同学的人数 `selec ...

  4. (四)MySQL学习笔记——多表设计、多表查询、多表查询练习题

    文章目录 一.多表设计 1.一对一设计 2.一对多设计 3.多对多设计 二.多表查询 多表查询前的数据准备 1.内连接查询 2.外连接查询 3.子查询 4.自关联查询 三.多表查询练习 一.多表设计 ...

  5. php多表数据排除,thinkphp中多表查询中防止数据重复的sql语句(必看)

    thinkphp中多表查询中防止数据重复的sql语句(必看) 这里有新鲜出炉的精品教程,程序狗速度看过来! ThinkPHP 开源 PHP 框架 ThinkPHP 是一个开源的 PHP 框架,是为了简 ...

  6. 零基础带你学习MySQL—多表查询笛卡尔集(二十)

    零基础带你学习MySQL-多表查询笛卡尔集(二十) 一.多表查询 多表查询:就是指基于两个和两个以上的表的查询,在实际应用中,单个表并不能满足你的需求,我们经常需要在很多个表之间查询数据 二.笛卡尔集 ...

  7. mysql 大表查询慢_mysql大表查询慢怎么优化?

    mysql大表查询慢的优化方法:1.合理建立索引,通常查询利用到索引比不用索引更快:2.对关键字段建立水平分区,比如时间字段,若查询条件往往通过时间范围来进行查询,能提升不少性能:3.建立粗粒度数据表 ...

  8. Mysql 多表查询详解

    Mysql 多表查询详解 一.前言  二.示例 三.注意事项 一.前言  上篇讲到Mysql中关键字执行的顺序,只涉及了一张表:实际应用大部分情况下,查询语句都会涉及到多张表格 : 1.1 多表连接有 ...

  9. Mysql多表查询效率的研究(一)

    Mysql多表查询效率的研究(一) 本文探究了mysql InnoDB引擎在多表查询的应用场景下,使用子表.内连接和左联接运行速度的差别,并且比较了索引使用与否对查询效率的影响. 第一部分简略地概括了 ...

最新文章

  1. 最新的10个优质Python开源项目
  2. Asp.net的加密解密技巧--[转载]
  3. 科普 | USB 协议与接口
  4. CSS margin详解
  5. Matplotlib Tutorial(译)
  6. 几款开源的图形化Redis客户端管理软件推荐
  7. ITK:读取并打印DICOM标签
  8. 轻松把玩HttpClient之封装HttpClient工具类(五),携带Cookie的请求
  9. HTTPs 相关的东西
  10. 网络资源(1) - Hadoop视频
  11. Dempster证据理论python复现
  12. C语言格式化输出日期时间
  13. Logback-日志文件按日期切分解决方案
  14. 李清照(诗词介绍收藏)
  15. cp小纸条月老小程序无加密源码 带部署说明文档
  16. mysql 等距随机_随机起点对称等距抽样公式的简便运用
  17. writing idiomatic python 读书笔记(2)
  18. flutter doctor --android-licenses命令之后出现JAVA_HOME错误
  19. 敏捷管理 -- 质量和风险管理
  20. 鼠标左键一点就自动删除问题

热门文章

  1. javaweb第三版课后答案,干货满满
  2. Python求解非线性方程
  3. 解决input 中 type=“number“右侧上下箭头以及取消默认滚轮事件
  4. Visual SLAM笔记
  5. 2021MathorCup高校数学建模大数据竞赛解题思路
  6. 奇点临近:人类文明延续
  7. 【计算机网络-带宽与吞吐量】
  8. 使用Enter键代替Tab键的功能
  9. 系统的认识大数据人工智能数据分析中的数据
  10. 蚂蚁金服通讯框架学习一