本次查询我们基于这几张表查询

***********查询练习**********

1、 查询Student表中的所有记录的Sname、Ssex和Class列。

select sname,ssex,class from student;

2、 查询教师所有的单位即不重复的Depart列。

select distinct depart from teacher;

3、 查询Student表的所有记录。

select * from student;

4、 查询Score表中成绩在60到80之间的所有记录。

Select * from score where degree between 60 and 80;

5、 查询Score表中成绩为85,86或88的记录。

Select * from score where degree in(85,86,88);

6、 查询Student表中“95031”班或性别为“女”的同学记录。

select * from student where class=”95031” or ssex=”女” ;

7、 以Class降序查询Student表的所有记录。

Select * from student order by class desc;

8、 以Cno升序、Degree降序查询Score表的所有记录。

Select * from score order by cno, degree desc;

9、 查询“95031”班的学生人数。

select count(*) from student where class = '';

10、 查询Score表中的最高分的学生学号和课程号。(子查询或者排序)

Select sno,cno,max(degree) from score group by cno;

11、 查询每门课的平均成绩。

Select cno,avg(degree) from score group by cno;

12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。

Select cno,avg(degree) from score where (select count(sno) from score )

至少有五名同学选修的课程:

Select cno, count(sno)>=5,avg(degree) from score where cno like’ 3%’ ;

13、查询分数大于70,小于90的Sno列。

Select sno from score where degree >70 and degree<90;

14、查询所有学生的Sname、Cno和Degree列。

Select sname,cno,degree from student,score where student.sno=score.sno;

15、查询所有学生的Sno、Cname和Degree列。

Select sno,cname,degree from score,course  where course.cno=score.cno;

16、查询所有学生的Sname、Cname和Degree列。

Select sname,cname,degree from student,course,score where student.sno=score.sno and course.cno=score.cno;

17、查询“95033”班学生的平均分。

Select class,avg(degree)  from student,score where student.sno=score.sno class=’95033’;

18、查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。

Select * from student,score where student.sno=score.sno and cno=’3-105’ and degree>(select degree from score where sno=’109’ and cno=’3-105’);

19、查询score中选学多门课程的同学中分数为非最高分成绩的记录。

先取出每科成绩的最高成绩

Select cno,max(degree) from score group by cno having count(*)>1;

select score.sno,score.cno,score.degree from score

join

(Select cno,max(degree) as big from score group by cno having count(*)>1)as a

on

score.cno = a.cno and score.degree <> a.big;

20、查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录

Select * from score where cno='3-105' and degree>(select degree from score where sno='' and cno='3-105');

21、查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。

Select * from student where sbirthday=(select sbiryhday from student where sno=’108’);

22、查询“张旭“教师任课的学生成绩(姓名)。

先找出该老师的课程编号;

Select cno from course where tno=(select tno from teacher where tname=’张旭’);

汇总:

Select sname,degree from student,score

where student.sno=score.sno

and cno=(Select cno from course where tno=(select tno from teacher where tname='张旭'));

23、查询考计算机导论的学生成绩

先找到计算机导论的课程编号

select cno from course where cname=('计算机导论');
Select sno,degree from score where cno= (select cno from course where cname=('计算机导论'));

24、课程名(cname)称为计算机导论 的课程编号

Select cno from course where cname=(‘计算机导论’);

25、查询李诚老师教的课程名称

select tno from teacher where tname=(‘李诚’);
Select cname from course where tno=(select tno from teacher where tname=(‘李诚’));

26、教高等数学的老师是哪个系的

Select tno from course where cname=(‘高等数学’);
Select depart from teacher where tno=(Select tno from course where cname=(‘高等数学’));

27、查询选修某课程的同学人数多于5人的教师姓名。

select cno from score group by cno having count(sno)>5;
select tname from teacher where tno=(select tno from course where cno=(select cno from score group by cno having count(sno)>5));

28、查询95033班和95031班全体学生的记录。

Select * from student where class in(95033,95031);

29、查询成绩表中存在有85分以上成绩的课程Cno.

Select cno from score where degree>85;

30、查询出“计算机系“教师所教课程的成绩表。

Select * from score where cno in ();

Select cno from course where tno in();

Select tno from teacher where depart=’计算机系’;

Select * from score where cno in (Select cno from course where tno in(Select tno from teacher where depart=’计算机系’));

31、查询选修编号为“3-105”且成绩高于选修编号为“3-245”课程的同学的Cno、Sno和Degree.

根据3-105找信息并且成绩还有要求

Select min(degree) from score where cno='3-245';

Select * from score where cno=’3-105’ and degree>(Select min(degree) from score where cno='3-245');

32、查询所有教师和同学的name、sex和birthday.

select sname,ssex,sbirthday from student

union

select tname,tsex,tbirthday from teacher;

33、查询所有“女”教师和“女”同学的name、sex和birthday.

select sname,ssex,sbirthday from student where ssex='女'

union

select tname,tsex,tbirthday from teacher  where tsex='女';

34、查询所有成绩 比3-105课程平均成绩低的同学的成绩表。

Select * from score where degree <(Select avg(degree) from score where cno='3-105');

35、查询所有任课教师的Tname和Depart.

Select tname,depart from teacher;

36、查询所有未讲课的教师的Tname和Depart.

Select tname,depart from teacher where tno in (select tno from course where cno not in(select cno from score));

37、查询至少有2名男生的班号。(根据性别班级分)

Select class,count(ssex=’男’) >=2 from student;

38、查询Student表中不姓“王”的同学记录。

Select * from student where sname not like '王%';

39、查询Student表中每个学生的姓名和年龄。

Select sname, (year(now())-year(sbirthday)) as old from student;

40、查询Student表中最大和最小的Sbirthday日期值。

