进阶篇05——存储过程、存储函数、触发器

2024-06-19 22:04

本文主要是介绍进阶篇05——存储过程、存储函数、触发器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

存储过程

简介

基本语法

创建和调用

-- 创建名为p1的存储过程,小括号里可以跟参数
-- 存储过程个人觉得就是SQL里的函数
create procedure p1()
begin-- begin 和 end 之间是封装的SQL语句-- 可以是一条SQL也可以是多条SQLselect * from student;
end;-- 调用存储过程
call p1();

查看和删除

-- 查看存储过程
# 方式一
select * from information_schema.ROUTINES where ROUTINE_SCHEMA = 'test1';# 方式二
show create procedure p1;-- 删除存储过程
drop procedure if exists p1;

MySQL中的变量

系统变量

用户自定义变量

局部变量

条件判断

if

case

-- 根据输入的月份判断为第几季度
drop procedure if exists p2;
create procedure p2(in month int)
begindeclare res varchar(10);casewhen month between 1 and 3 then set res := '第一季度';when month between 4 and 6 then set res := '第二季度';when month between 7 and 9 then set res := '第三季度';when month between 10 and 12 then set res := '第四季度';else set res := '输入值不正确';end case;select concat('输入的月份', month, '所属的季度为', res);
end;call p2(6);

存储过程的参数 

循环

while 循环

-- 计算从1累加到n的值 while 循环实现
drop procedure if exists p3;
create procedure p3(in n int)
begindeclare sum int default 0;while n > 0 doset sum := sum + n;set n := n - 1;end while;select sum;
end;call p3(3);

repeat 循环

-- 计算从1累加到n的值 repeat 循环实现
drop procedure if exists p4;
create procedure p4(in n int)
begindeclare total int default 0;repeatset total := total + n;set n := n - 1;until n <= 0end repeat;select total;
end;call p4(4);

loop 循环

-- 计算从1累加到n的值 loop 循环实现
drop procedure if exists p5;
create procedure p5(in n int)
begindeclare total int default 0;total_n: loop-- 指定退出loop循环的条件if n <= 0 thenleave total_n;end if;set total := total + n;set n := n - 1;end loop total_n;select total;
end;call p5(5);-- 计算从1累n中偶数的累加值 loop 循环实现
drop procedure if exists p6;
create procedure p6(in n int)
begindeclare total int default 0;total_n: loopif n <= 0 thenleave total_n;elseif n % 2 != 0 then-- 注意,这里要记得把 n 的值减一set n := n - 1;iterate total_n;end if;set total := total + n;set n := n - 1;end loop total_n;select total;
end;call p6(6);

游标

 

存储函数

触发器

基本介绍

基本语法

案例

insert 类型触发器 

update 类型触发器  

更新表tb_user的数据时会自动触发该触发器的执行

delete 类型触发器

这篇关于进阶篇05——存储过程、存储函数、触发器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1076275

相关文章

C/C++的编译和链接过程

目录 从源文件生成可执行文件(书中第2章) 1.Preprocessing预处理——预处理器cpp 2.Compilation编译——编译器cll ps:vs中优化选项设置 3.Assembly汇编——汇编器as ps:vs中汇编输出文件设置 4.Linking链接——链接器ld 符号 模块,库 链接过程——链接器 链接过程 1.简单链接的例子 2.链接过程 3.地址和

【操作系统】信号Signal超详解|捕捉函数

🔥博客主页: 我要成为C++领域大神🎥系列专栏:【C++核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞👍收藏⭐评论✍️ 本博客致力于知识分享,与更多的人进行学习交流 ​ 如何触发信号 信号是Linux下的经典技术,一般操作系统利用信号杀死违规进程,典型进程干预手段,信号除了杀死进程外也可以挂起进程 kill -l 查看系统支持的信号

【服务器运维】MySQL数据存储至数据盘

查看磁盘及分区 [root@MySQL tmp]# fdisk -lDisk /dev/sda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical)

java中查看函数运行时间和cpu运行时间

android开发调查性能问题中有一个现象,函数的运行时间远低于cpu执行时间,因为函数运行期间线程可能包含等待操作。native层可以查看实际的cpu执行时间和函数执行时间。在java中如何实现? 借助AI得到了答案 import java.lang.management.ManagementFactory;import java.lang.management.Threa

SQL Server中,isnull()函数以及null的用法

SQL Serve中的isnull()函数:          isnull(value1,value2)         1、value1与value2的数据类型必须一致。         2、如果value1的值不为null,结果返回value1。         3、如果value1为null,结果返回vaule2的值。vaule2是你设定的值。        如

tf.split()函数解析

API原型(TensorFlow 1.8.0): tf.split(     value,     num_or_size_splits,     axis=0,     num=None,     name='split' ) 这个函数是用来切割张量的。输入切割的张量和参数,返回切割的结果。  value传入的就是需要切割的张量。  这个函数有两种切割的方式: 以三个维度的张量为例,比如说一

神经网络第三篇:输出层及softmax函数

在上一篇专题中,我们以三层神经网络的实现为例,介绍了如何利用Python和Numpy编程实现神经网络的计算。其中,中间(隐藏)层和输出层的激活函数分别选择了 sigmoid函数和恒等函数。此刻,我们心中不难发问:为什么要花一个专题来介绍输出层及其激活函数?它和中间层又有什么区别?softmax函数何来何去?下面我们带着这些疑问进入本专题的知识点: 1 输出层概述 2 回归问题及恒等函数 3

神经网络第一篇:激活函数是连接感知机和神经网络的桥梁

前面发布的文章介绍了感知机,了解了感知机可以通过叠加层表示复杂的函数。遗憾的是,设定合适的、能符合预期的输入与输出的权重,是由人工进行的。从本章开始,将进入神经网络的学习,首先介绍激活函数,因为它是连接感知机和神经网络的桥梁。如果读者认知阅读了本专题知识,相信你必有收获。 感知机数学表达式的简化 前面我们介绍了用感知机接收两个输入信号的数学表示如下:

mysql中存储过过程和游标的联合使用

1.SQL如下: DELIMITER //DROP PROCEDURE IF EXISTS PrintAllEmployeeNames5;CREATE PROCEDURE PrintAllEmployeeNames5()BEGINDECLARE error_count INT DEFAULT 0;DECLARE num INT ;DECLARE done INT DEFAULT

vscode python pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

在vscode中控制台运行python文件出现:无法将"pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。 使用vscode开发python,需要安装python开发扩展: 本文已经安装,我们需要找的是python安装所在目录,本文实际路径如下: 如果在本文路径中没有此目录,请尝试在C盘中搜索 python,搜索到相关python目录后,点击Python 3.9进入目录,