mysql数据库上机题_MYSQL数据库练习题操作(select)大全

本文提供了一系列的MySQL数据库查询题目,涵盖了基本的SELECT语句、子查询、连接查询、聚合函数和条件过滤等操作。通过这些实例,读者可以深入理解如何在实际场景中使用SQL进行数据检索和分析。
摘要由CSDN通过智能技术生成

1、 查询Student表中的所有记录的Sname、Ssex和Class列。select sname,ssex,class fromstudent;2、查询教师所有的单位即不重复的Depart列。select distinct depart fromteacher;3、 查询Student表的所有记录。select * fromstudent;4、 查询Score表中成绩在60到80之间的所有记录。select * from score where degree>60 and degree<80;5、 查询Score表中成绩为85,86或88的记录。select * from score where degree in (85,86,88);6、 查询Student表中“95031”班或性别为“女”的同学记录。select * from student where class like '95031' or ssex like '女';7、 以Class降序查询Student表的所有记录。select * from student order by class desc;8、 以Cno升序、Degree降序查询Score表的所有记录。select * from score order by cno asc , degree desc;9、 查询“95031”班的学生人数。select count(*) from student group byclass;10、 查询Score表中的最高分的学生学号和课程号。(子查询或者排序)select * from score order by degree desc limit 1;

下面这个使用的连接查询select max(degree) fromscore #先写出score的最高分select * from score where degree = (select max(degree) fromscore);select sno,cno from score where degree = (select max(degree) fromscore);11、 查询每门课的平均成绩。select cno,count(*),avg(degree) from score group by cno having count(*); 多条查询12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。select cno,avg(degree) from score where cno like '3-105' and cno like '3%';select * from score group bydegree;select cno,count(*),avg(degree) from score where cno like '3%' group by cno having count(*) >= 5;select cno,count(*),avg(degree) from score where cno like '3%' group by cno having count(*) >= 5;13、查询分数大于70,小于90的Sno列。select sno,degree from score where degree>70 and degree<90;select group_concat(sno) from score where degree>70 and degree<90;14、查询所有学生的Sname、Cno和Degree列。(多表查询)

student.sname,course.cno,score.degreeselect student.sname,course.cno,score.degree fromstudent,course,score;select sname,cno,degree from student join score on student.sno =score.sno;15、查询所有学生的Sno、Cname和Degree列。

student.sno,course.cname,score.degreeselect student.sno,course.cname,score.degree fromstudent,course,score;select sno,cname,degree from score join course on course.cno =score.cno;16、查询所有学生的Sname、Cname和Degree列。

student.sname,course.cname,score.degree;select student.sname,course.cname,score.degree fromstudent,course,score;select student.sname,course.cname,score.degree from student,course,score where sname between '李军' and '王丽';select student.sname,cname,degree from student join score on student.sno = score.sno join course on course.cno =score.cno;17、查询“95033”班学生的平均分。select sno from student where class = '95033';select avg(degree) from score where sno in(select sno from student where class = '95033');18、查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。select degree from score where sno = '109' and cno = '3-105';select sno,degree from score where degree > (select degree from score where sno = '109' and cno = '3-105');19、查询score中选学多门课程的同学中分数为非最高分成绩的记录。select cno from score where (cno = '3-245' and cno = '3-105') or (cno = '3-245' and cno = '6-166') or (cno = '3-245' and cno = '6-166'); 这是个错误的select * from Score a where Sno in (select Sno from Score group by Sno having count(*)>1 ) and Degree not in (select max(Degree) from Score b where b.Cno =a.Cno)select * from Score a where Sno in (select Sno from Score group by Sno having count(*)>1 ) and Degree not in (select max(Degree) from Score a where Sno in (select Sno from Score group by Sno having count(*)>1))20、查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。select degree from score where sno = '109' and cno = '3-105';select * from score where degree > (select degree from score where sno = '109' and cno = '3-105');21、查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。select sbirthday from student where sno = '108';select sno,sname,sbirthday from student where sbirthday = (select sbirthday from student where sno = '108');22、查询“张旭“教师任课的学生成绩(姓名)。select tno from teacher where tname = '张旭'; #找出教师编号select cno from course where tno = (select tno from teacher where tname = '张旭'); #找出课程编号select sno,degree from score where cno = (select cno from course where tno = (select tno from teacher where tname = '张旭'));select student.sno,degree,sname from score join student on score.sno = student.sno where student.sno in (select sno from score where cno = (select cno from course where tno = (select tno from teacher where tname = '张旭')));23、查询考计算机导论的学生成绩select cno from course where cname = '计算机导论'; #找到课程编号3-105

