MySql数据库基本select查询语句练习题,初学者易懂。

MySql数据库基本select查询语句练习题,初学者易懂。MySQL数据库的基本查询语句题目:

大家好,又见面了,我是你们的朋友全栈君。



数据库建立四个表:分别为

student(sid,sname,sage,ssex)

teacher(tid,tname)

course(cid,cname,tid)

sc(sid,cid,score)

— 1、查询“001”课程比”002″课程成绩高的所有学生的学号。

select a.sid FROM
(select * from sc where cid=”001″) as a,
(select * from sc where cid = “002”)as b
where a.sid = b.sid and a.score>b.score

— 2、查询平均成绩大于60分的同学的学号和平均成绩

select sid,avg(score) 
FROM sc
GROUP BY sid
HAVING avg(score)>=70;

— 3、查询所有的同学的学号、姓名、选课数、总成绩

select student.sid, sname,COUNT(*),sum(score)
from sc,student
where sc.sid = student.sid 
GROUP BY sid;

— 4、查询姓“李”的老师的个数

select COUNT(*)
from teacher
where tname LIKE ‘大%’;

— 5、查询没学过“叶平“老师的课程的同学的学号、姓名

SELECT sid,sname
from student
where sid NOT in(select sid
from sc,course,teacher
where sc.cid = course.cid and teacher.tid = course.tid and teacher.tname = “叶良辰”);

—  6、查询所有    课程有挂科的同学的学号、姓名

SELECT sid ,sname
from student
where 
sid in (select sid from sc) AND
sid not in(select sid from sc where score<60 GROUP BY sid);

—  7、查询至少一门课与学号为“2”的同学所学相同的学生的学号和姓名

SELECT DISTINCT(sc.sid)
from sc,student
where student.sid = sc.sid and cid in(select cid from sc where sc.sid=’2′) and student.sid<>’2′;

— 8、统计列印各科成绩,各分数段人数:课程ID、课程名称,100-85,85-70,70-60,<60

select sc.cid as ‘课程ID’,cname as ‘课程名称’,
SUM(case WHEN score between 85 and 100 then 1 else 0 end) as ’85-100′,
SUM(case WHEN score between 70 and 84 then 1 else 0 end) as ’70-84′,
SUM(case WHEN score between 69 and 60 then 1 else 0 end) as ’60-69′,
SUM(case WHEN score between 0 and 100 then 59 else 0 end) as ‘0-59’
from course,sc
where sc.cid=course.cid
GROUP BY sc.cid;

—  9、查询每门课程的课程名和选修的学生数

select cname,count(*)
from sc,course
where course.cid=sc.cid 
group by sc.cid;

— 10、查询出只选修了一门课程的全部同学的学号、姓名

select sc.sid,sname
from sc,student
where student.sid=sc.sid
GROUP BY (sc.sid)
HAVING COUNT(*)=1;

— 11、查询男生、女生的人数

(select “男生” AS “性别”,count(*) from student where ssex=”男”)
UNION
(select “女生” as “性别”, count(*) from student where ssex=”女”);

—  12、查询姓“李”的师生名单

(select sname as ‘名单’ from student where sname like ‘李%’)
union
(select tname as ‘名单’ from teacher where tname like “李%”);

在数据库建立三个表:

学生表:student(sno,sname,sage,ssex,sdept)==(学号,姓名,年龄,性别,系别)

课程表:course(cno,cname,credit)==(课程号,课程名,学分)

选课表:sc(sno,cno,grade)===(学号,课程号,成绩)

— 写出选修了数据结构的同学的学号和姓名

select *
from student
where sno in(select sno
 from sc,course 
where sc.cno=course.cno and cname=’数据结构’ 
);

— 1.统计每门课的选课人数,包括没有人选的课程,列出课程号及选课情况,其中选课情况为,如果此门课的选课人数超过100
— 人,则显示人多,40-100一般 1-40人好,无人选

select  course.cno ,
case 
when (count(*)>=40 and count(*)<=100) then  ‘较多’ 
when (count(*)>1 and count(*)<40) then ‘较少’
else ‘无人选’ end as ‘选课情况’
from course left join sc
on course.cno=sc.cno
GROUP BY cno;

