10-221 在员工表中查询入职最晚的员工的编号,姓名和入职日期
在员工表中查询入职最晚的员工的编号,姓名和入职日期。
提示:这是一个嵌套查询。
select 员工编号,姓名,入职日期
from 员工
order by 入职日期 desc
limit 1
10-222 在员工表中查询每年入职的员工人数
在员工表中查询每年入职的员工人数,结果按入职年份升序排列。
select year(入职日期) as 年份,count(员工编号) as 入职人数
from 员工
group by year(入职日期)
order by year(入职日期)
10-223 在订单表中查询011号员工和121号员工承办的订单信息
在订单表中查询011号员工和121号员工承办的订单信息,要求结果中包含全部字段。
select * from 订单
where 员工编号 in('011','121')
10-224 查询比“网络工程”专业所有学生年龄都小的学生姓名
本题目要求编写SQL语句,
查询比“网络工程”专业所有学生年龄都小的学生姓名。
select distinct sname from stu
join major on major.mno=stu.mno
where datediff(now(),birdate)/365<
(select min(a.birdate) from
(select stu.sno,stu.sname,datediff(now(),birdate)/365 birdate
from stu
join major on major.mno=stu.mno
where major.mname ='网络工程'
) a)
and major.mname <>'网络工程'
10-225 查询软件工程专业中年龄最大的同学姓名
本题目要求编写SQL语句,
查询软件工程专业中年龄最大的同学姓名.
提示:请使用SELECT语句作答。
select sname
from stu
where mno in(select mno from major where mname='软件工程')
order by birdate
limit 1
10-226 查找课程选修的情况
本题目要求编写SQL语句,
查找所有开设的课程及被学生选修的情况(选课人数,最高成绩,最低成绩,平均成绩),如某门课程尚未有学生选修时也要列出来。
select cou.cno as 课程号,cname as 课程名,
count(sno) as 选课人数,
ifnull(max(grade),0) as 最高成绩,
ifnull(min(grade),0) as 最低成绩,
ifnull(avg(grade),0) as 平均成绩
from cou left join sc using(cno)
group by cou.cno,cname
10-227 查询各专业的学生人数
本题目要求编写SQL语句,
查询各专业的学生人数(注:有的专业尚没有学生,人数计为0)
select major.mno 专业号,major.mname 专业,
count(stu.sno) 人数
from major
left join stu on stu.mno=major.mno
group by major.mno
10-228 统计每个专业的男生与女生人数
本题目要求编写SQL语句,统计每个专业的男生与女生人数。
提示:请使用SELECT语句作答。
select major.mno 专业号,major.mname 专业名,
case sex when 1 then '男' else '女' end 性别,
count(stu.sno) 人数
from
stu,major
where major.mno=stu.mno
group by major.mno,stu.sex
10-229 查询选修了“C语言”课程,但是没有选修“数据结构”课程的学生
本题目要求编写SQL语句,查询选修了“C语言”课程,但是没有选修“数据结构”课程的学生姓名。
提示:请使用SELECT语句作答。
select stu.sname from sc
join cou on cou.cno=sc.cno
join stu on stu.sno=sc.sno
where cou.cname='C语言'
and sname not in(
select stu.sname from sc
join cou on cou.cno=sc.cno
join stu on stu.sno=sc.sno
where cou.cname='数据结构'
)
10-230 查询计算机工程专业学生选修但软件工程专业学生没有选修的课程。
本题目要求编写SQL语句,查询计算机工程专业学生选修但软件工程专业学生没有选修的课程名称。
提示:请使用SELECT语句作答。
select cou.cname from sc join
cou on cou.cno=sc.cno where sc.sno in
(select sno from stu
join major on stu.mno=major.mno
where major.mname='计算机工程')
and cou.cname not in
(select cou.cname from sc join
cou on cou.cno=sc.cno where sc.sno in
(select sno from stu
join major on stu.mno=major.mno
where major.mname='软件工程'))