SQL小练

创建事件 

#创建事件,x秒后,用库存更新昨日库存
DELIMITER $$
CREATE    EVENT xxx.xxx
ON SCHEDULEAT CURRENT_TIMESTAMP   + INTERVAL 10  SECOND  
DOBEGINUPDATE `stock` SET `yesterday_quantity`=`quantity`;END $$
DELIMITER ;DELIMITER $$
CREATE    DEFINER='root'@'localhost' EVENT `jxc`.`direct_happen2`
ON SCHEDULEAT '2024-06-16 08:56:45'  
DOBEGINUPDATE `stock` SET `month_quantity`=`quantity`;END $$
DELIMITER ;#创建一个从下个月最后一天24点开始到2025年12月30日结束、每个月执行一次的事件,每次用当前库存更新月初库存
#interval表示时间间隔
DELIMITER $$
CREATE EVENT update_inventory_monthly
ON SCHEDULE EVERY 1 MONTH
STARTS LAST_DAY(DATE_ADD(CURDATE(),INTERVAL 1 MONTH))+INTERVAL '24:00:00' HOUR_SECOND
DO UPDATE stock SET month_quantity=quantity;
END $$
DELIMITER ;

存储过程

DELIMITER$$
CREATE PROCEDURE wh
(gid INT,gname VARCHAR(20),unit VARCHAR(20),barcode VARCHAR(20),
retail_Price DECIMAL(10,2),promotional_Price DECIMAL(10,2),STATUS TINYINT)
BEGINIF gid=0 THENINSERT INTO goods (gname,unit,barcode,retail_Price,promotional_Price,STATUS) VALUES (gname,unit,barcode,retail_Price,promotional_Price,STATUS);ELSEIF gid>0 THEN UPDATE goods SET goods.gname=gname, goods.unit=unit, goods.barcode=barcode, goods.retail_Price=retail_Price, goods.promotional_Price=promotional_Price, goods.STATUS=STATUS WHERE  goods.gid=gid;ELSE DELETE FROM goods WHERE goods.`gid`=gid;END IF;
END$$
DELIMITER;DELIMITER$$
CREATE PROCEDURE goodscx (gid INT)
BEGIN IF gid=0 THEN SELECT * FROM goods;ELSEIF gid>0 THENSELECT * FROM goods WHERE goods.`gid`=gid;END IF;
END$$
DELIMITER;#名称缩写的维护
DELIMITER$$
CREATE DEFINER='root'@'localhost'
FUNCTION PysxCx(zw VARCHAR(50)) RETURNS VARCHAR(10)
READS SQL DATA
BEGINSET @pysx='';SET @l=CHAR_LENGTH(zw);SET @i=1;WHILE (@i<=@l)DOSELECT jp INTO @jp FROM hzpyb WHERE hz=SUBSTR(zw,@i,1);SET @pysx=CONCAT(@pysx,@jp);SET @i=@i+1;END WHILE;RETURN @pysx;
END$$
DELIMITER;DELIMITER $$
DROP PROCEDURE IF EXISTS `xxx`$$
CREATE DEFINER = `root`@`localhost` PROCEDURE `xxx`(cxlb INT,cxcs INT)
BEGINIF cxlb=0 THENSELECT `cashaccountid`,`cashierid`, `cashier_time`,`uid`,`amount_money`,`actual_money`,`discount_money`,CASE `payment`WHEN 0 THEN 'xxx' WHEN 1 THEN 'xxx' WHEN 2 THEN 'xxx' WHEN 3 THEN 'xxx'END  AS xxxFROM `cashaccount` WHERE `cashierid`= cxcs AND `cashier_time`>=CURDATE() ORDER BY `cashaccountid` DESC;ELSE  SELECT * FROM v_xsjlmcb WHERE v_xsjlmcb.cashaccountid=cxcs;END IF;
END$$
DELIMITER ;

触发器