—  2.查询计算机有哪些学生没有选课,列出姓名和学号(用外连接)
select sname
from student left join  sc on
sc.sno=student.sno
where sdept=”计科” and sc.sno is null;

2>– 成绩小于60的学生姓名,课程,成绩

select sname,cname,grade
from student,sc,course
where student.sno=sc.sno and sc.cno=course.cno
and grade<60;

— 3. 统计每个学生的选课人数和考试总成绩,并按照选课门数升序排列
select sno,count(*)’选课门数’ ,sum(grade)’总成绩’
from sc
GROUP BY sno
ORDER BY count(*) DESC;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140907.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python-Numpy学习之(一)ndim、shape、dtype、astype的用法

    python-Numpy学习之(一)ndim、shape、dtype、astype的用法python-Numpy学习之(一)ndim、shape、dtype、astype的用法参考网址:https://blog.csdn.net/Da_wan/article/details/80518725本文介绍numpy数组中这四个方法的区别ndim、shape、dtype、astype。1.ndimndim返回的是数组的维度,返回的只有一个数,该数即表示数组的维度。2….

    2022年6月14日
    26
  • ftp下载工具,6款能够满足所有需求的ftp下载工具[通俗易懂]

    ftp下载工具,6款能够满足所有需求的ftp下载工具[通俗易懂]Ftp下载工具俗称来讲就是Ftp工具,是我们常用的一个服务。Ftp下载工具主要是网络上用来传送文件的工具。但有些Ftp软件传输文件不是特别稳定。今天就来为大家分享3款非常好用和用户满意度最高的Ftp下载工具。第一款:IIS7服务器管理工具这款软件的Ftp客户端做的是非常棒的,不仅具有批量操作功能,还具有定时同步(上传和下载)和自动更新功能。这些功能真的是我超爱的功能,做事效率提高了不止一星半点。而且特别容易上手,一般的软件都还需要熟悉一下,这个就是很快的能开始运用。好处很多,需要用户慢慢去体会。有的东西

    2022年4月28日
    52
  • 微信朋友圈分享接口使用总结

    微信朋友圈分享接口使用总结微信朋友圈分享接口是非常细节的,而且不好调试,所以在此总结一下,以帮助大家首先应该遵循微信开发者文档介绍,用接口调试工具将你需要的接口的权限确定一下(这里得去申请接口权限)?然后将这个网址用手机端微信打开测试一下接口是否可用?http://203.195.235.76/jssdk/在保证所有的接口可用的前提下,下面我们正式进入主题我用的是java的struts框架写的后台vartimestam

    2022年5月30日
    39
  • 计算机键盘win键,win10键盘win键失灵怎么办_电脑win10win键没反应的解决方法

    计算机键盘win键,win10键盘win键失灵怎么办_电脑win10win键没反应的解决方法最近有朋友问小编win10键盘win键失灵怎么办,对于win10系统win键突然不能用的问题,相信很多朋友遇到过。有的朋友在升级完win10系统之后发现win10键盘win键失灵了,按下win键没反应,那么当我们遇到这种问题应该如何解决呢?别着急,小编这就为大家带来电脑win10win键没反应的解决方法。电脑win10win键没反应的解决方法:1、在Windows10系统桌面,右键点击任务栏的空白…

    2022年6月4日
    43
  • 数据库分区及分区优点

    数据库分区及分区优点此文从以下几个方面来整理关于分区表的概念及操作:        1.表空间及分区表的概念        2.表分区的具体作用        3.表分区的优缺点        4.表分区的几种类型及操作方法        5.对表分区的维护性操作. (1.)表空间及分区表的概念 表空间:   是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中

    2022年6月5日
    39
  • java dom4j解析_java dom4j解析器使用

    java dom4j解析_java dom4j解析器使用JavaDOM4J解析器介绍DOM4J是一个开源的,基于Java的库来解析XML文档,它具有高度的灵活性,高性能和内存效率的API。这是java的优化,使用Java集合像列表和数组。它可以使用DOM,SAX,XPath和XSLT。它解析大型XML文档时具有极低的内存占用。优点DOM4J使Java开发的灵活性和XML解析代码易于维护。它是轻量级的,快速的API。DOM4J类DOM4J定义了几个J…

    2022年7月26日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号