☆操作请求描述
查询每个学生的学号、姓名、课程号和成绩以及参加的活动 ☆T-SQL语句
select Student.Sno,Sname,Cno,Score,Aname from student,Grade,Activity
where student.Sno=Grade.Sno and Grade.Sno=Activity.Asno; ☆执行结果截屏
★实例2 ☆操作请求描述
查询每个学生及其课程成绩 ☆T-SQL语句
select student.*,Grade.* from student,Grade
where student.Sno=Grade.Sno; ☆执行结果截屏
第 16 页
5.4.4聚合查询
★实例1 ☆操作请求描述
查询管理学院所有女生的信息 ☆T-SQL语句
select * from student where Sdept='11' intersect select * from student where Ssex='女'; ☆执行结果截屏
第 17 页
★实例2 ☆操作请求描述
查询选择了课程3且成绩大于90的学生学号 ☆T-SQL语句
select Sno from Grade where Cno='3' intersect select Sno from Grade where Score>90; ☆执行结果截屏
第 18 页
6 数据库管理及控制
6.1触发器
6.1.1触发器逻辑表述
控制逻辑表述:
在成绩(Grade)表上建立一个触发器,当用户试图修改某门课程的成绩score时触发器被激发,以阻止用户的修改行为,并回滚事务。
6.1.2触发器SQL语句
T-SQL语句:
create trigger modify_score on Grade for update as
if update(score) begin
print'无法修改成绩' rollback transaction end Return
6.1.3触发器测试
测试语句:
update Grade set Score=98
where Sno=2010303060 and Cno=1; 测试结果:
第 19 页
6.2事务
☆控制逻辑表述:
活动加分乘以10%,如果学号为2010403059的学生活动加分若超过10分,事务将回滚。 ☆T-SQL语句:
BEGIN TRANSACTION USE zhushan
UPDATE ActivityPoints SET Amark=Amark*0.1
IF (SELECT Amark FROM ActivityPoints WHERE sno= '2010403059') > 10
BEGIN
PRINT 'Transaction rollback back' ROLLBACK TRANSACTION END ELSE BEGIN
PRINT 'Transaction commited' COMMIT TRANSACTION END ☆执行结果:
第 20 页
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数据库技术与应用大作业(4)在线全文阅读。
相关推荐: