《数据的查询操作》_数据查询操作

2020-02-28 其他范文 下载本文

《数据的查询操作》由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“数据查询操作”。

第八次作业1

1.检索年龄大于18岁的女学生的学号和姓名(注意:要给列起别名);use 学生课程数据库

select sno ,sname

from studentwhere sage>18 and ex='女'

2.检索所有男学生选修的课程号和课程名称(仅在结果中列出10%的数据行)。use 学生课程数据库

select top(10)percent course.cno,cname

from student,sc,course

where student.sno=sc.sno and sc.cno=course.cno and ex='男'

3.查询年龄大于18,并不是信息管理也不是计算机科学的学生的姓名和性别(复合查询);

select sname,ex

from studentwhere sage>18 and sdept not in('信息管理','计算机科学')

4..查询以“DB_”开头,和倒数第二个汉字为“导”字的课程信息(模糊查询);select *

from course

where cname like 'DB_%' or cname like '%导_'

5.查询student表和sc表的交叉连接;

select *

from student cro join sc

6.检索王同学不学的课程的课程号和课程名称;

select cno,cname

from course

where cno not in(select cno from sc where sno in(select snofrom student

where sname='王%'))

7.检索全部学生都选修的课程号和课程名称;

SELECT cno,cname

FROM course

WHERE NOT EXISTS

(SELECT *FROM student

WHERE NOT EXISTS

(SELECT *

FROM SC

WHERE SC.Sno= Student.Sno AND SC.Cno= Course.Cno))

8.检索所有课程的成绩均高于90分的学生的姓名和年龄;

select sname, sage

from student

where sno in

(select sno

from sc

group by sno

having MIN(grade)>90)

go

9.求刘老师所授的每门课程的平均成绩;

select cno,AVG(grade)

from sc

where cno in(select cno from course where cname in(select job from

teacher

where ename like '刘%'))

Group by cno

10.求年龄大于所有女同学的男学生的姓名和年龄

select sname,sage

from student

where sage> all(select sage from student where ex='女')and ex='男'

11.求每个学生的总分,要求输出学号和总分数(要求依然保持学生原有的明细分数,并按学号分组汇总)

select sno,grade

from sc

order by sno

COMPUTE SUM(grade)by sno

12.查询各不同平均成绩所对应的学生人数(要求显示各组的单项人数)

select avgr,COUNT(*)

from(select sno,AVG(grade)from sc

group by sno)as sg(sno,avgr)GROUP BY avgr

13.查询年龄小于18岁和大于20岁的学生的所有信息(要求用并运算实现union);select *

from student

where sage

union

select *

from student

where sage>20

14.查询即选修了‘1001’号课程有选修了‘1003’号课程的学生的学号(要求用用交运算实现intersect);

select sno

from sc

where cno='1001'

intersect

select sno

from scwhere cno='1003'

15.查询选修了‘1002’号课程,但不是工业工程系的学生的学号(要求用差运算实现except)

select sno

from sc

where cno=1002

exceptselect sno

from student

where sdept!='工业工程'

16.创建一个公用表,该表由课程号、人数和最高分组成,用于存放各门课程的课程号、选修该课的人数及该门课的最高分数,查询该公用表,并按照课程号排序。

WITH gongyongbiao(cno,amount,maxgrade)

AS(SELECT sc.cno, COUNT(*), MAX(grade)

FROM course,sc

WHERE sc.cno IS NOT NULL

GROUP BY sc.cno)

SELECT cno,amount,maxgrade

FROM gongyongbiao

第八次作业

21.在学生信息表中进行自联接查询,并在连接时使用内链接,返回籍贯是“河南”或者“北

京”的学生学号、姓名、班级编号及籍贯信息。

select student.sno,sname,cla,jiguan

from student

where jiguan=‘河南’or jiguan=‘北京’

2.查询人数超过45人所在班级中的学生的学号、姓名和班级名称。

Select 学号,姓名,班级名称

From 学生信息a,班级信息b

Where a.班级编号=b.班级编号 and a.班级编号 in(select 班级编号 from 班级信息 where 人数>45)

3.对于成绩大于等于90的数据进行查询,并返回考试成绩的学生的学号、姓名、性别、籍

贯和所在班级名称及年级信息。(用EXISTS编写语句)

Select a.sno,a.sname,a.ex,a.jiguan,b.cla,b.grade

From 学生信息a inner join 班级信息b

On a.班级编号=b.班级编号

Where exists(select* from 成绩表 where 学号=a.学号 and grade>=90)

4.查询出任意一个大于平均成绩的学生的学号、姓名、班级编号、课程编号和成绩信息。

Select a.sno,a.sname,a.cla,b.cno,b.grade

From 学生信息a inner join 成绩表b

On a.学号=b.学号

Where grade>any(select avg(grade)from 成绩表)

5.查询学生姓名为“李文东”所在班级的学生信息,要求返回学生的学号、姓名、性别、班级编号、班级名称和年级信息

Select a.sno,a.sname,a.ex,b.banjibianhao,b.banjimingcheng,b.nianjixinxi From 学生信息a inner join 班级信息b on a.班级编号=b.班级编号

Where a.班级编号=(select 班级编号 from 学生信息 where sname=‘李文东’)

6.查询出所有非计算机系的学生信息,并显示出这些学生的考试成绩,成绩按降序排列显示,要求返回学生的学号、姓名、班级编号、课程编号和成绩信息。

Select a.学号,a.姓名,a.班级编号,b.课程编号,b.成绩

From 学生信息a inner join 成绩表b

On a.学号=b.学号

Where a.学号 not in(select 学号 from 学生信息 where 班级编号 in

(select 班级编号 from 课程信息 where 开课系别=‘计算机系’))

Order by 成绩 desc

Select a.学号,a.姓名,a.班级编号,b.课程编号,b.成绩

From 学生信息a inner join 成绩表b

On a.学号=b.学号

Where a.班级编号 not in((select 班级编号 from 课程信息 where 开课系别=‘计算机系’))Order by 成绩 desc

《《数据的查询操作》.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
《数据的查询操作》
点击下载文档
相关专题 数据查询操作 操作 数据 数据查询操作 操作 数据
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文