#在插入货品信息时更改货品名称拼音缩写
DELIMITER$$
CREATE TRIGGER Update_mcsx_before_insert_goods
BEFORE INSERT ON goods FOR EACH ROW
BEGIN SET new.abbreviations=pysxcx(new.gname);
END$$
DELIMITER;#在更新商品信息时更改货品名称拼音缩写
DELIMITER$$
CREATE TRIGGER Update_mcsx_before_update_goods_gname
BEFORE INSERT ON goods FOR EACH ROW
BEGINIF new.gname<>gname THENSET new.abbreviations=pysxcx(new.gname);END IF;END$$
DELIMITER;#自动在库存中添加一条对应数据
DELIMITER$$
CREATE TRIGGER Insert_into_stock_after_insert_name
AFTER INSERT ON goods FOR EACH ROW
BEGIN
INSERT INTO stock(gid) VALUES (new.gid);
END$$
DELIMITER;#自动在库存中删除对应库存数据
DELIMITER$$
CREATE TRIGGER delete_from_stock_after_delete_goods 
AFTER DELETE ON goods FOR EACH ROW
BEGINDELETE FROM stock WHERE stock.gid=old.gid;
END$$
DELIMITER;

#CAST( 字符串 AS SIGNED);  将字符串类型的数字转化为数字类型的数字
#MID()函数用于返回一个字符串中从指定位置开始的指定长度的子字符串。其语法为:
MID(str, START, LENGTH)
#start为要开始提取子字符串的位置(位置从1开始)。
#LOCATE()函数用于在一个字符串中查找子字符串,并返回子字符串第一次出现的位置。其语法为:
LOCATE(SUBSTRING, STRING, START)
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/837852.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

接口文档不显示新写的接口

新写的接口&#xff0c;但是不显示&#xff1a; 仔细对比源码才发现没有写tag&#xff1a; 然后就有了&#xff1a;

ES6之正则扩展

正则表达式扩展 u修饰符&#xff08;Unicode模式&#xff09;y修饰符&#xff08;Sticky或粘连模式&#xff09;s修饰符&#xff08;dotAll模式&#xff09;Unicode属性转义正则实例的flags属性字符串方法与正则表达式的整合 javascript的常用的正则表达式 验证数字邮箱验证手机…

C语言中的循环队列与栈、队列之间的转换实现

引言 在数据结构的学习中&#xff0c;栈&#xff08;Stack&#xff09;和队列&#xff08;Queue&#xff09;是两个非常重要的概念。它们分别遵循着后进先出&#xff08;LIFO&#xff09;和先进先出&#xff08;FIFO&#xff09;的原则。在某些情况下&#xff0c;我们可能需要…

C++——超简单登录项目

程序入口文件 #include <QtWidgets/QApplication> // 包含登录页面头文件 #include "DlgLogin.h"int main(int argc, char *argv[]) {QApplication a(argc, argv);// 程序入口// 调页面起来//DlgMain w;//w.show();// 换成登录页面DlgLogin w;w.show();return…

QT状态机6-无目标切换

一个切换也可以没有目标状态,一个没有目标状态的切换也可以像其他切换那样被触发。 其不同之处在于,当一个没有目标的切换被触发时,它不会引起任何的状态变化, 这样便可以让状态机在一个特定的状态时响应信号或者事件而不用离开这个状态。 回顾之前的学习,如下所示:当我…

开源禅道zentao的使用

很不幸禅道因为漏洞被人进攻了&#xff0c;被迫研究。 1.安装 直接使用docker进行部署&#xff0c;这里有非常多门道。官网的镜像easysoft-zentao是属于docker安装&#xff0c;而idoop的镜像虽然也是docker安装&#xff0c;但是实际是使用官网linux一键安装的版本&#xff0c…

一周学习总结:数组与链表

学习内容&#xff1a;数组与链表、计算机网络知识 数组&#xff1a; 从数组的基础知识到相关应用 数组的基础知识&#xff1a;数组在内存中的存储、数组的相关操作&#xff08;获取与更新&#xff09;、数组的相关应用&#xff1a; 二分查找法⭐⭐⭐⭐⭐ ● 掌握左闭右闭的…

2024第16届四川教育后勤装备展6月1日举办 欢迎参观

2024第16届四川教育后勤装备展6月1日举办 欢迎参观 邀请函 主办单位&#xff1a; 中国西部教体融合博览会组委会 承办单位&#xff1a;重庆港华展览有限公司 博览会主题&#xff1a;责任教育 科教兴邦 组委会&#xff1a;交易会159交易会2351交易会9466 展会背景 成都…

[报告购买] 2021新版知识付费行业报告-艾媒咨询,教育产品运营体系下,如何利用平台寻找私域流量的出路?

对教育机构来说&#xff0c;现在既是一个流量充沛的时代&#xff0c;又是一个流量稀缺的时代。互联网环境下&#xff0c;各平台流量数以亿计&#xff0c;为了获客&#xff0c;各教育品牌机构投放、冠名、代言、竞价已成常态化&#xff0c;公域平台的流量争夺如火如荼。 一轮一轮…

