面试题首页 > SQL语句面试题

SQL简单查询面试题

001经典SQL笔试题题干

学生表:student(学号sno,学生姓名sname,出生年月sbirth,性别ssex)
成绩表:score(学号sno,课程号cno,成绩score)
课程表:course(课程号cno,课程名称cname,教师号ctno)
教师表:teacher(教师号tno,教师姓名tname)
注意:下面SQL的实现以MySQL为主

002查询课程编号为“0004”且分数小于60的学生学号,结果按按分数降序排列。

/* 
分析思路
select 查询结果 []
from 从哪张表中查找数据 [成绩表score]
where 查询条件 [课程编号为“04”且分数小于60]
group by 分组 [没有]
having 对分组结果指定条件 []
order by 对查询结果排序[查询结果按按分数降序排列];
*/
select 学号 from score where 课程号='04' and 成绩 <60
order by 成绩 desc;

003查询姓“孟”老师的个数。

select count(教师号) from teacher where 教师姓名 like '孟%';

004查询1990年出生的学生名单。

/*
查找1990年出生的学生名单
学生表中出生日期列的类型是datetime
*/
select 学号,姓名 from student where year(出生日期)=1990;

005查询课程编号为“0002”的总成绩。

select sum(成绩) from score where 课程号 = '0002';

006查询选了课程的学生人数。

select count(distinct 学号) as 学生人数 from score;

007查询每门课程被选修的学生数。

select 课程号, count(学号) from score group by 课程号;

008查询男生、女生人数。

/*
分析思路
group by 分组 [男生、女生人数:按性别分组
having 对分组结果指定条件 [没有]
order by 对查询结果排序[没有];
*/
select 性别,count(*) from student group by 性别;

009查询不及格的课程并按课程号从大到小排列。

select 课程号 from score where 成绩<60 order by 课程号 desc;

目录

返回顶部