select sno,degree from score where cno = (select cno from course where cname = '计算机导论');24、查询李诚老师教的课程名称select tno from teacher where tname = '李诚'; ##找到教师编号select cname from course where tno = (select tno from teacher where tname = '李诚');25、教高等数学的老师是哪个系的select tno from course where cname = '高等数学';select depart from teacher where tno = (select tno from course where cname = '高等数学');26、查询选修某课程的同学人数多于5人的教师姓名。select cno,count(*) from score group by cno having count(*)>=5; #找出课程编号select tno from course where cno = (select cno from score group by cno having count(*)>=5);select tname from teacher where tno = (select tno from course where cno = (select cno from score group by cno having count(*)>=5));27、查询95033班和95031班全体学生的记录。select * from student group by class having count(*);select * from student order by class desc;28、查询成绩表中存在有85分以上成绩的课程Cno.select cno,degree from score where degree>85;29、查询出“计算机系“教师所教课程的成绩表。select tno,tname from teacher where depart = '计算机系'#查出教师编号select cno from course where tno in (select tno from teacher where depart = '计算机系'); #查出课程编号select sno,cno,degree from score where cno in (select cno from course where tno in (select tno from teacher where depart = '计算机系'));30、查询选修编号为“3-105”且成绩高于选修编号为“3-245”课程的同学的 Cno、Sno和Degree.select max(degree) from score where cno = '3-245'; #先把选修编号为3-245课程的同学的最高成绩查询出来select cno,sno,degree from score where cno = '3-105' and degree > (select max(degree) from score where cno = '3-245');31、查询所有教师和同学的name、sex和birthday.select tname as name,tsex as sex,tbirthday as birthday fromteacherunion

select sname,ssex,sbirthday fromstudent;32、查询所有“女”教师和“女”同学的name、sex和birthday.select tname as name,tsex as sex,tbirthday as birthday from teacher where tsex = '女'

union

select sname,ssex,sbirthday from student where ssex = '女';33、查询所有成绩比3-105课程平均成绩低的同学的成绩表。select avg(degree) from score where cno = '3-105';select degree from score where degree < (select avg(degree) from score where cno = '3-105');34、查询所有任课教师的Tname和Depart.select tname,depart fromteacher;35、查询所有未讲课的教师的Tname和Depart.select tno from course group bytno; #找出有课的老师的编号select tname,depart from teacher where not exists(select tno from course group bytno);36、查询至少有2名男生的班号。#####################################################3

select ssex,class from student where ssex = '男' group byclass;select class from student where exists ((select ssex,class from student where ssex = '男' group by class) * 2);37、查询Student表中不姓“王”的同学记录。select sname from student where sname like '王%'

select sname from student where sname not in (select sname from student where sname like '王%');38、查询Student表中每个学生的姓名和年龄。selectsname,select floor(datediff(curdate(),@birthday)/365.2422)39、查询Student表中最大和最小的Sbirthday日期值。select max(sbirthday) as '最大日期' , min(sbirthday) as '最小日期' fromstudent;update student set sbirthday = '1995-07-11' where sno = '108';update student set sbirthday = '1820-05-01' where sno = '105';40、以班号和年龄从大到小的顺序查询Student表中的全部记录。select * from student order by class desc,sbirthday desc;41、查询“男”教师及其所上的课程。select tno from teacher where tsex = '男';select cname from course where tno in (select tno from teacher where tsex = '男');42、查询最高分同学的Sno、Cno和Degree列。select max(degree) fromscoreselect score.sno,cno,degree fromstudentjoinscoreon student.sno =score.snowhere degree = (select max(degree) fromscore);43、查询和“李军”同性别的所有同学的Sname.select ssex from student where sname = '李军';select sname from student where ssex = (select ssex from student where sname = '李军');44、查询和“李军”同性别并同班的同学Sname.select class from student where sname = '李军';select sname from student where ssex = (select ssex from student where sname = '李军') and class = (select class from student where sname = '李军');45、查询所有选修“计算机导论”课程的“男”同学的成绩表。select cno from course where cname = '计算机导论'; #根据课程表找到课程编号select sno from score where cno = (select cno from course where cname = '计算机导论'); #根据课程编号找到成绩表里面的学生编号select sname from student where sno in (select sno from score where cno = (select cno from course where cname = '计算机导论')) and ssex = '男';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值