实验四 单表查询参考答案
Select did,dname from uDept
Select tid,tname,tsexy from uTeacher where tsexy=’女’
select tid,tname,tsexy,tbdate,t,did from uteacher where did='CS'
select room from ujobtable where week=4
select tid from ujobtable where week=4
select * from ujobtable where room='NB222'
select room,tid,week,timeseg from ujobtable where cid='1'
select tname,tbdate from uteacher where datediff(year,tbdate,getdate())<30
select tname,tsexy,tbdate,tele from uteacher where month(tbdate)=5
select tid,tname,tsexy,tbdate,tfield,tprof,tele,qq,email,msn,did from uteacher where tname like '李%'
select sid,sname,ssexy,sbdate,gid,stele from ustudent where sname like '王%'
45、显示CS系的班级名称及入学年份
46、显示没有班导的班级的所有信息
47、显示2008年入学的所有班级的信息
select gid,gyear from ugrade
select * from ucourse where pcid is null or len(rtrim(pcid))=0
select cid,cname from ucourse where did='CS'
select cname,credit from ucourse where credit>3
20、显示周4有课的教室
21、显示周4有课的老师的工号
22、显示NB222教室排课的情况
23、显示1号课程上课的教室、老师工号、上课时间
24、显示02004号老师上课的教室与时间
25、显示第4节有课的教室、课程号、教师工号
26、统计每个教师上课的次数及总时长(每节课45分钟)
27、统计每个班每周上课的课时数,并按降序排列
select gid,gname,gyear,did,tid from ugrade where tid is null or len(rtrim(tid))=0
select gid,gname,gyear,did,tid from ugrade where gyear=2008
select sid,sname,gid,stele from ustudent where sname='刘山'
select sid,sname,gid from ustudent where ssexy='女'
select gid,count(*) as num from ustudent group by gid order by num
select gid,count(*) as num from ustudent group by gid having count(*)>=5 order by num
select sid,sname,ssexy,sbdate,gid,stele from ustudent where year(getdate())-year(sbdate)<18
实验四单表查询
实验目的:
练习使用Select命令在一个表是进行查询
实验内容:
1、输入验证性命令,对比得到的结果,体会命令的使用情况
2、根据文字描述,写出查询命令,把得到的结果与给出的结果比对
实验准备:
SELECT[TOP年|DISTINCT]列名1,列名2,……,列名n
FROM数据库表名
WHERE<条件表达式>
select year(getdate())-year(sbdate),count(*) as num from ustudent group by year(getdate())-year(sbdate)
select sid,sname,ssexy,sbdate,gid,stele from ustudent where sname like '%白云%'
18、显示012005001同学的期末成绩的平均分
19、显示2008年所有课程期末考试成绩的平均分,并按降序排列
select sid from usc where cid='1'
select sid,cid from usc where cid='1' or cid='3'
select cid from usc where sid='012005001'
select * from uteacher where did='CS' or did='IT'
select tname,tsexy,tprof,did from uteacher where tsexy='女' and tprof='教授'
select tname,tfield,tele,did from uteacher where tfield like '%数据库%'
6、显示女教授的姓名、性别、职称与部门信息
7、显示研究领域为数据库的老师的姓名、研究领域、联系电话、所在部门
8、显示30岁以下老师的姓名、出生日期
9、显示5月份出生的姓名、性别、出生日期、联系电话
10、显示姓李的老师的所有信息
Select * from uDept或select did,dname,daddr,dtele,demail from udept
select did,sum(credit) as credit from ucourse group by did
32、显示所有男生的信息
33、显示01班所有学生的信息
34、显示03班所有女生的信息
35、显示刘山同学的电话号码
36、显示所有女生的学号、姓名与班级编号
37、统计每个班级的人数,并按降序排列
GROUP BY<列名1>
HAVING<条件表达式>
ORDER BY<列名2> [ ASC|DESC ]
实验过程
1、显示院系信息表中的所有信息
2、显示院系信息表中的部门编码、部门名称所有信息
3、显示所有女教师的工号、姓名、性别信息
4、显示CS系的老师所有个人信息
5、显示CS系与IT系所有老师的全部个人信息
select gid as班级,sum(len(rtrim(timeseg))) as课时数from ujobtable group by gid order by课时数desc
28、显示无前导课的课程的全部信息
29、显示CS系所开课程的课程名与课程名
30、显示学分大于3的所有课程的课程名与课时
31、按开课院系统计每个院系开课的学分数,并按降序排列
select avg(score2) from usc where cid='1'
select avg(score2) from usc where sid='012005001'
select cid,cast(avg(score2) as decimal(10,2)) from usc where term='2008-2009-1' or term='2007-2008-2' group by cid order by avg(score2) desc
11、显示选修了1号课程的同学的学号
12、显示同时选修了1号与3号课程的同学的学号及课程号
13、显示012005001号同学选修的课程号
14、显示012005002号同学的全部选修信息
15、显示期末考试成绩不及格的同学的学号、课程号与期末考试成绩
16、显示选修了1号课程的人数
17、显示1号课程期末考试成绩的平均分
select room,week,timeseg from ujobtable where tid='02004'
select room,cid,tid,timeseg from ujobtable where timeseg like '%4%'
select tid as教师工号,count(*) as次数,sum(len(rtrim(timeseg)))*45 as总时长from ujobtable group by tid
select sid,cid,term,score1,score2,score3,score from usc where sid='012005002'
select sid,cid,score2 from usc where score2<60
select count(*) from usc where cid='1'
select count(*) as num from ustudent where year(getdate())-year(sbdate)<18
select gid,count(*) as num from ustudent where year(getdate())-year(sbdate)<18 group by gid