select max(sbirthday),min(sbirthday)    from student;

41、以班号和年龄从大到小的顺序查询Student表中的全部记录。

Select * ,(year(now())-year(sbirthday)) as old from student order by  class desc,old desc;

42、查询“男”教师及其所上的课程。

Select tno from teacher where tsex= '男';

Select cno,cname from course where tno in (Select tno from teacher where tsex= '男');

43、查询最高分同学的Sno、Cno和Degree列。

Select * from score where degree=(select max(degree) from score);

44、查询和“李军”同性别的所有同学的Sname.

Select * from student where ssex=(select ssex from student where sname= '李军');

45、查询和“李军”同性别并同班的同学Sname.

Select sname from student where class=(select class from student where sname= '李军') and ssex=(select ssex from student where sname= '李军');

46、查询所有选修“计算机导论”课程的“男”同学的成绩表。

Select cno from course where cname= '计算机导论'

Select sno from student where ssex= '男'

Select * from score where cno in (Select cno from course where cname= '计算机导论')

And sno  in (Select sno from student where ssex= '男');

MySql——查询题目练习的更多相关文章

  1. mysql练习题目试水50题,附建库sql代码

    如果你没试过水的话,那一题一题地每一题都敲一遍吧.不管它们对你看来有多么简单.  建库代码 部分题目答案在末尾,可用ctrl f  搜索题号. 作业练习——学生-选课 表结构 学生表: Student ...

  2. MySQL查询练习2

    MySQL查询练习2 导读: 本次MySQL的查询语句是本人考试题目: 所有题目都已通过: 该查询练习并没有sql文件进行检查: 如果有书写以及其他错误欢迎指出. 题目正文: 1.找出借书超过5本的借 ...

  3. mysql查询性能优化

    mysql查询过程: 客户端发送查询请求. 服务器检查查询缓存,如果命中缓存,则返回结果,否则,继续执行. 服务器进行sql解析,预处理,再由优化器生成执行计划. Mysql调用存储引擎API执行优化 ...

  4. Mysql查询——深入学习

    1.开篇 之前上一篇的随笔基本上是单表的查询,也是mysql查询的一个基本.接下来我们要看看两个表以上的查询如何得到我们想要的结果. 在学习的过程中我们一起进步,成长.有什么写的不对的还望可以指出. ...

  5. Mysql 查询练习

    Mysql 查询练习 ---创建班级表 create table class( cid int auto_increment primary key, caption ) )engine=innodb ...

  6. mysql 查询去重 distinct

    mysql 查询去重 distinct   待完善内容..

  7. MySQl查询区分大小写的解决办法

    通过查询资料发现需要设置collate(校对) . collate规则: *_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的 *_cs: ca ...

  8. 【转】mysql查询结果输出到文件

    转自:http://www.cnblogs.com/emanlee/p/4233602.html mysql查询结果导出/输出/写入到文件 方法一: 直接执行命令: mysql> select ...

  9. MySQL查询缓存

    MySQL查询缓存 用于保存MySQL查询语句返回的完整结果,被命中时,MySQL会立即返回结果,省去解析.优化和执行等阶段. 如何检查缓存? MySQL保存结果于缓存中: 把SELECT语句本身做h ...

随机推荐

  1. 判断Git是否有新的提交

    公司要搭建CI,有这样一个需求:判断Git是否有新的提交,如果有的话拉取代码构建,如果没有不构建,Jenkins的搭建这里就不赘述了,主要讲一下判断这里. Jenkins需要安装插件Condition ...

  2. JS中获取数据库中的值

    在本次项目中,遇到很多问题,经过努力,都逐步得到解决.静下心来,做一个记录,以供以后学习. 在项目中遇到一个问题,需要在JS中读取数据库中的值,然后再把值返回到页面中,解决方案如下:使用Ajax方法来 ...

  3. Elasticsearch安装配置和测试

    官方教程:https://www.elastic.co/guide/en/elasticsearch/reference/master/_installation.html 中文教程:https:// ...

  4. Horizon的本地化

    1. 准备工作 apt-get install gettext horizon源码下载路径 /workspace/horizon/   2. 生成mo文件 django-admin.py makeme ...

  5. 编程之美Ex1——求二进制中1的个数

    又被阿里机考虐了一次,决定改变策略开始刷题T^T 一个字节(8bit)的无符号整型,求其二进制中的“1”的个数,算法执行效率尽可能高. 最先想到的移位操作,末尾位&00000001,然后右移, ...

  6. 关于掌握C#的内存堆栈概念

    很多时候,我们使用C#语言书写业务逻辑时,并不会太多地主动考虑到内存的占用和分配问题,但编的程序多了,就总会遇到一些性能问题.提到"性能"二字,就不得不考虑CPU和内存,而提到内存 ...

  7. 深度优先搜索入门:POJ1164城堡问题(递归、用栈模拟递归)

    将问题的各状态之间的转移关系描述为一个图,则深度优先搜索遍历整个图的框架为:Dfs(v) {if( v 访问过)return;将v标记为访问过;对和v相邻的每个点u: Dfs(u);}int main ...

  8. Java并发--并发容器之CopyOnWriteArrayList

    原文链接:http://ifeve.com/java-copy-on-write/ Copy-On-Write简称COW,是一种用于程序设计中的优化策略.其基本思路是,从一开始大家都在共享同一个内容, ...

  9. Servlet实现数字字母验证码图片(二)

    Servlet实现数字字母验证码图片(二): 生成验证码图片主要用到了一个BufferedImage类,如下:

  10. SmartSql 动态仓储

    动态代理仓储 SmartSql源码:https://github.com/Ahoo-Wang/SmartSql 简介 动态代理仓储(SmartSql.DyRepository)组件是SmartSql非 ...