SQL编程

本文介绍了SQL触发器的概念,创建触发器的基本语法,包括BEFORE和AFTER触发时机,以及针对特定事件如INSERT、UPDATE和DELETE的操作。此外,文中还讲解了如何创建带有INOUT参数的存储过程和有返回值的存储函数,如查询学生人数和根据学生名获取学号。
摘要由CSDN通过智能技术生成

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

触发器:

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

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

创建触发器语法:

CREATE TRIGGER 触发器名称 BEFORE|AFTER 触发事件 ON 表名 FOR EACH ROW
 BEGIN
    触发器程序体;
 END

 ---------------------------------------------------------- 
  说明:
  <触发器名称> 最多64个字符,它和MySQL中其他对象的命名方式一样
 { BEFORE | AFTER }   触发器时机,在触发事件之前(BEFORE)或之后(AFTER)
 { INSERT | UPDATE | DELETE } 触发的事件INSERT(创建)、 UPDATE(更新)、 DELETE(删除)
 ON <表名称> 标识建立触发器的表名,即在哪张表上建立触发器
 FOR EACH ROW 触发器的执行间隔:
     FOR EACH ROW子句通知触发器 每隔一行执行一次动作,而不是对整个表执行一次

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


2、创建INOUT参数类型存储过程(查询指定班级的学生人数)

CREATE PROCEDURE fun2 (IN p1 INT,OUT p2 INT)
    BEGIN
        SELECT COUNT(*) INTO p2 FROM student WHERE GradeId = p1;
    END;

//调用
CALL fun2(1,@a);

SELECT @a;

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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值