Spring之bean的细节(创建方式、作用范围、生命周期)

在Spring框架中&#xff0c;Bean是一个非常重要的概念&#xff0c;它代表了应用程序中需要被管理的对象。关于Bean的细节&#xff0c;我们可以从创建方式、作用范围以及生命周期三个方面进行阐述。 创建方式 Spring支持以下三种方式创建Bean&#xff1a; 调用构造器创建Bean…

Chatgpt教你使用Python开发iPhone风格计算器

上次使用Chatgpt写爬虫&#xff0c;虽然写出来的代码很多需要修改后才能运行&#xff0c;但Chatgpt提供的思路和框架都是没问题。 这次让Chatgpt写一写GUI程序&#xff0c;也就是你常看到的桌面图形程序。 由于第一次测试&#xff0c;就来个简单点的&#xff0c;用Python写用…

GPU Burn测试指导

工具下载链接&#xff1a; https://codeload.github.com/wilicc/gpu-burn/zip/master测试方法&#xff1a; 上传工具到操作系统下&#xff0c;解压缩工具&#xff0c;使用make命令完成编译&#xff08;确保cuda环境变量已经配置成功、 nvcc -v能显示结果&#xff09;。 如果安…

文献速递:多模态深度学习在医疗中的应用--多模式婴儿脑分割技术:模糊引导深度学习

Title 题目 Multimodal Infant Brain Segmentation by Fuzzy-informed Deep Learning 多模式婴儿脑分割技术&#xff1a;模糊引导深度学习 01 文献速递介绍 日益普及的非侵入式婴儿脑磁共振图像&#xff08;MRI&#xff09;为准确理解脑主要发展轨迹的动态性提供了机会&…

树莓派|串口通信协议

1、串口通信原理 串口通讯(Serial Communication)&#xff0c;是指外设和计算机间&#xff0c;通过数据信号线、地线等&#xff0c;按位进行传输数据的一种通讯方式。串口是一种接口标准&#xff0c;它规定了接口的电气标准&#xff0c;没有规定接口插件电缆以及使用的协议。串…

Flutter 中的 SwitchListTile 小部件:全面指南

Flutter 中的 SwitchListTile 小部件&#xff1a;全面指南 在Flutter的Material组件库中&#xff0c;SwitchListTile是一个包含开关&#xff08;Switch&#xff09;的列表项&#xff0c;非常适合用来创建带有标题、副标题以及开关的列表项&#xff0c;常用于设置界面&#xff…

图的遍历最小生成树问题

遍历和最小生成树是图论中常见的问题。下面我将分别介绍如何在 Java 中实现图的遍历和最小生成树算法&#xff0c;包括深度优先搜索&#xff08;DFS&#xff09;、广度优先搜索&#xff08;BFS&#xff09;以及最小生成树算法之一的Prim算法。 1. 图的遍历 a. 深度优先搜索&a…

“ModuleNotFoundError: No module named ‘selenium‘”报错如何解决

接上节&#xff1a;测试平台开发之测试框架改造并发执行及结果隔离(1) 上节博客的末尾提到&#xff1a;在命令窗口执行python main.py 可是执行的时候遇到了如下报错&#xff1a; ERRORS _____________________________________________________________ ERROR collecting te…

如何安全高效地进行4S店文件分发,保护核心资产?

4S店与总部之间的文件分发是确保双方沟通顺畅、信息共享和决策支持的重要环节。4S店文件分发涉及到以下文件类型&#xff1a; 销售报告&#xff1a;4S店需要定期向总部提交销售报告&#xff0c;包括销售数量、销售额、市场份额等关键指标。 库存管理文件&#xff1a;包括车辆库…

使用docker创建hadoop集群:Couldn‘t upload the file

运行的环境; Windows10 Docker Desktopdocker-hadoop 出现的问题如下: 解决方法 https://github.com/big-data-europe/docker-hadoop/issues/98

Unity Pixels Per Unit 与 Sprite Renderer Scale的逻辑关系,为什么平铺的Sprite Renderer会变形?

SpriteRenderer之前用的比较基础&#xff0c;没遇到过什么问题&#xff0c;这几天使用SpriteRenderer的平铺时发现平铺变形了&#xff0c;研究了一下&#xff0c;原来有这么多在逻辑在里面。 当我们导入图片选择Texture Type为Sprite时表示我们的图片用途是UI或者SpriteRendere…