MySQL之练习题5
1、将所有的课程的名称以及对应的任课老师姓名打印出来,如下:
SELECT cname,tname FROM course INNER JOIN teacher WHERE course.teacher_id=teacher.tid 2、查询学生表中男女生各有多少人? 如下:
SELECT gender,COUNT(gender) 人数 FROM student GROUP BY gender
3、查询物理成绩等于100的学生的姓名?如下:
SELECT sid,sname FROM student WHERE sid in (SELECT student_id FROM score WHERE course_id=2 and num=100) 4、查询平均成绩大于八十分的同学的姓名和平均成绩,如下:
SELECT sname,平均成绩 from (SELECT sid,sname from student) s INNER JOIN
(SELECT student_id,avg(num) 平均成绩 from score GROUP BY student_id HAVING avg(num)>80) c
WHERE sid=student_id 5、查询所有学生的学号,姓名,选课数,总成绩
SELECT s.sid,s.sname,x.课程数,x.总成绩 FROM (SELECT sid,sname FROM student) s INNER JOIN
(SELECT student_id,COUNT(course_id) 课程数,SUM(num) 总成绩 from score GROUP BY student_id) x
WHERE sid=student_id 6、查询姓李老师的个数
SELECT COUNT(tid) FROM teacher WHERE tname like '李%' 7、查询没有报李平老师课的学生姓名
SELECT DISTINCT sname FROM student WHERE sid not in (SELECT DISTINCT student_id FROM score WHERE course_id in (SELECT cid from course WHERE teacher_id=2)) 8、查询物理课程比生物课程高的学生的学号
SELECT sw.student_id from (SELECT student_id,num from score WHERE course_id=2) wl INNER JOIN
( SELECT student_id,num from score WHERE course_id=1) sw
WHERE wl.num>sw.num and wl.student_id=sw.student_id 9、查询没有同时选修物理课程和体育课程的学生姓名
SELECT sname FROM student WHERE sid in
(SELECT wl.student_id FROM (SELECT student_id,course_id from score WHERE course_id=2) wl INNER JOIN
(SELECT student_id,course_id from score WHERE course_id=3) ty
WHERE wl.student_id=ty.student_id) 10、查询挂科超过两门(包括两门)的学生姓名和班级
SELECT sname,caption FROM class INNER JOIN
(SELECT sname,class_id from student INNER JOIN (SELECT student_id,COUNT(student_id) 挂科次数 FROM score
WHERE num<60 GROUP BY student_id) gk WHERE sid=student_id and 挂科次数>=2) s
WHERE cid=class_id 11 、查询选修了所有课程的学生姓名
SELECT sname FROM student WHERE sid in (SELECT c.student_id FROM (SELECT a.student_id FROM (SELECT * from score WHERE course_id=1) a
INNER JOIN (SELECT * from score WHERE course_id=2) b
WHERE a.student_id=b.student_id) c INNER JOIN
(SELECT a.student_id FROM (SELECT * from score WHERE course_id=2) a
INNER JOIN (SELECT * from score WHERE course_id=3) b
WHERE a.student_id=b.student_id) d
WHERE c.student_id=d.student_id) 12、查询李平老师教的课程的所有成绩记录
SELECT sid,sname,cname,num FROM course INNER JOIN (SELECT student.sid,sname,course_id,num FROM student INNER JOIN (SELECT * FROM score WHERE course_id in
(SELECT cid FROM course WHERE teacher_id=(SELECT tid FROM teacher WHERE tid=2))) a
WHERE student.sid=a.student_id) a WHERE cid=a.course_id 13、查询全部学生都选修了的课程号和课程名:没有
SELECT * from (SELECT course_id,COUNT(student_id) 报名人数 FROM score GROUP BY course_id) a INNER JOIN
(SELECT COUNT(sid) 学生总数 FROM student) b
WHERE 报名人数=学生总数 -- 14、查询每门课程被选修的次数
SELECT course.cname,a.aa from (select course_id,count(course_id)as aa from score GROUP BY course_id)as a
INNER JOIN course on course.cid=a.course_id -- 15、查询之选修了一门课程的学生姓名和学号
SELECT student.sid,student.sname,a.aa from (SELECT student_id,count(student_id) as aa from score GROUP BY student_id having aa=1) as a
INNER JOIN student on student.sid=a.student_id -- 16、查询所有学生考出的成绩并按从高到低排序(成绩去重)
select DISTINCT(num) FROM score ORDER BY num DESC -- 17、查询平均成绩大于85的学生姓名和平均成绩
SELECT student.sname,a.aa from (SELECT student_id,avg(num) as aa from score GROUP BY student_id having aa >85) as a
INNER JOIN student on student.sid=a.student_id -- 18、查询生物成绩不及格的学生姓名和对应生物分数
select student.sname,a.num from (SELECT * from score where num < 60 and course_id=
(SELECT cid FROM course where cname='生物')) as a
INNER JOIN student on student.sid=a.student_id
MySQL之练习题5的更多相关文章
- 【Python全栈-后端开发】MySQL数据库-练习题
MySQL数据库-练习题 一.表关系 请创建如下表,并创建相关约束 二.操作表 1.自行创建测试数据 2.查询“生物”课程比“物理”课程成绩高的所有学生的学号: 3.查询平均成绩大于60分的同学的学号 ...
- MYSQL经典练习题,熟悉DQL
MYSQL经典练习题 (本练习题可让你熟悉DQL,快速的上手DQL) 首先,先在数据库中建立基本数据库以及表项: DROP DATABASE IF EXISTS `test`; CREATE DATA ...
- MySQL经典练习题
表名和字段 –1.学生表 Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别 –2.课程表 Course(c_id,c_name,t_id ...
- day41 mysql 学习 练习题 重要*****
MySQL 练习题[二1.表如下: 收获和注意点:***** #1 GROUP by 可以放到where s_id in ()条件局后边 GROUP BY s_id having 详见题12 #2 做 ...
- mysql 及练习题
if() 函数的用法 IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false, mysql,'女','男') as sex fr ...
- MySQL--python关联MySQL、练习题
1.python关联MySQL pymysql: 安装:pip3 install pymysql 1.0:连接到数据库中 import pymysql conn = pymysql.connect( ...
- MySQL经典练习题及答案,常用SQL语句练习50题
表名和字段 –1.学生表 Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别 –2.课程表 Course(c_id,c_name,t_id ...
- 四、MYSQL数据练习题
我的MYSQL版本是mysql-5.7.24-winx64,每天练习5道习题. 如果有错误或者更优的解决方法,欢迎大家指出,谢谢!! 一.测试表格 --1.学生表Student(Sid,Sname,S ...
- mysql基础练习题
一.表关系 请创建如下表,并创建相关约束 二.操作表 1.自行创建测试数据 /* Navicat MySQL Data Transfer Source Server : mysql5.7.1 Sour ...
- 一道很好的mysql面试练习题,having综合应用
写一条SQL语句,求出2门以及2门以上不及格的科目平均分 >要出现2门以及2门以上的学科不及格 >计算该考生所有学科的平均分,不单是,不及格的那几门 #创建表: create table ...
随机推荐
- archlinux上安装sublime text
因为sublime text不是开源所以在官方库没有收纳,但是在archlinuxcn上面有. #vim /etc/pacman.conf 在末尾添加: [archlinuxcn] SigLevel ...
- Java时间操作常用api
- 如何取得年月日.小时分钟秒?- 如何取得从1970年1月1日0时0分0秒到现在的毫秒数?- 如何取得某月的最后一天?- 如何格式化日期?答:问题1:创建java.util.Calendar 实例, ...
- github上关于iOS的各种开源项目集合(转)
UI 下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件. SVPullToRefresh - 下拉刷新控件. MJRefresh - 仅需一行代码就可以为UITable ...
- 推荐的 MongoDB 安装文档
简介: MongoDB 是一个由 C++ 语言编写的基于分布式文件存储的数据库,是目前最像关系型数据库的非关系型数据库. 最近写爬虫, 思来想去觉得还是用 MongoDB 比较方便. 一.安装 # 官 ...
- 信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path:
问题信息详细: 信息: The APR based Apache Tomcat Native library which allows optimal performance in productio ...
- nyoj86-找球号(一) 【set 二分查找 hash】
http://acm.nyist.net/JudgeOnline/problem.php?pid=86 找球号(一) 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 ...
- Python3 exec 函数
Python3 exec 函数 Python3 内置函数 描述 exec 执行储存在字符串或文件中的 Python 语句,相比于 eval,exec可以执行更复杂的 Python 代码. 语法 以下 ...
- Url,HTTPUrlConnection(一)
package com.cmy.urlcon; import java.io.BufferedReader; import java.io.IOException; import java.io.In ...
- React Native 首次加载白屏优化
RN首次加载都会有个白屏过程,一般都会有500ms+的白屏时间,原生页面开发同样的页面会能够快速显示而在RN页面中有个明显的等待过程,这个会影响用户体验. 1.使用过渡页面 简单处理可以在白屏过程中加 ...
- error: In function ‘void* opencv_showimg(void*)’:
今天这个问题折磨了我一下午,终于知道是为什么了,心酸历程.....赶紧来记录一下 错误: /home/wj/workspace/Loitor_VI_Sensor_SDK_V1./SDK/src/cam ...