SQL : INSTEAD OF触发器的工作过程

可以在表或视图上指定INSTEAD OF触发器。执行这种触发器就能够替代原始的触发动作。INSTEAD OF触发器扩展了视图更新的类型。对于每一种触发动作(INSERT、UPDATE或 DELETE),每一个表或视图只能有一个INSTEAD OF触发器。 INSTEAD OF触发器被用于更新那些没...

2019-07-19 16:57:29

阅读数 10

评论数 0

SQL: UPDATE触发器的工作过程

可将UPDATE语句看成两步操作:即捕获数据前像(before image)的DELETE语句,和捕获数据后像(after image)的INSERT语句。当在定义有触发器的表上执行UPDATE语句时,原始行(前像)被移入到deleted表,更新行(后像)被移入到inserted表。 触发器检查d...

2019-07-19 16:56:19

阅读数 5

评论数 0

SQL:触发器DELETE触发器的工作过程

当触发DELETE触发器后,从受影响的表中删除的行将被放置到一个特殊的deleted表中。deleted表是一个逻辑表,它保留已被删除数据行的一个副本。deleted表还允许引用由初始化DELETE语句产生的日志数据。 使用DELETE触发器时,需要考虑以下的事项和原则: l 当某...

2019-07-19 16:51:04

阅读数 1

评论数 0

SQL:触发器

触发器是数据库应用中的重用工具,它的应用很广泛,这几天写一个化学数据统计方面的软件,需要根据采样,自动计算方差,在这里,我使用了触发器。 下面我摘录了SQL Server官方教程中的一段关于触发器的文字,确实有用的一点文字描述。 可以定义一个无论何时用INSERT语句向表中插入数据时都会执行的触...

2019-07-19 16:50:19

阅读数 1

评论数 0

SQL : 练习题-44题

查询下月过生日的学生 select * from student where MONTH(student.Sage)=MONTH(CURDATE())+1;

2019-07-17 17:42:33

阅读数 11

评论数 0

SQL : 练习题-43题

查询本月过生日的学生 select * from student where MONTH(student.Sage)=MONTH(CURDATE());

2019-07-17 17:42:24

阅读数 10

评论数 0

SQL : 练习题-42题

查询下周过生日的学生 select * from student where WEEKOFYEAR(student.Sage)=WEEKOFYEAR(CURDATE())+1;

2019-07-16 15:40:38

阅读数 10

评论数 0

SQL : 练习题-41题

查询本周过生日的学生 select * from student where WEEKOFYEAR(student.Sage)=WEEKOFYEAR(CURDATE());

2019-07-16 15:39:52

阅读数 37

评论数 0

SQL : 练习题-40题

按照出生日期来算,当前月日 < 出生年月的月日则,年龄减一 select student.SId as 学生编号,student.Sname as 学生姓名, TIMESTAMPDIFF(YEAR,student.Sage,CURDATE()) as 学生年龄 from stud...

2019-07-16 15:39:12

阅读数 34

评论数 0

SQL : 练习题-39题

查询选修了全部课程的学生信息 select student.* from sc ,student where sc.SId=student.SId GROUP BY sc.SId HAVING count(*) = (select DISTINCT count(*) from course ) ...

2019-07-16 15:38:24

阅读数 38

评论数 0

SQL : 练习题-38题

检索至少选修两门课程的学生学号 select sid, count(cid) as cc from sc group by sid having cc>=2;

2019-07-16 15:37:51

阅读数 29

评论数 0

SQL : 练习题-37题

统计每门课程的学生选修人数(超过 5 人的课程才统计) select sc.cid, count(sid) as cc from sc group by cid having cc >5;

2019-07-16 15:37:18

阅读数 29

评论数 0

SQL : 练习题-36题

查询每门功成绩最好的前两名 select a.sid,a.cid,a.score from sc as a left join sc as b on a.cid = b.cid and a.score<b.score group by a.cid, a.sid having co...

2019-07-16 15:36:46

阅读数 25

评论数 0

SQL : 练习题-35题

查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩 同上,在这里用了inner join后会有概念是重复的记录:“01 课与 03课”=“03 课与 01 课”,所以这里取唯一可以直接用group by select a.cid, a.sid, a.score from sc as a ...

2019-07-16 15:36:08

阅读数 20

评论数 0

SQL : 练习题-34题

成绩有重复的情况下,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩 为了验证这一题,先修改原始数据 UPDATE sc SET score=90 where sid = "07" and cid ="02"; 这样张三老师教的02号课就有...

2019-07-16 15:35:30

阅读数 20

评论数 0

SQL : 练习题-33题

成绩不重复,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩 用having max()理论上也是对的,但是下面那种按分数排序然后取limit 1的更直观可靠 select student.*, sc.score, sc.cid from student, teacher, cou...

2019-07-16 15:34:35

阅读数 23

评论数 0

SQL : 练习题-32题

求每门课程的学生人数 select sc.CId,count(*) as 学生人数 from sc GROUP BY sc.CId;

2019-07-16 15:33:37

阅读数 20

评论数 0

SQL : 练习题-31题

查询课程编号为 01 且课程成绩在 80 分及以上的学生的学号和姓名 select student.sid,student.sname from student,sc where cid="01" and score>=80 and student.sid = ...

2019-07-15 12:39:04

阅读数 9

评论数 0

SQL : 练习题-30题

查询存在不及格的课程 可以用group by 来取唯一,也可以用distinct select cid from sc where score< 60 group by cid; select DISTINCT sc.CId from sc where sc.score &...

2019-07-15 12:37:56

阅读数 9

评论数 0

SQL : 练习题-29题

查询任何一门课程成绩在 70 分以上的姓名、课程名称和分数 select student.sname, course.cname,sc.score from student,course,sc where sc.score>70 and student.sid = sc.sid an...

2019-07-15 12:37:21

阅读数 11

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