部分习题参考答案数据库技术与应用SQL Server 张建国清华大学出版社.docx
《部分习题参考答案数据库技术与应用SQL Server 张建国清华大学出版社.docx》由会员分享,可在线阅读,更多相关《部分习题参考答案数据库技术与应用SQL Server 张建国清华大学出版社.docx(17页珍藏版)》请在冰豆网上搜索。
部分习题参考答案数据库技术与应用SQLServer张建国清华大学出版社
习题二
一、单选题
1.C2.B3.B4.A5.B
6.C7.B8.A9.C10.D
二、填空题
1.操作系统
2.数据库,数据库应用系统
3.概念设计,逻辑设计
4.概念,逻辑数据
5.数据结构,数据操作,完整性约束
6.参照完整性
7.关系模型
8.树状,有向图,关系(二维表)
9.逻辑,物理
10.结构化数据
11.价值密度低
12.完整性约束
三、判断题
1.对2.错3.错4.错5.对
6.错7.错8.对9.错10.错
11.对12.错13.对14.对15.错
习题三
一.单选题
1.C2.B3.B4.C5.B
6.B7.B8.A9.C10.D
二.填空题
1.主文件组2.系统3.系统级4.DROP5.’
6.数据定义7.sp_rename8.Char,69.NULL/NOTNULL
10.至多一个
三.判断题
1.对2.错3.对4.对5.对
6.对7.错8.对9.错10.错
四.应用题
1.
(1)
createdatabase图书出版
(2)
createtable图书
(书号char(10),
类型char(20),
书名char(50),
作者char(30),
单价float,
出版社号char(20)
)
(3)
altertable图书
dropcolumn类型
altertable图书
add出版日期datetime
(4)
insertinto图书(书号,书名,出版日期,作者,单价,出版社号)
values('B001','大数据时代','1/1/2013','维克多.迈尔.舍恩伯格',33.1,'P002')
(5)
update出版社
set出版社名称='电子工业出版社'
where出版社名称='工业出版社'
(6)
delete图书
where出版社号=(select出版社号from出版社where出版社名称='人民邮电出版社')
(7)
DropTable出版社
2.
(1)
AlterTable出版社
AddConstraintpk1PrimaryKey(出版社号)
(2)
AlterTable出版社
AddConstraintuniq1unique(出版社名称)
(3)
AlterTable图书
AddConstraintfk1foreignkey(出版社号)references出版社(出版社号)
(4)
AlterTable图书
AddConstraintdef1default0For单价
(5)
AlterTable图书
AddConstraintchk1chkeck(单价>=0)
(6)
AlterTable图书
AddConstraintDF_图书_出版日期defaultgetdate()For出版日期
(7)
AlterTable图书
DropConstraintDF_图书_出版日期
习题四
一、填空题
1.查询
2.关系,关系
3.表,视图,链接表
4.FROM
5.投影
6.DISTINCT
7.显示学生表中的所有列
8.top3,top3withties
9.选择
10.year(getdate())-year(出生年月)between18and24,
year(getdate())-year(出生年月)>=18andyear(getdate())-year(出生年月)<=24
11.籍贯isnotnull
12.仅由聚合函数实现的查询,由聚合函数和GROUP共同实现的查询,由聚合函数,GROUP和HAVING共同实现的查询
13.count,sum,avg,max,min
14.一
15.二
16.班级数
17.count(班级)
18.count(籍贯)
19.降序
20.top3withties
21.交
22.并
23.=
24.等值联接
25.内连接,交叉连接,左外连接,右外连接,全外连接
三、SQL命令
1.
select*from课程
2.
select姓名,性别,职称from教师
3.
select学院名称
from学院
where学院编号in(selectdistinct学院编号from学生)
4.
select姓名,year(getdate())-year(出生日期)as年龄,month(出生日期)as出生月份
from教师
5.
select学院名称,right(学院电话,8),学院地址
from学院
6.
select学号,姓名,出生日期,
substring('鼠牛虎兔龙蛇马羊猴鸡狗猪',(year(出生日期)-1900)%12+1,1)as生肖
from学生
7.
select*
from课程
where学分数>=4
8.
select教师编号,姓名
from教师
where(year(getdate())-year(出生日期)between32and48)and(职称in('教授','副教授'))
9.
select学号,姓名,性别,籍贯,出生日期,专业班级
from学生
where籍贯like'四川%'and性别='女'
10.
select学号,姓名,left(籍贯,iif(charindex('省',籍贯)>0,charindex('省',籍贯),charindex('市',籍贯)))as省市
from学生
where姓名in('万刚','金耀亮','付学军','张辉')
11.
select*
from课程
where课程介绍ISNULL
12.
select*
into#选修课程
from课程
where课程性质='选修'
13.
select课堂编号,课堂名称
into成绩未激活
from课堂
where开课年份='2017-2018'and开课学期='一'and成绩激活=0
14.
selectcount(*)as教师总人数
from教师
15.
select课程性质,count(*)as门数
from课程
groupby课程性质
16.
selectcount(课程编号)as课程门数,sum(学分数)as总学分数
from课程
17.
select课堂编号,count(课堂编号)as人数,avg(成绩)as平均分
from选课成绩
groupby课堂编号havingcount(课堂编号)>8
18.
select课程编号,课程名称,学时数,学分数
from课程
orderby学分数desc
19.
select学院编号,专业班级,count(*)as人数
from学生
groupby学院编号,专业班级
orderby学院编号,专业班级desc
20.
select学号,姓名,性别,出生日期
from学生
orderby性别desc,year(getdate())-year(出生日期)
21.
select学号,max(成绩)as最高分,min(成绩)as最低分,avg(成绩)as平均分
from选课成绩
where成绩isnotnull
groupby学号
22.
selectS.学号,姓名,课程名称,成绩
from学生Sinnerjoin
(select*
from选课成绩
where成绩between85and90)asConS.学号=C.学号
innerjoin课堂KTonC.课堂编号=KT.课堂编号
innerjoin课程KConKT.课程编号=KC.课程编号
orderbyS.学号
23.
select课堂编号,课堂名称,开课年份,开课学期,课程编号
into#T003
from课堂
where教师编号='T003'
24.
select学号
from选课成绩
where课堂编号='2017-2018-2-A001'and成绩between80and90
25.
select*
from教师
where教师编号in(select教师编号from课堂where课程编号=
(select课程编号from课程where课程名称='数据库技术与应用')
)
26.
select课堂名称,平均成绩
from课堂asAinnerjoin
(selecttop3课堂编号,avg(成绩)as平均成绩
from选课成绩
groupby课堂编号
orderby平均成绩desc)asBonA.课堂编号=B.课堂编号
27.
selectS.学号,姓名,成绩
from学生asSinnerjoin
(select学号,成绩
from选课成绩
where课堂编号in(select课堂编号from课堂where课程编号=
(select课程编号from课程where课程名称='理论力学')
)and成绩isnotnull)asConS.学号=C.学号
28.
select课程名称,成绩
from课堂asKT
innerjoin
(select课堂编号,成绩
from选课成绩
where学号=(select学号from学生where姓名='付学军'))asAonKT.课堂编号=A.课堂编号
innerjoin课程asKConKT.课程编号=KC.课程编号
29.
select'副高及以上'as'职称',count(*)as'人数'
from教师
where职称in('教授','副教授')
union
select'其他'as'职称',count(*)as'人数'
from教师
where职称notin('教授','副教授')
30.
select课程名称
from课程
where课程编号in
(select课程编号
from课堂
where课堂编号notin
(select课堂编号from选课成绩where学号=
(select学号from学生where姓名='常思')
))
31.
select姓名,出生日期
from学生
whereleft(cast(出生日期aschar(10)),7)=
left((selectcast(出生日期aschar(10))
from学生
where姓名='邓亦凡'),7)
and姓名<>'邓亦凡'
32.
select*
from
(select专业班级,avg(成绩)as平均成绩
from选课成绩innerjoin课堂on选课成绩.课堂编号=课堂.课堂编号innerjoin学生on选课成绩.学号=学生.学号
where课程编号=(select课程编号from课程where课程名称='数据库技术与应用')
groupby专业班级)asA
whereA.平均成绩>=
(selectavg(成绩)
from选课成绩innerjoin课堂on选课成绩.课堂编号=课堂.课堂编号innerjoin学生on选课成绩.学号=学生.学号
where专业班级='工程力学1701'and课程编号=(select课程编号from课程where课程名称='数据库技术与应用')
)and专业班级<>'工程力学1701'
33.
selectA.课程编号,课程名称,选修人数
from课程asAinnerjoin
(select课程编号,count(课程编号)as选修人数
from选课成绩innerjoin课堂on选课成绩.课堂编号=课堂.课堂编号
groupby课程编号
)asBonA.课程编号=B.课程编号
34.
selectsubstring('鼠牛虎兔龙蛇马羊猴鸡狗猪',(year(出生日期)-1900)%12+1,1)as生肖,count(*)as人数
from学生
groupbysubstring('鼠牛虎兔龙蛇马羊猴鸡狗猪',(year(出生日期)-1900)%12+1,1)
35.
select学生.学号,姓名,成绩
from选课成绩innerjoin课堂on选课成绩.课堂编号=课堂.课堂编号innerjoin学生on选课成绩.学号=学生.学号
where课程编号=(select课程编号from课程where课程名称='理论力学')and成绩>all(
select成绩
from选课成绩innerjoin课堂on选课成绩.课堂编号=课堂.课堂编号innerjoin学生on选课成绩.学号=学生.学号
where专业班级='土木工程1706'and课程编号=(select课程编号from课程where课程名称='理论力学')
)and专业班级<>'土木工程1706'
36.
select学生.学号,姓名,成绩
from选课成绩innerjoin课堂on选课成绩.课堂编号=课堂.课堂编号innerjoin学生on选课成绩.学号=学生.学号
where课程编号=(select课程编号from课程where课程名称='理论力学')and成绩>all(
select成绩
from选课成绩innerjoin课堂on选课成绩.课堂编号=课堂.课堂编号innerjoin学生on选课成绩.学号=学生.学号
where专业班级='土木工程1706'and课程编号=(select课程编号from课程where课程名称='理论力学')
)and专业班级<>'土木工程1706'
and课堂.课堂编号=
(select课堂编号
from课堂
where班级列表like'%土木工程1706%'and课程编号=(select课程编号from课程where课程名称='理论力学')
)
37.
select课程名称,学分数,学时数
from课程
where课程编号in
(select课程编号
from课堂
where课堂编号in
(select课堂编号
from选课成绩
where学号=(select学号from学生where姓名='常思')))
习题五
一、选择题
1.C2.C3.C4.A5.C6.B
二、填空题
1.CreateUniqueIndex……,Create……ClusteredIndex……
2.索引,视图
3.视图
4.定义
5.视图或部分基表
6.更新
习题六
2.
printdatediff(dd,'2018-1-1',getdate())+1
3.
createprocprodemo1@arg1char(10),@arg2char
(2)
as
select*
from课堂
where开课年份=@arg1and开课学期=@arg2and课堂状态in(0,2)
4.
createprocprodemo2@arg1char(10),@arg2char
(2)
as
select教师编号,姓名
from教师
where教师编号notin(
selectdistinct教师编号
from课堂
where开课年份=@arg1and开课学期=@arg2and课堂状态in(0,2))
5.
createprocprodemo3@cnamevarchar(50)
as
select*
from教师
where教师编号in(
selectdistinct教师编号
from课堂
where课程编号=(select课程编号from课程
where课程名称=@cname)
)
6.
createprocprodemo4@snamechar(20)
as
select*
from课堂innerjoin课程on课堂.课程编号=课程.课程编号
innerjoin选课成绩on课堂.课堂编号=选课成绩.课堂编号
where学号=(select学号from学生
where姓名=@sname)
7.
createprocprodemo5@tnamechar(20)
as
select*
from课堂innerjoin课程on课堂.课程编号=课程.课程编号
where教师编号=(select教师编号from教师
where姓名=@tname)