mysql语法题_mysql数据库题语法练习

一、练习。导入下面sql执行语句

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

/*数据导入:

Navicat Premium Data Transfer

Source Server : localhost

Source Server Type : MySQL

Source Server Version : 50624

Source Host : localhost

Source Database : sqlexam

Target Server Type : MySQL

Target Server Version : 50624

File Encoding : utf-8

Date: 10/21/2016 06:46:46 AM*/SET NAMES utf8;

SET FOREIGN_KEY_CHECKS= 0;-- ----------------------------

-- Table structure for `class`-- ----------------------------DROP TABLE IF EXISTS `class`;

CREATE TABLE `class` (

`cid`int(11) NOT NULL AUTO_INCREMENT,

`caption` varchar(32) NOT NULL,

PRIMARY KEY (`cid`)

) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;-- ----------------------------

-- Records of `class`-- ----------------------------BEGIN;

INSERT INTO `class` VALUES ('1', '三年二班'), ('2', '三年三班'), ('3', '一年二班'), ('4', '二年九班');

COMMIT;-- ----------------------------

-- Table structure for`course`-- ----------------------------DROP TABLE IF EXISTS `course`;

CREATE TABLE `course` (

`cid`int(11) NOT NULL AUTO_INCREMENT,

`cname` varchar(32) NOT NULL,

`teacher_id`int(11) NOT NULL,

PRIMARY KEY (`cid`),

KEY `fk_course_teacher` (`teacher_id`),

CONSTRAINT `fk_course_teacher` FOREIGN KEY (`teacher_id`) REFERENCES `teacher` (`tid`)

) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;-- ----------------------------

--Records of `course`-- ----------------------------BEGIN;

INSERT INTO `course` VALUES ('1', '生物', '1'), ('2', '物理', '2'), ('3', '体育', '3'), ('4', '美术', '2');

COMMIT;-- ----------------------------

-- Table structure for`score`-- ----------------------------DROP TABLE IF EXISTS `score`;

CREATE TABLE `score` (

`sid`int(11) NOT NULL AUTO_INCREMENT,

`student_id`int(11) NOT NULL,

`course_id`int(11) NOT NULL,

`num`int(11) NOT NULL,

PRIMARY KEY (`sid`),

KEY `fk_score_student` (`student_id`),

KEY `fk_score_course` (`course_id`),

CONSTRAINT `fk_score_course` FOREIGN KEY (`course_id`) REFERENCES `course` (`cid`),

CONSTRAINT `fk_score_student` FOREIGN KEY (`student_id`) REFERENCES `student` (`sid`)

) ENGINE=InnoDB AUTO_INCREMENT=53 DEFAULT CHARSET=utf8;-- ----------------------------

--Records of `score`-- ----------------------------BEGIN;

INSERT INTO `score` VALUES ('1', '1', '1', '10'), ('2', '1', '2', '9'), ('5', '1', '4', '66'), ('6', '2', '1', '8'), ('8', '2', '3', '68'), ('9', '2', '4', '99'), ('10', '3', '1', '77'), ('11', '3', '2', '66'), ('12', '3', '3', '87'), ('13', '3', '4', '99'), ('14', '4', '1', '79'), ('15', '4', '2', '11'), ('16', '4', '3', '67'), ('17', '4', '4', '100'), ('18', '5', '1', '79'), ('19', '5', '2', '11'), ('20', '5', '3', '67'), ('21', '5', '4', '100'), ('22', '6', '1', '9'), ('23', '6', '2', '100'), ('24', '6', '3', '67'), ('25', '6', '4', '100'), ('26', '7', '1', '9'), ('27', '7', '2', '100'), ('28', '7', '3', '67'), ('29', '7', '4', '88'), ('30', '8', '1', '9'), ('31', '8', '2', '100'), ('32', '8', '3', '67'), ('33', '8', '4', '88'), ('34', '9', '1', '91'), ('35', '9', '2', '88'), ('36', '9', '3', '67'), ('37', '9', '4', '22'), ('38', '10', '1', '90'), ('39', '10', '2', '77'), ('40', '10', '3', '43'), ('41', '10', '4', '87'), ('42', '11', '1', '90'), ('43', '11', '2', '77'), ('44', '11', '3', '43'), ('45', '11', '4', '87'), ('46', '12', '1', '90'), ('47', '12', '2', '77'), ('48', '12', '3', '43'), ('49', '12', '4', '87'), ('52', '13', '3', '87');

