SQL数据库上机实验题目和答案

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQL数据库上机实验题目和答案

试用SQL的查询语句表达下列查询:

1.检索王丽同学所学课程的课程号和课程名。

select Cno ,Cname from c where Cno in

(select cno from sc where sno in (select sno from s where sname='王丽' ))

2.检索年龄大于23岁的男学生的学号和姓名。

select sno,sname from s

where sex='男' and age>23

3.检索‘c01’课程中一门课程的女学生姓名

select sname from s

where sex='女' and sno in

(select sno from sc where cno='c01')

4.检索s01同学不学的课程的课程号。

select cno from c

where cno not in (select cno from sc where sno ='s01')

5.检索至少选修两门课程的学生学号。

select sc.sno from s,sc

where s.sno=sc.sno

group by sc.sno

having count(/doc/6b7958374.html,o)>=2

6.每个学生选修的课程门数。

解法一:

select so.sno sno,/doc/6b7958374.html,ount,s.sname from(select sc.sno sno,count(sc.sno) ccount

from sc,s

where s.sno=sc.sno

group by sc.sno ) so,s

where s.sno=so.sno

解法二:

select sc.sno sno,s.sname,count(sc.sno) ccount

from sc,s

where s.sno=sc.sno

group by sc.sno,sname

7.求选修C4课程的学生的平均分。

select avg(grade) 'c04平均成绩'

from sc

where cno='c04'

8.求每个学生平均成绩。

select s.sno,s.sname,avg(sc.grade) '平均成绩'

from sc,s

where s.sno=sc.sno

group by s.sno,s.sname

9.统计每门课程的学生选修人数(超过3人的课程才统计)。询结果按人数降序排列,若

人数相同,按课程号升序排列。

select

/doc/6b7958374.html,o,/doc/6 b7958374.html,ame,count(/doc/6b7958374.ht ml,o) number

from c,sc

where

/doc/6b7958374.html,o=/doc/ 6b7958374.html,o

group by /doc/6b7958374.html,o,/doc/6 b7958374.html,o,/doc/6b7958374.html,ame having count(*)>3

order by number desc,/doc/6b7958374.html,o

10.检索学号比王丽同学大,而年龄比他小的学生姓名。

select sno,sname from s

where sno>(select sno from s where sname='王丽') and

age<(select age from s where sname ='王丽')

11.检索姓名以王打头的所有学生的姓名和年龄。

select sname,age from s

where sname like '王%'

12.在SC中检索成绩为空值的学生学号和课程号。

select sno,cno from sc

where grade is NULL

13.输出c01 课程的成绩单,要求成绩按从高到低排序。

select sname,grade 'c01成绩' from sc,s

where s.sno=sc.sno and cno='c01'

order by grade desc

14.查询姓名为‘X国X’同学。

select sname from s

where sname like '_国_'

15.查询没有选修c02,c03,c04的同学的学号。

select sno

from s

where not exists(

select sno

from sc

where s.sno=sc.sno and cno in('c02','c03','c04'))

16.查询没有参加考试的同学的学号。

select sno

from s

where exists(

select *

from sc

where s.sno=sc.sno and grade is null)

17.检索计算机系开课程的课程号和课程名。

select cno,cname from c

where dept in

(select dept from d where dname='计算机')

18.检索至少选修计算机系所开课程2门以上的女学生姓名

select sname

from s,sc,c,d

where s.sex='女'and s.sno=sc.sno and /doc/6b7958374.html,o=/doc/ 6b7958374.html,o and dname='计算机' and d.dept=c.dept group by sname

having count(s.sno)>2

19.检索王丽同学不学的课程的课程号。

select cno from c where cno not in

(select cno from sc where sno in (select sno from s where sname='王丽'))

20.检索选修计算机系所开全部课程的学生的学号与姓名。

select s.sno,sname

from s,sc,c,d

where s.sno=sc.sno and /doc/6b7958374.html,o=/doc/ 6b7958374.html,o and d.dname='计算机' and d.dept=c.dept group by sname,s.sno

21.检索选修C语言且成绩大于80分的计算机系的学生的姓名与学号。

select sname,s.sno

from sc,s,d,c

相关文档
最新文档