【数据库】SQL编程

博客围绕SQL展开,介绍了触发器是由事件触发的特殊存储过程,用于加强数据完整性约束,给出了创建触发器的语法及示例。还展示了创建INOUT参数类型存储过程查询指定班级学生人数,以及有参有返回值的存储函数根据学生名返回学号的代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值