COMMIT;-- ----------------------------

-- Table structure for`student`-- ----------------------------DROP TABLE IF EXISTS `student`;

CREATE TABLE `student` (

`sid`int(11) NOT NULL AUTO_INCREMENT,

`gender`char(1) NOT NULL,

`class_id`int(11) NOT NULL,

`sname` varchar(32) NOT NULL,

PRIMARY KEY (`sid`),

KEY `fk_class` (`class_id`),

CONSTRAINT `fk_class` FOREIGN KEY (`class_id`) REFERENCES `class` (`cid`)

) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;-- ----------------------------

--Records of `student`-- ----------------------------BEGIN;

INSERT INTO `student` VALUES ('1', '男', '1', '理解'), ('2', '女', '1', '钢蛋'), ('3', '男', '1', '张三'), ('4', '男', '1', '张一'), ('5', '女', '1', '张二'), ('6', '男', '1', '张四'), ('7', '女', '2', '铁锤'), ('8', '男', '2', '李三'), ('9', '男', '2', '李一'), ('10', '女', '2', '李二'), ('11', '男', '2', '李四'), ('12', '女', '3', '如花'), ('13', '男', '3', '刘三'), ('14', '男', '3', '刘一'), ('15', '女', '3', '刘二'), ('16', '男', '3', '刘四');

COMMIT;-- ----------------------------

-- Table structure for`teacher`-- ----------------------------DROP TABLE IF EXISTS `teacher`;

CREATE TABLE `teacher` (

`tid`int(11) NOT NULL AUTO_INCREMENT,

`tname` varchar(32) NOT NULL,

PRIMARY KEY (`tid`)

) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;-- ----------------------------

--Records of `teacher`-- ----------------------------BEGIN;

INSERT INTO `teacher` VALUES ('1', '张磊老师'), ('2', '李平老师'), ('3', '刘海燕老师'), ('4', '朱云海老师'), ('5', '李杰老师');

COMMIT;

SET FOREIGN_KEY_CHECKS= 1;

init.sql

导入方法。路径不支持中文

#准备表、记录

mysql>create database db1;

mysql>use db1;

mysql> source /root/init.sql

生成如下表

45cf08ddf64ed36414c2856fe1d56ec8.png

二、练习题部分

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1、查询所有的课程的名称以及对应的任课老师姓名2、查询学生表中男女生各有多少人3、查询物理成绩等于100的学生的姓名4、查询平均成绩大于八十分的同学的姓名和平均成绩5、查询所有学生的学号,姓名,选课数,总成绩6、 查询姓李老师的个数7、 查询没有报李平老师课的学生姓名8、 查询物理课程比生物课程高的学生的学号9、 查询没有同时选修物理课程和体育课程的学生姓名10、查询挂科超过两门(包括两门)的学生姓名和班级11、查询选修了所有课程的学生姓名12、查询李平老师教的课程的所有成绩记录13、查询全部学生都选修了的课程号和课程名14、查询每门课程被选修的次数15、查询之选修了一门课程的学生姓名和学号16、查询所有学生考出的成绩并按从高到低排序(成绩去重)17、查询平均成绩大于85的学生姓名和平均成绩18、查询生物成绩不及格的学生姓名和对应生物分数19、查询在所有选修了李平老师课程的学生中,这些课程(李平老师的课程,不是所有课程)平均成绩最高的学生姓名20、查询每门课程成绩最好的前两名学生姓名

View Code

三、参考答案。

1、查询所有的课程的名称以及对应的任课老师姓名

914325d8dd63a2ef3801afa91b0c3dba.png

2、查询学生表中男女生各有多少人

d62513406ea88d765048dda6cda32591.png

3、查询物理成绩等于100的学生的姓名

1eba590105376b1903f8fcbcc0cf0a5b.png

4、查询平均成绩大于八十分的同学的姓名和平均成绩。有问题

dc0f7a00d6a713402190a65a1b3d77e7.png

5、查询所有学生的学号,姓名,选课数,总成绩

cfbe84a5c1cdc9a252846029cb642d49.png

6、查询姓李老师的个数

5ee02b105007620283edbb8dadc93c44.png

7、查询没有报李平老师课的学生姓名

分析

