数据库练习题4--sql简单查询(含答案)
实验⽬的
1.掌握SELECT语句的基本语法和查询条件表⽰⽅法;
2.掌握查询条件表达式和使⽤⽅法;
3.掌握GROUP BY ⼦句的作⽤和使⽤⽅法;
4.掌握HAVING⼦句的作⽤和使⽤⽅法;
5.掌握ORDER BY⼦句的作⽤和使⽤⽅法。
1.列出所有不姓刘的所有学⽣;
select *
from student
where sname not like '刘%'
2.列出姓“沈”且全名为3个汉字的学⽣;
select *
from student
where sname like '沈%' and LEN(sname)=3
3.显⽰在1985年以后出⽣的学⽣的基本信息;
select * from student
where year(getdate())-sage>1985
4.查询出课程名含有“数据”字串的所有课程基本信息;
select * from course
where cname like '数据%'
5.显⽰学号第⼋位或者第九位是1、2、3、4或者9的学⽣的学号、姓名、性别、年龄及院系;
select * from student
where sno like '_______[12349]%'
and sno like '________[12349]%'
6.列出选修了‘1’课程的学⽣,按成绩的降序排列;
select sno,grade from sc
where cno='1'
order by grade desc
7.列出同时选修“1”号课程和“2”号课程的所有学⽣的学号;
select sno from sc
where cno ='1' and
sno in(select sno from sc where cno='2')
8.列出课程表中全部信息,按先修课的升序排列;
select * from course
order by cpno asc
9.列出年龄超过平均值的所有学⽣名单,按年龄的降序显⽰;
select * from student
where sage>(select AVG(sage)from student)
order by sage desc
10.按照出⽣年份升序显⽰所有学⽣的学号、姓名、性别、出⽣年份及院系,在结果集中列标题分别指定为“学号,姓名,性别,出⽣年份,院系”;
select sno 学号,sname 姓名,ssex 性别,
YEAR(GETDATE ())-sage 出⽣年份,
sdept 院系
from student
order by YEAR(GETDATE ())-sage asc
11.按照课程号、成绩降序显⽰课程成绩在70-80之间的学⽣的学号、课程号及成绩;
select * from sc
where grade>=70 and grade<80
order by cno desc,grade desc
12.显⽰学⽣信息表中的学⽣总⼈数及平均年龄,在结果集中列标题分别指定为“学⽣总⼈数,平均年龄”;
select COUNT(sno)学⽣总⼈数,
AVG(sage)平均年龄
from student
13.显⽰选修的课程数⼤于3的各个学⽣的选修课程数;
select Sno,COUNT(sno)
from sc
group by sno having COUNT(sno)>3
14.按课程号降序显⽰选修各个课程的总⼈数、最⾼成绩、最低成绩及平均成绩;
select cno,COUNT(*),MAX(grade),
MIN(grade),AVG(grade)
from sc
group by cno
order by cno desc
15.显⽰平均成绩⼤于“200515001”学⽣平均成绩的各个学⽣的学号、平均成绩;
select sno,AVG(grade)
from sc
group by sno
having AVG(grade)>(select AVG(grade)
from sc where sno='200515001')
16.显⽰选修各个课程的及格的⼈数、及格⽐率;
select COUNT(case when grade>=60
then 1 end)各课程及格⼈数,
CAST(count(case when grade>=60
then 1 end)/count(*)as float)及格⽐率
from sc
group by cno
17.显⽰选修课程数最多的学号及选修课程数最少的学号;
select sno 学号,COUNT(cno)选修课程数
from sc
group by sno
having COUNT(cno)>=all (select COUNT(cno)
from sc
group by sno)
or COUNT(cno)<=all(select COUNT(cno)
from sc
group by sno)
18.显⽰各个院系男⼥⽣⼈数,其中在结果集中列标题分别指定为“院系名称、男⽣⼈数、⼥⽣⼈数”;
select sdept as 院系名称,
COUNT(ssex) as 男⽣⼈数
from student
where ssex='男'
group by sdept
19.列出有⼆门以上课程(含两门)不及格的学⽣的学号及该学⽣的平均成绩;
sql查询面试题及答案select sno,AVG(grade)
from sc
where grade<60
group by sno
having COUNT (cno)>=2
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论