SQL第二次作业

1:什么是触发器并写出创建触发器的语法.

触发器(trigger)是一个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发, 比如当对一个表进行操作( insert,delete, update)时就会激活它执行。

触发器经常用于加强数据的完整性约束和业务规则等。例如,当学生表中增加了一个学生的信息时,学生的总数就应该同时改变。因此可以针对学生表创建一个触发器,每次增加一个学生记录时,就执行一次学生总数的计算操作,从而保证学生总数与记录数的一致性。

语法结构:

CREATE TRIGGER 触发器名称 BEFORE|AFTER 触发事件 ON 表名 FOR EACH ROW
 BEGIN
	触发器程序体;
 END
 ---------------------------------------------------------- 
 # 说明:
  <触发器名称> 最多64个字符,它和MySQL中其他对象的命名方式一样
 { BEFORE | AFTER }   触发器时机
 { INSERT | UPDATE | DELETE } 触发的事件
 ON <表名称> 标识建立触发器的表名,即在哪张表上建立触发器
 FOR EACH ROW 触发器的执行间隔:
 	FOR EACH ROW子句通知触发器 每隔一行执行一次动作,而不是对整个表执行一次

 <触发器程序体> 要触发的SQL语句:可用顺序,判断,循环等语句实现一般程序需要的逻辑功能

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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值