teacher表,李平老师(tid= 2)

course表,发现李平老师教 物理, cid= 2score表,发现 cid=2的就是物理,寻找有物理分的学生idselect sname from student where sid not in(select student_id from score where course_id = 2);

fb37895ccc032e3b7c01506add6f629b.png

8、 查询物理课程比生物课程高的学生的学号

select t1.student_id from(select student_id,num from score where course_id =(select cid from course where cname = "物理")

)ast1

inner join

(select student_id,num from score where course_id =(select cid from course where cname = '生物')

)as t2 on t1.student_id =t2.student_idwhere t1.num > t2.num;

9f48cc2557107f8ba7a80d2d1aafc01f.png

9、查询没有同时选修物理课程和体育课程的学生姓名

select student.sname from student where sid in(select student_id from score where course_id in(select cid from course where cname = '物理' or cname = '体育')

group by student_id

having count(course_id)= 1);

92e12b5c5e8c920a22a80df13ff6688e.png

10、查询挂科超过两门(包括两门)的学生姓名和班级

select student.sname,class.caption fromstudent

inner join

(select student_id from score where num < 60group by student_id

having count(course_id)>= 2)ast1

inner joinclass on student.sid = t1.student_id and student.class_id = class.cid;

972d47037fc3659034d267d2a40c5ad0.png

11 、查询选修了所有课程的学生姓名

select student.sname from student where sid in(select student_id fromscore

group by student_id

having count(course_id)=(select count(cid) fromcourse)

);

54cc45a3df94649eef850f4d135b3347.png

12、查询李平老师教的课程的所有成绩记录

select * from score where course_id in(select cid fromcourse

inner join

teacher on course.teacher_id= teacher.tid where teacher.tname = '李平老师');

fa009816af66b942e34521065a12f6ed.png

13、查询全部学生都选修了的课程号和课程名

select * fromstudent

left join

(select student_id,group_concat(cname) fromscore

inner join

course on score.course_id=course.cid

group by student_id)ast1

on student.sid= t1.student_id;

14、查询每门课程被选修的次数

6705ae5166919ec477b83bdd835b9d39.png

15、查询之选修了一门课程的学生姓名和学号

select sid,sname from student where sid in(select student_id fromscore

group by student_id

having count(course_id)= 1);

3e50ebf16645d44c49f353319ae09d31.png

16、查询所有学生考出的成绩并按从高到低排序(成绩去重)

f258ee54fadd873a02894be2f4835f8e.png

17、查询平均成绩大于85的学生姓名和平均成绩

select sname,t1.avg_num fromstudent

inner join

(select student_id,avg(num) as avg_num fromscore

group by student_id

having avg(num)> 85)as t1 on student.sid = t1.student_id;

227fab4fc373fc4208a0d8a6736a3ea1.png

18、查询生物成绩不及格的学生姓名和对应生物分数

select sname 姓名,num 生物成绩 fromscore

left join course on score.course_id=course.cid

left join student on score.student_id=student.sidwhere course.cname = '生物'and score.num<60;

2decb6a5a0cbf90bec31ea080cc8138b.png

19、查询在所有选修了李平老师课程的学生中,这些课程(李平老师的课程,不是所有课程)平均成绩最高的学生姓名

select sname from student where sid =(select student_id from score where course_id in(select course.cid fromcourse

inner join

teacher on course.teacher_id=teacher.tidwhere teacher.tname = '李平老师')

group by student_id

order by avg(num) desc

limit1);

92853351541ebe0b561269a6358480c0.png

20、查询每门课程成绩最好的前两名学生姓名

第一步:求出每门课程的课程course_id,与最高分数first_num

46e96aa521a41303be9a03c6726d9dd7.png

第二步:去掉最高分,再按照课程分组,取得的最高分,就是第二高的分数second_num

select score.course_id,max(num) second_num fromscore

inner join

(select course_id,max(num) first_num fromscore

group by course_id

)as t on score.course_id =t.course_idwhere score.num

group by course_id;

a209b70c9f5dedda90721879ae5f0ae8.png

第三步:将表1和表2联合到一起,得到一张表t3,包含课程course_id与该们课程的first_num与second_num

select t1.course_id,t1.first_num,t2.second_num from(select course_id,max(num) first_num fromscore

group by course_id

)ast1

inner join

