sql面试题详解3
2014-01-24 13:28
344 查看
今天的这部分题目还是比较简单,主要还是sql语句的基础,题目不是很绕仔细想就能把语句写出来了
1.查询每门课程被选修的学生数
这题主要考察聚合函数以及分组的使用,sql语句如下
Select Count(studentnum),coursenum From t_score Group By coursenum;
2.查询只选修了一门课程的全部学生的学号和姓名
这题还是考察聚合函数和分组的使用,只是额外加了having
Select A.studentnum,B.sname From t_score A,t_student B
Where
A.studentnum=B.studentnum
Group By A.studentnum,B.sname
Having Count(A.studentnum)=1 ;
3.查询男生人数、女生人数
和上面的第一题大致相同,只是换了一个表
Select Count(studentnum) 男生人数 From t_student Group By ssex Having ssex=1
Select Count(studentnum) 女生人数 From t_student Group By ssex Having ssex=0
4.查询姓张的学生名单
Select * From t_student Where sname Like '张%'
5.查询同名同姓的学生名单并统计同名人数
Select count(studentnum),sname From t_student Group By sname Having Count(studentnum)>1
这里要知道同名就是名字相同的学生,也就是同一个名字出现一次以上
6.查询没门课程的平均成绩,记过按平均成绩升序排列,平均成绩相同时按课程号降序排列
还是考察聚合函数、分组以及排序的使用,sql如下
Select Avg(score),coursenum From t_score Group By coursenum Order By Avg(score),coursenum Desc
7.查询平均成绩大于85的所有学生的学号、姓名、平均成绩
Select A.studentnum,B.sname,Avg(A.score) From t_score A,t_student B Where A.studentnum=B.studentnum Group By A.studentnum,B.sname Having Avg(A.score)>85
8.查询课程名称为“数据库”,且分数低于60分的学生的姓名和分数
这个题目主要考察连接查询的基本使用,sql语句写出来也很简单
Select C.sname,A.score From t_score A,t_course B,t_student C
Where
A.coursenum=B.coursenum And A.studentnum=C.studentnum And B.cname='数据库'
and A.score<60
9.查询所有学生的选课情况
还是考察多表连接查询,sql语句如下所示
Select A.sname,B.cname From t_student A,t_course B,t_score C
Where
A.studentnum=C.studentnum And C.coursenum=B.coursenum Order By A.sname
10.查询任何一门课程成绩在70分以上的学生的姓名、课程名称、分数
和第九题类似只需加上一个分数的限制条件就可以了,sql语句如下
Select A.sname,B.cname,C.score From t_student A,t_course B,t_score C
Where
A.studentnum=C.studentnum And C.coursenum=B.coursenum And C.score>70
Order By A.sname
1.查询每门课程被选修的学生数
这题主要考察聚合函数以及分组的使用,sql语句如下
Select Count(studentnum),coursenum From t_score Group By coursenum;
2.查询只选修了一门课程的全部学生的学号和姓名
这题还是考察聚合函数和分组的使用,只是额外加了having
Select A.studentnum,B.sname From t_score A,t_student B
Where
A.studentnum=B.studentnum
Group By A.studentnum,B.sname
Having Count(A.studentnum)=1 ;
3.查询男生人数、女生人数
和上面的第一题大致相同,只是换了一个表
Select Count(studentnum) 男生人数 From t_student Group By ssex Having ssex=1
Select Count(studentnum) 女生人数 From t_student Group By ssex Having ssex=0
4.查询姓张的学生名单
Select * From t_student Where sname Like '张%'
5.查询同名同姓的学生名单并统计同名人数
Select count(studentnum),sname From t_student Group By sname Having Count(studentnum)>1
这里要知道同名就是名字相同的学生,也就是同一个名字出现一次以上
6.查询没门课程的平均成绩,记过按平均成绩升序排列,平均成绩相同时按课程号降序排列
还是考察聚合函数、分组以及排序的使用,sql如下
Select Avg(score),coursenum From t_score Group By coursenum Order By Avg(score),coursenum Desc
7.查询平均成绩大于85的所有学生的学号、姓名、平均成绩
Select A.studentnum,B.sname,Avg(A.score) From t_score A,t_student B Where A.studentnum=B.studentnum Group By A.studentnum,B.sname Having Avg(A.score)>85
8.查询课程名称为“数据库”,且分数低于60分的学生的姓名和分数
这个题目主要考察连接查询的基本使用,sql语句写出来也很简单
Select C.sname,A.score From t_score A,t_course B,t_student C
Where
A.coursenum=B.coursenum And A.studentnum=C.studentnum And B.cname='数据库'
and A.score<60
9.查询所有学生的选课情况
还是考察多表连接查询,sql语句如下所示
Select A.sname,B.cname From t_student A,t_course B,t_score C
Where
A.studentnum=C.studentnum And C.coursenum=B.coursenum Order By A.sname
10.查询任何一门课程成绩在70分以上的学生的姓名、课程名称、分数
和第九题类似只需加上一个分数的限制条件就可以了,sql语句如下
Select A.sname,B.cname,C.score From t_student A,t_course B,t_score C
Where
A.studentnum=C.studentnum And C.coursenum=B.coursenum And C.score>70
Order By A.sname
相关文章推荐
- sql面试题详解1
- sql面试题详解
- sql面试题详解4
- sql面试题详解
- 关于mysql数据库中常用的面试题以及sql语句和关键字的详解!
- sql面试题详解2
- Import data from files to SQL Server(用BULK INSERT命令导入数据详解)
- ORACLE PL/SQL编程详解之七:程序包的创建与应用
- SQL各种连接查询详解(左连接、右连接..)
- SQL Server FileStream详解
- Hadoop Hive sql 语法详解
- MyBatis的动态SQL详解
- Oracle数据库入门——sql语句和函数详解
- SQL面试题(18道)
- 基于SQL Server OS的任务调度机制详解
- .NET高级工程师面试题之SQL篇
- SQL语句执行过程详解
- JAVA面试题之Forward与Redirect的区别详解
- SQL之to_date()以及关于日期处理的详解
- 找些不错的sql面试题(1)