1:什么是触发器并写出创建触发器的语法.
触发器(trigger)是一个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( **insert,delete,update**)时就会激活它执行。
触发器经常用于加强数据的完整性约束和业务规则等。例如,当学生表中增加了一个学生的信息时,学生的总数就应该同时改变。因此可以针对学生表创建一个触发器,每次增加一个学生记录时,就执行一次学生总数的计算操作,从而保证学生总数与记录数的一致性。
创建触发器语法结构
CREATE TRIGGER 触发器名称 BEFORE|AFTER 触发事件 ON 表名
FOR EACH ROW
BEGIN
触发器程序体;
END
示例:
#作用:tab1表修改记录后,自动将tab2表中对应记录修改
create trigger tab1_after_update_trigger after update
on tab1 for each row
BEGIN
update tab2 set name=new.name where name=old.name;
END;
2:创建INOUT参数类型存储过程==>查询指定班级的学生人数.
CREATE PROCEDURE fun3 (INOUT p1 INT)
BEGIN
SELECT COUNT(*) INTO p1 FROM student WHERE GradeId = p1;
END;
#调用
SELECT @b; //返回nul
SET @b = 1;
SELECT @b; //返回1
CALL fun3(@b);
SELECT @b; //返回7
3:创建有参有返回值的存储函数==>根据学生名返回学号.
CREATE FUNCTION myf2(sName varchar(20))
RETURNS INT
BEGIN
DECLARE stuNo INT;
SELECT StudentNo INTO stuNo from student WHERE StudentName = sName;
RETURN stuNo;
END;