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,一经查实,立即删除!

相关文章

ipv4的不足

v地址基本耗尽&#xff0c;这是当前最棘手的问题v路由表越来越大v功能不足&#xff0c;缺少对多媒体信息传输的支持v缺少对高速传输的支持v缺少对安全的支持v缺少对主机漫游的支持

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传值的…

自定义SeekBar 实时显示百分比进度

进度下方实时显示百分比进度禁止掉了SeekBar的滑动事件 详情 githus地址

数据结构与算法--3.字符串的旋转

题目&#xff1a; A是含有n个元素的数组&#xff0c;如果可以申请到最大内存&#xff0c;那么把A从位置i开始旋转是比较简单的。例如&#xff1a;A:a,b,c,d,e.其中i3,旋转后的字符串A为&#xff1a;d,e,a,b,c要求设计一个时间复杂度为O(n),空间复杂度为O(1)的算法&#xff0c;…

三网融合情况下,实时语音通信技术解决之道

随着技术和标准的不断成熟,伴随着“三网合一”的大潮,VoIP可望成为下一代电信基础设施结构的杨心,使未来各电信业务综合统一在IP网络上成为可能,导致数据的融合和未来电信市场的重组,并带来新的经济模式和价值链。 Internet在全世界范围内的快速发展和语音信号处理技术的进步,促…

ipv6相对于ipv4的改进

v更大的地址空间&#xff1a;16字节&#xff0c;128位v首部的简化&#xff1a;只有7个固定域&#xff0c;撤消了有关分段的域和校验和域&#xff0c;以便更快地处理分组&#xff0c;提高路由器的吞吐量缩短延时。v更好地支持选项&#xff1a;选项是有次序的&#xff0c;以便路由…

轻量高效的开源JavaScript插件和库 【转】

图片布局轮播图弹出层音频视频编辑器字符串表单存储动画时间其它加载器构建工具测试包管理器CDN图片 baguetteBox.js - 是一个简单易用的响应式图像灯箱效果脚本。demoLightgallery.js - 是一个功能齐全的JavaScript图像灯箱插件。demoviewerjs - 是一个图像预览插件。democrop…

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(苹果,香蕉…

常见的状态响应码

200&#xff1a;请求正常&#xff0c;服务器正常的返回数据 301&#xff1a;永久重定向。比如在访问www.jingdong.com的时候&#xff0c;会重定向到www.jd.com。 302&#xff1a;临时重定向。比如在访问一个需要登录的界面时&#xff0c;而此时没有登录&#xff0c;那么就会重定…

软件行业为什么那么多项目经理

记得听谁说过&#xff0c;软件行业的项目经理太滥了&#xff0c;二十几岁的毛头小伙子&#xff0c;动不动就是项目经理&#xff0c;手下没几个人&#xff0c;管的也没几个事&#xff0c;在其他行业&#xff0c;项目经理一般都是四五十岁的老头子做&#xff0c;要联系这&#xf…

ipv6的表示方法

v冒分十六进制表示法X:X:X:X:X:X:X:X 其中X表示地址中16位二进制数的十六进制值 例&#xff1a;FEDC:BA98:7654:3210:FEDC:BA98:7654:3210 v零压缩法如其中有多个连续的零&#xff0c;则可用零压缩法 如 &#xff1a;1080:0000:0000:0000:0008:0800:200C:417A 可写成&am…

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组件时…

数据结构与算法--4.使用堆栈模拟队列

问题&#xff1a; 队列的插入和删除遵循先入先出的原则&#xff0c;而堆栈遵循后进先出的原则。用两个堆栈模拟队列&#xff0c;要求实现时不能分配超过O&#xff08;1&#xff09;的内存&#xff0c;时间复杂度必须是o&#xff08;m&#xff09;。 思路&#xff1a; 用两个…

IT行业的你,在成本部门还是利润部门

题外话&#xff1a;本文应该引起项目管理者和开发人员的思考&#xff1a;如何进行薪酬管理&#xff1f;如何规划职业生涯&#xff1f; 生在IT行业&#xff0c;发现周围很多朋友对薪酬问题有疑问&#xff0c;因为这种不解&#xff0c;导致经常带情绪&#xff0c;对工作、生活很…

ipv4到ipv6的过渡

v双协议站&#xff1a;过渡时期&#xff0c;站点必须同时支持IPv4和IPv6v隧道技术&#xff1a;IPv6主机之间通信必须使用IPv4的隧道v首部转换&#xff1a;用于发送方使用IPv6&#xff0c;而接收方使用IPv4