(select score.course_id,max(num) second_num fromscore

inner join

(select course_id,max(num) first_num fromscore

group by course_id)as t on score.course_id =t.course_idwhere score.num

group by course_id

)as t2 on t1.course_id = t2.course_id;

fb031be419376b427e3cc9fbccda3ced.png

调整

select score.student_id,t3.course_id,t3.first_num,t3.second_num fromscore

inner join

(select t1.course_id,t1.first_num,t2.second_num from(select course_id,max(num) first_num fromscore

group by course_id

)ast1

inner join

(select score.course_id,max(num) second_num fromscore

inner join

(select course_id,max(num) first_num fromscore

group by course_id)as t on score.course_id =t.course_idwhere score.num

group by course_id

)as t2 on t1.course_id =t2.course_id

)as t3 on score.course_id =t3.course_idwhere score.num >=t3.second_num

and score.num<=t3.first_num

order by course_id;

b5bf8d034c2d4f922c0ea22848921374.png

检验

51e19e9ecfef20911b3cc2edd2f976bc.png

21、查询不同课程但成绩相同的学号,课程号,成绩

3a5fbf194dfd3b3fa799e9bd7ab47b0a.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/452929.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenGL开发库的详细介绍

OpenGL开发库的组成 开发基于OpenGL的应用程序&#xff0c;必须先了解OpenGL的库函数。它采用C语言风格&#xff0c;提供大量的函数来进行图形的处理和显示。OpenGL库函数的命名方式非常有规律。所有OpenGL函数采用了以下格式<库前缀><根命令><可选的参数个数&g…

thinkphp5运行原理_ThinkPHP5.1~5.2全版本远程代码执行高危漏洞预警

漏洞综述关于ThinkPHPThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架&#xff0c;其借鉴了国外很多优秀的框架和模式&#xff0c;包括使用面向对象的开发结构和MVC模式&#xff0c;融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式等。该框架常…

ASP.NET MVC中controller和view相互传值的方式

ASP.NET MVC中Controller向view传值的方式&#xff1a; ViewBag、ViewData、TempData单个值的传递Json匿名类型ExpandoObjectCookieViewModel(向普通View页面传个Model对象、向强类型页面传一个Model对象、用一个ViewModel对象解决所有问题)ASP.NET MVC中view向Controller传值的…

Linux内核中的常用宏container_of其实很简单【转】

转自&#xff1a;http://blog.csdn.net/npy_lp/article/details/7010752 开发平台&#xff1a;Ubuntu11.04 编 译器&#xff1a;gcc version 4.5.2 (Ubuntu/Linaro4.5.2-8ubuntu4) Container_of在Linux内核中是一个常用的宏&#xff0c;用于从包含在某个结构中的指针获得结构本…

mysql concat例子_MYSQL中CONCAT详解

concat()函数1. 功能&#xff1a;返回结果为连接参数产生的字符串。如有任何一个参数为NULL &#xff0c;则返回值为 NULL。2. 语法concat(str1, str2,...)3. 例子案例一&#xff1a;mysql> select concat(苹果,香蕉,梨子);------------------------------| CONCAT(苹果,香蕉…

mysql php7安装配置_centos7无网络下安装部署php7.1.33+mysql5.7.28+apache2.4.6-Go语言中文社区...

centos7无网络下安装部署php7.1.33mysql5.7.28apache2.4.6一、1、先ping www.baidu.com&#xff0c;root账户下&#xff0c;如果未联网&#xff0c;创建目录&#xff0c;把提前下载好的rpm包拷贝到rpm目录下如图&#xff1a;(如果没有安装包请查看我的另一篇教程下载这些安装包…

webkit渲染

2019独角兽企业重金招聘Python工程师标准>>> 参考链接 理解WebKit和Chromium 简明魔法学院 Chrome软件渲染 WebKit渲染基础 Webkit 渲染基础 Webkit不是浏览器,它是一个渲染引擎 软件渲染 硬件渲染(GPU加速) 会触发GPU加速的属性 CSS3 3D transformation, trans…

element ui中dialog相关问题

一&#xff0c;今天需要在dialog里面引入另一个页面&#xff0c;就是打开dialog显示该页面&#xff08;把页面放到dialog中&#xff09;&#xff0c;引入的语句如下&#xff1a; <iframe src"view?pathrkdj_b" ></iframe> 二&#xff0c;使用table组件时…

