求SQL查询语句答案!!!!

1、设学校环境如下:一个系有若干个专业,每个专业一个班,每个班有若干个学生。已建立关于系、学生、班级的数据库,关系模式为:班CLASS:(班号classid,专业名sub... 1、设学校环境如下:一个系有若干个专业,每个专业一个班,每个班有若干个学生。已建立关于系、学
生、班级的数据库,关系模式为:
班CLASS :(班号classid,专业名subject,系号deptid,入学年份enrolltime)
学生STUDENT :(学号studentid,姓名name,年龄age,班号classid)
系 DEPARTMENT :(系号deptid,系名deptname)
以下为表的示例数据:
A.班CLASS:
classid
subject
deptid
enrolltime
101
软件
002
1995
102
微电子
002
1996
111
无机化学
003
1995
112
高分子化学
003
1996
121
统计数学
001
1995
131
现代语言
004
1996
141
国际贸易
005
1997

B. 学生STUDENT:
studentid
name
age
classid
8101
'张三'
18
101
8102
'钱四'
16
121
8103
'王玲'
17
131
8109
'赵四'
18
141
8110
'李可'
20
142
8201
'张飞'
18
111
8302
'周瑜'
16
112
8203
'王亮'
17
111
8305
'董庆'
19
102
8409
'赵龙'
18
101
8510
'李丽'
20
142
8105
'李飞'
19
102

C. 系 DEPARTMENT :
deptid
deptname
001
数学
002
计算机
003
化学
004
中文
005
经济

请完成以下查询功能
(1) 统计每一个系有多少个学生并且系的人数必须超过300,显示内容:系名、系号、学生人数。(一条SQL)
(2)找出所有姓李的学生,显示内容: 系名、学号、姓名、专业名,并且按系名升序、姓名降序进行排序。(一条SQL)
(3)通过建立视图,查询年龄在16到18岁之间的学生,显示内容:系名、姓名、年龄、入学年份。(一条SQL)
(4)查询学生人数最多的系的所有学生名单(可能存在两个或以上的系),显示内容:系名、姓名、专业名、年龄。(一条SQL)
展开
 我来答
unitech2010
2012-07-03 · TA获得超过1062个赞
知道小有建树答主
回答量:1025
采纳率:100%
帮助的人:907万
展开全部
(1) 统计每一个系有多少个学生并且系的人数必须超过300,显示内容:系名、系号、学生人数。(一条SQL)
select t1.*,t2.人数 from #DEPARTMENT t1,
(select count(*) as 人数 , deptid from #CLASS group by deptid having count(*)>300) t2
where t1.deptid=t2.deptid

(2)找出所有姓李的学生,显示内容: 系名、学号、姓名、专业名,并且按系名升序、姓名降序进行排序。(一条SQL)
select t3.deptname,t2.studentid,t2.name,t1.subject
from #CLASS t1,#STUDENT t2,#DEPARTMENT t3
where t1.classid=t2.classid
and t1.deptid=t3.deptid
and t2.name like '李%'
order by t3.deptname , t2.name desc

(3)通过建立视图,查询年龄在16到18岁之间的学生,显示内容:系名、姓名、年龄、入学年份。(一条SQL)

create view test
as
select t3.deptname,t2.name,t2.age ,t1.enrolltime
from #CLASS t1,#STUDENT t2,#DEPARTMENT t3
where t1.classid=t2.classid
and t1.deptid=t3.deptid
and t2.age between 16 and 18

(4)查询学生人数最多的系的所有学生名单(可能存在两个或以上的系),显示内容:系名、姓名、专业名、年龄。(一条SQL)

select t3.deptname,t2.name,t1.subject,t2.age
from #CLASS t1,#STUDENT t2,#DEPARTMENT t3, (select count(t1.studentid) as 人数 , t2.subject from #STUDENT t1, #CLASS t2 where t1.classid=t2.classid group by t2.subject) t4
where t1.classid=t2.classid
and t1.deptid=t3.deptid
and t1.subject=t4.subject
and t4.人数= (select max(t.人数) from ( select count(t1.studentid) as 人数 , t2.subject from #STUDENT t1, #CLASS t2 where t1.classid=t2.classid group by t2.subject) t )
璐璐65
2012-07-03
知道答主
回答量:8
采纳率:0%
帮助的人:3.9万
展开全部
班CLASS :(班号classid,专业名subject,系号deptid,入学年份enrolltime)
学生STUDENT :(学号studentid,姓名name,年龄age,班号classid)
系 DEPARTMENT :(系号deptid,系名deptname)
(2) select deptname,studentid,name,subject from student,class,deparement where name in '李 ' order by deptname,name desc.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
curllion
2012-07-03 · TA获得超过3633个赞
知道小有建树答主
回答量:1561
采纳率:50%
帮助的人:604万
展开全部
1)
select d.deptid,d.deptname,count(s.studentid) as s_count
from department d inner join class c on d.deptid = c.deptid
inner join student s on s.classid = c.classid
group by d.deptid,d.deptname
having count(s.studentid) > 300

2)
select d.deptname,s.studentid,s.[name], c.subject
from department d inner join class c on d.deptid = c.deptid
inner join student s on s.classid = c.classid
where s.[name] like '李%'
order by d.deptname asc ,s.[name] desc

3)create view vStudent
as
select d.deptname,s.[name], s.age,c.enrolltime
from department d inner join class c on d.deptid = c.deptid
inner join student s on s.classid = c.classid
where s.age between 16 and 18

4)
select d.deptname,s.[name],c.subject ,s.age
from department d inner join class c on d.deptid = c.deptid
inner join student s on s.classid = c.classid
where d.deptid in
(
select d.deptid
from department d inner join class c on d.deptid = c.deptid
inner join student s on s.classid = c.classid
group by d.deptid
having count(s.studentid) =
(
select max(ct)
from
(
select count(s.studentid) as ct
from department d inner join class c on d.deptid = c.deptid
inner join student s on s.classid = c.classid
group by d.deptid
) x
)
)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式