当前位置:首页 > 《T-sql语言和SQL Server管理》课程期末复习大纲
《T-sql语言和SQL Server管理》课程期末复习大纲 1. 关系代数(10分)
考察范围:课内练习1-1、例1.4、课内练习1-4、例1.7、课内练习1-5、课内练习1-7、课内练习1-8
【课内练习1-1】查询“数学与应用数学”系的男生和“汉语言文学”系的女生。
σ(Sdept=’数学与应用数学’∧Ssex=’男’ )∧(Sdept=’汉语言文学’∧Ssex=’女’ )(Student)
【例1.4】查询选修了CC-1-1课程的学生的学号。
∏Sno(σCno='CC-1-1'(SC))
【课内练习1-4】 查询计算机工程系年龄在20~24岁之间的学生的学号和姓名。
∏Sno,Sname(σSage>=20∧Sage<=24∧Sdept=’计算机工程’(Student))
【例1.7】关系的并、交、差、笛卡儿积运算。
R S R∪S(并)
A B C A B C a1 b2 c2
a1 b3 c2
a2 b2 c1
A B C a1 a1 a2
b1 b2 b2 c1 c2 c1 a1 a1 a2 a1 b1 b2 b2 b3 c1 c2 c1 c2 A a1 a2
R∩S(交) R×S(笛卡尔积)
B C R.A R.B R.C S.A S.B
b2 c2 a1 b1 c1 a1 b2
b2 c1 a1 b1 c1 a1 b3
S.C c2 c2 c1 c2 c2 c1 c2 c2 c1 a1
b1 b2 b2 b2 b2 b2 b2 c1 c2 c2 c2 c1 c1 c1 a2 a1 a1 a2 a1 a1 a2 b2 b2 b3 b2 b2 b3 b2 a1 a1 R-S(差) A B C
a1 a2 a2 a2 a1 b1 c1 【课内练习1-5】 设有如图所示的关系R和S,计算:
(1) R1=R-S (2) R2=R∪S (3) R3=R∩S (4) R4=R×S
R S R∩S
A B C a b c b a b c f d A B C
A B C b c a a f d b a f
R∪S
R-S A B C
A B C a c b b c d a b c c b a b a S.B c f d d S.C
R×S R.A R.B R.C S.A a a b b c c b b a a b b c c f F d d b c b c b c a a a a a a f d f d f d 【课内练习1-6】用关系代数找出和李蕾同学在同一个系学习的其他同学的学号和姓名。 ∏Student2.Sno,Student2.Sname(σStudent1.Sname=’
Student2.Sname
李蕾’∧
Student1.Sdept=Student2.Sdept
∧
!= ’李蕾’(ρs1(Student) ×ρs2(Student)))
【课内练习1-7】给出关系R和S。求出R∞S ,R∞R.C=S.Es,R∞R.C>S.Es。
R S
A a1 a1 a2 a2
B b1 b2 b3 b4 C 5 B b1 b2 b3 b3 b5 E 3 7 10 2 2 6 8 12 R∞R.C>S.Es R.A R.B R∞S
R.C S.B S.E R.A R.B R.C S.B S.E a1 a1 a1 a1 a1 a1 a2 a2 a2 a2 a2 a2 a2 a2 a2 b1 b1 b1 b2 b2 b2 b3 b3 b3 b3 b4 b4 b4 b4 b4 5 5 5 6 6 6 8 8 8 8 12 12 12 12 12 R∞R.C=S.Es
b1 b3 b5 b1 b3 b5 b1 b2 b3 b5 b1 b2 b3 b3 b5 3 2 2 3 2 2 3 7 2 2 3 7 10 2 2 a1 a1 a1 a1 a1 a1 a1 a1 a1 a1 a2 a2 a2 a2 a2 a2 b1 b1 b1 b1 b1 b2 b2 b2 b2 b2 b3 b3 b3 b3 b3 b4 b4 b4 b4 b4 5 5 5 5 5 6 6 6 6 6 8 8 8 8 8 12 12 12 12 12 b1 b 2 b3 b3 b5 b1 b2 b3 b3 b5 b1 b2 b3 b3 b5 b1 b2 b3 b3 b5 3 7 10 2 2 3 7 10 2 2 3 7 10 2 2 3 7 10 2 2 R.A
R.B R.C S.B S.E a2 a2 a2 a2 【课内练习1-8】找出同时选修了“CC-4-1”和“CC-4-2”课程的学生学号。
∏SC1.Sno(ρ
SC2(SC)
SC1(SC)
∞SC1.Cno=’CC-4-1’ ∧SC1.Sno=SC2.Sno∧SC2.Cno=’CC-4-2’
ρ
)
2. 游标(12分)
作业和实验,不考嵌套游标
【作业2-1】写一个程序比较CC-1-1课程和CC-2-1课程的平均分,输出结果
“CC-1-1课程的均分?高于(按实际情况也可能是低于或等于)CC-2-1课程的均分?”, ?表示课程实际的平均分。
declare @avgc1 tinyint,@avgc2 tinyint,@c1 char(6),@c2 char(6) select @c1='CC-1-1',@c2='CC-2-1'
declare bj_cur scroll cursor for
select Cno,avg(Grade) from SC
where Cno='CC-1-1' or Cno='CC-2-1' group by Cno open bj_cur
fetch next from bj_cur into @c1,@avgc1 fetch next from bj_cur into @c2,@avgc2 if @avgc1>@avgc2
print @c1+'课程的均分'+cast(@avgc1 as varchar(3))+'高于'+@c2+'课程的均分'+cast(@avgc2 as varchar(3)) else
if @avgc1=@avgc2
print @c1+'课程的均分'+cast(@avgc1 as varchar(3))+'等于'+@c2+'课程的均分'+cast(@avgc2 as varchar(3)) else
print @c1+'课程的均分'+cast(@avgc1 as varchar(3))+'低于'+@c2+'课程的均分'+cast(@avgc2 as varchar(3)) close bj_cur
deallocate bj_cur
【作业2-2】查询student关系中计算机工程系的男生信息,并设法让语句延迟120ms执行。
waitfor delay ’00:00:0.12’ select * from Student
where Sdept=’计算机工程’ and Ssex=’男’
【作业2-3】定义可滚游标course_cur,循环打印所有计算机系学生所选修的课程课程号和课程名。 Declare @coursename varchar(40),@courseno char(6),@studentname varchar(30),@studentdept varchar(30) select @studentdept='计算机工程'
print '------'+@studentdept+'系学生所选修的情况'+'-------' declare student_cur scroll cursor for
select Sname from Student
where Sdept=@studentdept
open student_cur
fetch next from student_cur into @studentname while @@fetch_status=0 begin
共分享92篇相关文档