spark java教程_(Spark)学习进度十四(Spark之Java独立应用编程)

环境如下:(更新了林子雨教程中不可使用的部分) Hadoop 2.6.0以上 java JDK 1.7以上 Spark 3.0.0-preview2 二、java独立应用编程(在下载依赖jar包的过程中如遇到卡顿现象可以Ctrl+C停止下载,然后重新执行本条命令即可继续下载相应的依赖jar包) 1、安装maven ubuntu中没有自带…

[零基础学JAVA]Java SE应用部分-34.Java常用API类库

本季目标1、StringBuffer类 2、Runtime 类 3、包装类与JDK 1.5的新特性——泛型 4、日期的操作类 5、Math类 6、Random类1、StringBuffer&#xff08;重点&#xff09; String 类的时候说过&#xff1a;String 类的内容一旦声明则不可改变&#xff0c;改变的只是其地址。…

我所理解的机器学习

各位请移步到【http://www.cnblogs.com/cchHers/p/8945908.html】转载于:https://www.cnblogs.com/cchHers/p/8933042.html

protobuf java文档_Java中使用Protobuf

gradle依赖库&#xff1a;implementation com.google.protobuf:protobuf-java:3.4.0implementation com.google.protobuf:protobuf-java-util:3.4.00.编写.proto文件&#xff0c;编译生成对应Java源文件&#xff1a;syntax "proto2";option java_generic_services …

多租户表设计

2019独角兽企业重金招聘Python工程师标准>>> multi-tenant-databases-in-the-cloudtips-amp-tricks-to-build-multi-tenant-databases-with-sql-databases团队开发框架实战—多租户支持转载于:https://my.oschina.net/yangjiandong/blog/1612626

CSS实现树形结构 + js加载数据

看到一款树形结构&#xff0c;比较喜欢它的样式&#xff0c;就参照它的外观自己做了一个&#xff0c;练习一下CSS。 做出来的效果如下&#xff1a; 拉莫小学 一年级 一班二班二年级三年级 一班二班三班树的dom结构&#xff1a; <div class"tree"><ul><…

Django中--自定义模型管理器类

BookInfo.objects.all()->objects是一个什么东西呢&#xff1f; 答&#xff1a;objects是models.Manger类的一个对象&#xff0c;是Django帮我自动生成的管理器对象&#xff0c;通过这个管理器可以实现对数据的查询。 自定义管理器之后Django不再帮我们生成默认的objects管…

第二章 API的理解和使用

2.1.1全局命令 Key * 查看所有键&#xff0c;(慎用&#xff0c;会把所有键都遍历一次并列出) Dbsize 查看键总数&#xff0c;不会遍历所有键&#xff0c;只是从内置函数中读取一个数 Exists [key] 检查键是否存在 Del [key] 删除键 Expire [key] [seconds] 设置键过期时间 Type…

Django中--使用redis存储历史浏览记录

class UserInfoView(LoginRequiredMixin, View):用户中心-信息页def get(self, request):显示# Django会给request对象添加一个属性request.user# 如果用户未登录->user是AnonymousUser类的一个实例对象# 如果用户登录->user是User类的一个实例对象# request.user.is_aut…

3D虚拟试衣有望解决厘米级服装误差 网购服装不再蒙

还在担心网购服装对实际穿着效果没把握吗&#xff1f;随着京东App 6.6.3版本的更新&#xff0c;京东试试3D虚拟试衣功能正式上线&#xff0c;消费者可按照自己的身材比例创建专属的3D模型&#xff0c;而试穿效果则可以完全依照模型来展现。据了解&#xff0c;这个系统未来还将实…

关于idea修改当前使用的git账户的问题

1、问题描述&#xff1a; 由于前一段时间公司迁移git&#xff0c;就是将项目代码等迁移到另一个git服务器上&#xff0c;结果用idea从git上clone代码的时候发现没有指定仓库,如下提提示 2、排查原因&#xff1a; 开始怀疑是没有把自己加入到项目成员里面&#xff0c;经过检查是…

分布式文件系统FastDFS

1. 什么是FastDFS FastDFS 是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制&#xff0c; 充分考虑了冗余备份、负载均衡、线性扩容等机制&#xff0c;并注重高可用、高性能等指标&#xff0c;使用 FastDFS 很容易搭建一套高性能的文件服务器集群提供文件…