mysql查询选修课的人数_mysql查询语句练习

#建学生信息表student

create table student

(

sno varchar(20) not null primary key,

sname varchar(20) not null,

ssex varchar(20) not null,

sbirthday datetime,

class varchar(20)

);

#建立教师表

create table teacher

(

tno varchar(20) not null primary key,

tname varchar(20) not null,

tsex varchar(20) not null,

tbirthday datetime,

prof varchar(20),

depart varchar(20) not null

);

#建立课程表course

create table course

(

cno varchar(20) not null primary key,

cname varchar(20) not null,

tno varchar(20) not null,

foreign key(tno) references teacher(tno)

);

#建立成绩表

create table score

(

sno varchar(20) not null primary key,

foreign key(sno) references student(sno),

cno varchar(20) not null,

foreign key(cno) references course(cno),

degree decimal

);

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

select sname,ssex,class from student

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

select distinct depart from teacher3、 查询Student表的所有记录。

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

select * from score where degree between 60 and 805、 查询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 desc8、 以cno升序、degree降序查询Score表的所有记录。select * from score order by cno asc,degree desc9、 查询“95031”班的学生人数。select count(*) from student where class='95031'10、查询score表中的最高分的学生学号和课程号

select sno,cno from score where degree=(select max(degree) from score)11、查询每门课的平均成绩。select avg(degree) from score group by cno12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。select  avg(degree) from score where cno like '3%' and cno in (select cno from score group by cno having count(*)>513、查询分数大于70,小于90的Sno列。select sno from score where degree>70 and degree<9014、查询所有学生的Sname、Cno和Degree列。select sname,cno,degree from score,student where score.cno=student.sno15、查询“95033”班学生的平均分。

select avg(degree) as 'class=95033' from score where sno in (select sno from student where class='95033')

16、查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。select * from score where degree>(select degree from score where sno='109' and cno='3-105'

17、查询“张旭“教师任课的学生成绩。

select sno,degree from score,course where score.cno=course.cno and course.tno=(select tno from teacher where tname='张旭'18、查询选修某课程的同学人数多于5人的教师姓名。select tname from teacher where tno=(select tno from course where cno=(select cno from score group by cno having count(*)>5))19、查询95033班和95031班全体学生的记录。select * from student where class in ('95031','95033')20、查询存在有85分以上成绩的课程Cno.

select cno from score where degree>8521、查询出“计算机系“教师所教课程的成绩表。

select * from course where cno in (select cno from course where tno in(select tno from teacher where depart='计算机系'))22、查询选修编号为“3-105“课程且成绩至少高于选修编号为“3-245”的同学的Cno、Sno和Degree,并按Degree从高到低次序排序。

select cno,sno,degree from score where cno='3-105' and degree> any(select degree from score where cno='3-245') order by degree desc23、查询选修编号为“3-105”且成绩高于选修编号为“3-245”课程的同学的Cno、Sno和Degreeselect cno,sno,degree from score where cno='3-105' and degree> aall(select degree from score where cno='3-245') order by degree desc24、查询成绩比该课程平均成绩低的同学的成绩表。

select * from score as a where degree

select tname,depart from teacher where tno in (select tno from course)26 、 查询所有未讲课的教师的Tname和Depart.

select tname,depart from teacher where tno not in (select tno from course where cno in (select cno from course))27、查询至少有2名男生的班号。

select class from student where ssex='男' group by class having count(*)>128、查询Student表中不姓“王”的同学记录。

select * from student where sname not like '王%’29、查询Student表中最大和最小的Sbirthday日期值。

select max(sbirthday),min(sbirthday) from student30、查询所有选修“计算机导论”课程的“男”同学的成绩表。select sno,cno,degree from score where cno=(select cno from course where cname='计算机导论') and sno in (select sno from student where ssex='男')31、查询和“李军”同性别并同班的同学Sname.

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

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值