mysql 多表查询练习题(一)数据准备
创建四张表:
学生表: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', '宋三东');
问题:
- 查询平均成绩大于70分的同学的学号和平均成绩
- 查询所有同学的学号、姓名、选课数、总成绩
- 查询姓“李”的老师的个数
- 查询学过“李纯”老师课的同学的学号、姓名
- 查询没学过“李雷”老师课的同学的学号、姓名
- 查询学过“001”并且也学过编号“002”课程的同学的学号、姓名
- 查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名
- 查询学过“李雷”老师所教的所有课的同学的学号、姓名
- 查询各科成绩最高和最低的分:以如下形式显示:课程ID,课程名最高分,最低分
- 查询没有学全所有课的同学的学号、姓名
- 查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名
- 按各科平均成绩从低到高和及格率的百分数从高到低顺序。补充:concat() 方法用于连接两个或多个数组,百分数表示方法 CONCAT(值1/值2*100,'%')
- 删除学习“李纯”老师课的SC表记录
答案见下一篇,点击跳转
mysql 多表查询练习题(一)数据准备相关推荐
- MySQL单表查询练习题
数据准备:install.bat @ECHO OFF ::未配置环境变量下 cd C:\Program Files\MySQL\MySQL Server 5.7\bin\ SET dbhost=127 ...
- MySQL多表查询练习题
一:准备数据 #创建表及插入记录 CREATE TABLE class (cid int(11) NOT NULL AUTO_INCREMENT,caption varchar(32) NOT NUL ...
- mysql 多表查询练习题_mysql多表查询练习
导入hellodb.sql生成数据库,并进入到数据库之中 mysql -uroot < hellodb.sql use mysql (1)以ClassID分组,显示每班的同学的人数 `selec ...
- (四)MySQL学习笔记——多表设计、多表查询、多表查询练习题
文章目录 一.多表设计 1.一对一设计 2.一对多设计 3.多对多设计 二.多表查询 多表查询前的数据准备 1.内连接查询 2.外连接查询 3.子查询 4.自关联查询 三.多表查询练习 一.多表设计 ...
- php多表数据排除,thinkphp中多表查询中防止数据重复的sql语句(必看)
thinkphp中多表查询中防止数据重复的sql语句(必看) 这里有新鲜出炉的精品教程,程序狗速度看过来! ThinkPHP 开源 PHP 框架 ThinkPHP 是一个开源的 PHP 框架,是为了简 ...
- 零基础带你学习MySQL—多表查询笛卡尔集(二十)
零基础带你学习MySQL-多表查询笛卡尔集(二十) 一.多表查询 多表查询:就是指基于两个和两个以上的表的查询,在实际应用中,单个表并不能满足你的需求,我们经常需要在很多个表之间查询数据 二.笛卡尔集 ...
- mysql 大表查询慢_mysql大表查询慢怎么优化?
mysql大表查询慢的优化方法:1.合理建立索引,通常查询利用到索引比不用索引更快:2.对关键字段建立水平分区,比如时间字段,若查询条件往往通过时间范围来进行查询,能提升不少性能:3.建立粗粒度数据表 ...
- Mysql 多表查询详解
Mysql 多表查询详解 一.前言 二.示例 三.注意事项 一.前言 上篇讲到Mysql中关键字执行的顺序,只涉及了一张表:实际应用大部分情况下,查询语句都会涉及到多张表格 : 1.1 多表连接有 ...
- Mysql多表查询效率的研究(一)
Mysql多表查询效率的研究(一) 本文探究了mysql InnoDB引擎在多表查询的应用场景下,使用子表.内连接和左联接运行速度的差别,并且比较了索引使用与否对查询效率的影响. 第一部分简略地概括了 ...
最新文章
- 最新的10个优质Python开源项目
- Asp.net的加密解密技巧--[转载]
- 科普 | USB 协议与接口
- CSS margin详解
- Matplotlib Tutorial(译)
- 几款开源的图形化Redis客户端管理软件推荐
- ITK:读取并打印DICOM标签
- 轻松把玩HttpClient之封装HttpClient工具类(五),携带Cookie的请求
- HTTPs 相关的东西
- 网络资源(1) - Hadoop视频
- Dempster证据理论python复现
- C语言格式化输出日期时间
- Logback-日志文件按日期切分解决方案
- 李清照(诗词介绍收藏)
- cp小纸条月老小程序无加密源码 带部署说明文档
- mysql 等距随机_随机起点对称等距抽样公式的简便运用
- writing idiomatic python 读书笔记(2)
- flutter doctor --android-licenses命令之后出现JAVA_HOME错误
- 敏捷管理 -- 质量和风险管理
- 鼠标左键一点就自动删除问题