当前位置: 首页 > news >正文

数据表的存储过程和函数介绍

文章目录

    • 一、概述
    • 二、创建存储过程
    • 三、在创建过程中使用变量
    • 四、光标的使用
    • 五、流程控制的使用
    • 六、查看和删除存储过程

一、概述

存储过程和函数是在数据库中定义的一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句。存储过程和函数可以避免开发人员重复编写相同的SQL语句。而且。存储过程和函数是在MySQL服务器中存储和执行的。可以减少客户端和服务端的数据传输。

二、创建存储过程

创建存储过程和函数是指将经常使用的一组SQL语句组合在一起,并将这些SQL语句当作一个整体存储在MySQL服务器中。存储程序可以分为存储过程和函数。在MySQL中创建存储过程使用的语句CREATE PROCEDURE。其语法形式如下:

CREATE PROCEDURE procedure_name([proc_param[,...]]) routine_body

在上述语句中,参数procedure_name表示要创建的存储过程名字,参数proc_param表示存储过程的参数,参数routine_body表示存储过程的SQL语句代码,可以使用BEGIN…END来标志SQL语句的开始和结束。
**注意:**在具体创建存储过程时,存储过程名不能与已经存在的存储过程名重名。

proc_param中每个参数的语法形式如下:
在上述语句中,每个参数由三部分组成,分别为输入/输出类型、参数名和参数类型。其中,输入/输出类型有三种类型,分别为IN(表示输入类型)、OUT(表示输出类型)、INOUT(表示输入/输出类型)。param_name表示参数名;type表示参数类型,可以是MySQL软件所支持的任意一个数据类型。

三、在创建过程中使用变量

在存储过程和函数中,可以定义和使用变量。用户可以使用关键字DECLARE来定义变量。然后为变量赋值。这些变量的作用范围是在BEGIN…END程序段中。

1.定义变量
在MySQL中,可以使用DECLARE关键字来定义变量。定义变量的基本语法如下:

DECLARE var_name[,...] type [DEFAULT value]

其中关键字DECLARE是用来声明变量的;参数var_name是变量的名称,可以同时定义多个变量;参数type用来指定变量的类型;DEFAULT value子句将变量默认值设置为value,没有使用DEFAULT子句时,默认值为NULL。
定义变量cid,数据类型为INT类型,默认值为10,代码如下:

DECLARE cid INT DEFAULT 10;

2.为变量赋值
在MySQL中可以使用关键字SET来为变量赋值,SET语句的基本语法如下:

SET var_name=expr[,var_name=expr]...

其中,关键字SET用来为变量赋值;参数var_name是变量的名称;参数expr是赋值表达式。一个SET语句可以同时为多个变量赋值。各个变量的赋值语句之间用逗号隔开。
例如,将变量tmp_id赋值为88,代码如下:

SET tmp_id = 88;

在MySQL中,还可以使用SELECT…INFO语句为变量赋值。其基本语法如下:

SELECT col_name[,...] INFO var_name[,...] FROM table_name WHERE condition

其中,参数col_name表示查询的字段名称;参数var_name是变量的名称;参数table_name指表的名称;参数condition指查询条件。
在这里插入图片描述

四、光标的使用

查询语句可能查询出多条记录,在存储过程和函数中使用光标来逐条读取查询结果集中的记录。光标的使用包括声明光标、打开光标、使用光标和关闭光标。光标必须声明在处理程序之前,并且声明在变量和条件之后。

1.声明光标
在MySQL中,可以使用DECLARE关键字来声明光标,其基本语法如下:

DECLARE cursor_name CURSOR FOR select_statement;

其中参数cursor_name表示光标的名称;参数select_statement表示SELECT语句的内容。

2.打开光标
在MySQL中,使用关键字OPEN来打开光标,其基本语法如下:

OPEN cursor_name;

其中,参数cursor_name表示光标的名称。

3.使用光标
在MySQL中,使用关键字FETCH来使用光标,其基本语法如下:

FETCH cursor_name INTO var_name [,var_name...];

其中参数cursor_name表示光标的名称;参数var_name表示将光标中的SELECT语句查询出来的信息存入该参数中。var_name必须在声明光标之前定义好。

4.光标光标
在MySQL中,使用关键字CLOSE来关闭光标,其基本语法如下:

CLOSE cursor_name;

其中参数cursor_name表示光标的名称。
在这里插入图片描述
在这里插入图片描述

五、流程控制的使用

在存储过程和函数中,可以使用流程来控制语句的执行,在MySQL中,可以使用IF语句、CASE语句、LOOP语句、LEAVE语句,ITERATE语句、REPEAT语句和WHILE语句来进行流程控制。

1.IF语句
IF语句用来进行条件判断。根据条件执行不同的语句,其语法的基本形式如下:

IF search_condition THEN statement_list 
[ELSEIF search_condition THEN statement_list] 
...
[ELSE statement_list] END IF

参数search_condition表示条件判断语句;参数statement_list表示不同条件的执行语句。

下面是一个IF语句的示例,代码如下:

IF age > 20 THEN SET @count1 = @count1 + 1;ELSEIF age = 20 THEN @count2 = @count2 + 1;ELSE @count3 = @count3 + 1;
END IF;

该示例根据age与20的大小关系来执行不同的SET语句。如果age值大于20,将count1的值加1;如果age值等于20,就将count2的值加1;其他情况将count3的值加1。IF语句都需要使用END IF来结束。
在这里插入图片描述
2.CASE语句
CASE语句可实现比IF语句更复杂的条件判断,其语法的基本形式如下:

CASE case_value
WHEN when_value THEN statement_list 
[WHEN when_value THEN statement_list] 
[ELSE statement_list]
END CASE

其中,参数case_value表示条件判断的变量;参数when_value表示变量的取值;参数statement_list表示不同的when_value值的执行语句。

下面是一个CASE语句的示例。代码如下:

CASE levelWHEN 20 THEN SET attack = attack + 5;WHEN 30 THEN SET attack = attack + 10;WHEN 40 THEN SET attack = attack + 15;ELSE SET attack = attack + 1;
END CASE

当级别level值为20时,attack值加5;当级别level值为30时,attack值加10;当级别level值为40时。attack值加15;否则attack + 1。CASE语句使用END CASE结束。

3.LOOP语句
LOOP语句可以使某些特定的语句重复执行,实现一个简单的循环。LOOP语句本身没有停止循环,只有遇到LEAVE语句等才能停止循环。LOOP语句的语法形式如下:

[begin_label:] LOOP
statement_list
END LOOP [end_label]

其中,参数begin_label和参数end_label分别表示循环开始和结束的标志,这两个标志必须相同。而且都可以省略;参数statemeng_list表示需要循环执行的语句。

下面是一个LOOP语句的示例,代码如下:

ADD_num:LOOPSET @count = @count + 1;
END LOOP add_num;

该示例循环执行count加1的操作。因为没有跳出循环,这个循环成了一个死循环。LOOP循环都以END LOOP结束。

4.LEAVE语句
LEAVE语句主要用于跳出循环控制,其语法形式如下:

LEAVE label

其中,参数label表示循环的标志。

下面是一个LEAVE语句的示例,代码如下:

add_num:LOOPSET @count = @count + 1IF @count = 100  THENLEAVE add_num;END IF;
END LOOP add_num;

该示例循环执行count值加1的操作。当count的值等于100时,LEAVE语句跳出循环。
在这里插入图片描述
5.ITERATE语句
ITERATE语句也是用来跳出循环的语句,但是ITERATE语句是跳出本次循环,然后直接进入下一次循环,ITERATE语句的语法形式如下:

ITERATE label

其中,参数label表示循环的标志。

下面是一个ITERATE语句的示例,代码如下:

add_num:LOOPset @count = @count +1;IF @count = 100 THENLEAVE add_num;ELSE IF MOD(@count, 3) = 0 thenITERATE add_num;select * from student;
END LOOP add_num;

该示例循环执行count加1的操作,count的值为100时结束循环,如果count的值能够整除3,就跳出本次循环,不再执行下面的SELECT语句。

6.REPEAT语句
REPEAT语句是有条件控制的循环语句,当满足特定条件时,就会跳出循环语句。REPEAT语句的基本语法形式如下:

[begin_label:] REPEATUNTIL search_conditionEND REPEAT [end_label]

其中,参数statement_list表示循环的执行语句;参数search_condition表示结束循环的条件,满足该条件时循环结束。

下面是一个REPEAT语句的示例,代码如下:

REPEATSET @count=@count+1;UNTIL @count=100
END REPEAT;

该示例循环执行count加1的操作,count值为100时结束循环。REPEAT循环都用END REPEAT结束。

7.WHILE语句
WHILE语句也是有条件控制的循环语句,但WHILE语句和REPEAT语句是不一样的。WHILE语句是当满足条件时执行循环内的语句。WHILE语句的基本语法形式如下:

[begin_label:] WHILE search_condition DOstatement_list
END WHILE [end_label]

其中,参数statement_condition表示循环执行的条件,满足该条件时循环执行;参数statement_list表示循环的执行语句。

下面是一个WHILE语句的示例。代码如下:

WHILE @count<100 DOSET @count = @count + 1;
END WHILE;

六、查看和删除存储过程

存储过程创建以后,用户可以通过SHOW STATUS语句来查看存储过程的状态,也可以通过SHOW CREATE语句来查看存储过程的定义。用户也可以通过查询information_schema数据库下的Routines表来查看存储过程的信息。

1.SHOW STATUS语句查看存储过程
在MySQL中,可以通过SHOW STATUS语句查看存储过程的状态。其基本语法形式如下:

SHOW PROCEDURE STATUS [like 'pattern'];

其中,参数PROCEDURE表示查询存储过程;参数LIKE 'pattern’用来匹配存储过程的名称。

2.SHOW CREATE语句查看存储过程的定义
在MySQL中,可以通过SHOW CREATE 语句查看存储过程的状态,语法形式如下:

SHOW CREATE PROCEDURE proc_name

其中,参数PROCEDURE表示查询存储过程;参数proc_name表示存储过程的名称。

3.information_schema.Routine表中查看存储过程的信息
存储过程和函数的信息存储在information_schema数据库下的Routines表中。可以通过查询该表的记录来查询存储过程和函数的信息。其基本语法形式如下:

SELECT * FROM information_schema.Routines WHERE ROUTINE_NAME = 'proc_name';

其中,字段ROUTINE_NAME中存储的是存储过程和函数的列名称;参数proc_name表示存储过程或函数的名称。

4.存储过程的删除
在MySQL中删除存储过程通过SQL语句DROP完成:

DROP PROCEDURE proc_name;

在上述语句中,关键字DROP PROCEDURE用来实现删除存储过程,参数proc_name表示所要删除的存储过程名称。

相关文章:

数据表的存储过程和函数介绍

文章目录 一、概述二、创建存储过程三、在创建过程中使用变量四、光标的使用五、流程控制的使用六、查看和删除存储过程 一、概述 存储过程和函数是在数据库中定义的一些SQL语句的集合&#xff0c;然后直接调用这些存储过程和函数来执行已经定义好的SQL语句。存储过程和函数可…...

IntelliJ IDEA 控制台输出中文出现乱码

IntelliJ IDEA 控制台输出中文出现乱码通常是由于编码设置不一致导致的。以下是常见原因及解决方法 1. 项目编码设置 检查路径&#xff1a;File → Settings → Editor → File Encodings 确保 Project Encoding、Global Encoding 和 Default Encoding for Properties Files 均…...

ARMS 助力假面科技研发运维提效,保障极致游戏体验

客户介绍与项目背景 假面科技成立于 2014 年&#xff0c;致力于打造创新的数字产品&#xff0c;火爆一时的“狼人杀”、“谁是卧底”、“足记相机”都是假面科技旗下产品&#xff0c;公司产品总数超过 40 款&#xff0c;覆盖用户数超过 2 亿人。 随着业务的持续发展&#xff…...

go json处理 encoding/json 查询和修改gjson/sjson

推荐 标准库encoding/json import ("encoding/json""log" )// Student1 注意点&#xff1a; // 1. 注意alain别名的写法&#xff1a; json:"name1" 而非 "json:name1" // 2. 注意json.Marshal的时候只输出首字母大写的属性 // 3. jso…...

Web Worker终极优化指南:4秒卡顿→0延迟的实战蜕变

&#x1f4a1; 导读&#xff1a;从4秒卡顿到丝滑响应 真实痛点场景&#xff1a;当斐波那契数列计算量达10亿次时&#xff0c;页面完全冻结4.2秒&#xff01;通过Web Worker优化后&#xff0c;UI响应时间降至16ms以内。本文手把手带您实现性能蜕变&#xff01; 一、Web Worker核…...

python读取pdf文档

import io import pdfplumber from opencc import OpenCC import fitz # pymupdf import osfile_path /document/pdf/xxx.pdf output_dir /classification/pdf/images #获取图片 demo def extract_images_from_pdf(pdf_path, output_dir):# 确保输出目录存在if not os.path.…...

CSS垂直居中终极方案:告别复杂计算,拥抱现代布局

CSS垂直居中终极方案&#xff1a;告别复杂计算&#xff0c;拥抱现代布局 &#x1f4cc; 前言&#xff1a;为什么垂直居中如此重要&#xff1f;一、2024年最推荐的3种方案1. Flexbox布局&#xff08;首推方案&#xff09;2. Grid布局&#xff08;未来趋势&#xff09;3. Transfo…...

ROS2 应用:按键控制 MoveIt2 中 Panda 机械臂关节位置

视频讲解 ROS2 应用&#xff1a;按键控制 MoveIt2 中 Panda 机械臂关节位置 创建 ROS 2 包 进入工作空间的 src 目录&#xff0c;然后创建一个新的 Python 包&#xff1a; ros2 pkg create --build-type ament_python panda_joint_control --dependencies rclpy control_msgs…...

SHELL32!Shell_MergeMenus函数分析

SHELL32!Shell_MergeMenus函数分析 UINT Shell_MergeMenus( [in] HMENU hmDst, [in] HMENU hmSrc, UINT uInsert, UINT uIDAdjust, UINT uIDAdjustMax, ULONG uFlags ); 参数 [in] hmDst 类型&#xff1a; HMENU 要向其添加 hmSrc…...

python: SQLAlchemy (ORM) Simple example using SQLite

领域层&#xff08;Domain Laye&#xff09;&#xff1a;定义了 School 实体类和 SchoolRepository 抽象基类&#xff0c;明确了业务实体和数据访问的契约。 基础设施层&#xff08;Infrastructure Laye&#xff09;&#xff1a;通过 SQLAlchemy 实现了 SchoolRepository 类&am…...

MySQL 视图入门

一、什么是 MySQL 视图 1.1 视图的基本概念 在 MySQL 中&#xff0c;视图是一种虚拟表&#xff0c;它本身并不存储实际的数据&#xff0c;而是基于一个或多个真实表&#xff08;基表&#xff09;的查询结果集。可以把视图想象成是一个预定义好的查询语句的快捷方式。当你查询…...

【洛谷排序算法】P1012拼数-详细讲解

这道题本质上是通过确定数字的拼接顺序来得到最大拼接数&#xff0c;虽然主要思路是利用字符串及其比较规则来实现&#xff0c;但也可以基于数组结合一些转换操作来解决&#xff0c;以下是大致思路和代码示例&#xff1a; 【算法思路】 首先将输入的数字存储在数组中。然后自…...

在WPS中设置word的页码不从第一页开始,从指定页开始插入页码

大家好&#xff0c;我是小鱼。 在日常的办公中为Word文档页面插入页码是经常要做的。如果一个文档有几十页&#xff0c;插入页码不仅可以快速定位到文章的内容&#xff0c;如果需要制作目录也方便制作。正确情况下插入页码都是从第一页开始的&#xff0c;但是有些文档比如说标…...

鸿蒙app 开发中 对于数组方法 filter 的理解

这段代码是 TypeScript 中数组 filter 方法的类型定义&#xff0c;下面将详细解释其各个部分的含义、作用及使用场景。 整体功能概述 filter 方法是 JavaScript 和 TypeScript 中数组对象的一个内置方法&#xff0c;它的主要功能是创建一个新数组&#xff0c;新数组中的元素是…...

【废物研究生刷算法】字符串

文章目录 1. 反转字符串2. 替换数字3. 反转字符串中的单词4. 右旋字符串总结1、字符串处理函数2、字符串切片 如果使用python处理字符串&#xff0c;有很多py内置的函数可以使用&#xff0c;主要还是记住这些处理方法。 1. 反转字符串 class Solution:def reverseStr(self, s, …...

深入理解 SQL 注入漏洞及解决方案

一、引言 在当今数字化时代&#xff0c;数据库作为存储和管理数据的核心组件&#xff0c;其安全性至关重要。SQL 注入是一种常见且极具威胁性的数据库安全漏洞&#xff0c;它可能导致数据泄露、篡改甚至系统被完全控制。本文将深入探讨 SQL 注入漏洞的产生原因、表现形式以及如…...

Next.js 学习-1

Next.js学习 引用&#xff1a;https://www.nextjs.cn/learn/basics/create-nextjs-app 先试试水吧&#xff0c;正好dify用的这个构建的前端项目。 使用 如果您尚未安装 Node.js&#xff0c;请 从此处安装。要求 Node.js 10.13 或更高版本。 好吧得用新的了&#xff0c;记得…...

[ComfyUI]Recraft贴图开源方案,实现服装印花自由

一、介绍 今天发现了一个简单又好用的插件&#xff0c;可以实现类似Recraft的贴图功能&#xff0c;这是一个作者开发的ComfyUI插件&#xff0c;叫做Comfyui-Transform 这个插件比我们简单的图像覆盖多了一些可控参数&#xff0c;形状、透明度、倾斜、拉升和混合模式等诸多可控…...

JavaScript 数组连接方法

在 JavaScript 中&#xff0c;有多种方法可以连接数组。每种方法都有其自身的优点和缺点。常见的方法包括 concat()、扩展运算符(...)、push()、splice()、slice()、join()、forEach()、reduce() 以及 Array.from() 等。下面是这些方法的详细说明和示例代码。 1. concat() co…...

Windows安装MySQL教程

1.下载 下载地址&#xff1a;https://www.mysql.com/downloads/ 下载版本&#xff1a;MySQL Installer for Window 2.安装MySQL 以下只列出需要注意的一些界面&#xff0c;没出现的界面默认继续即可。 1.选择安装类型 提供了多种安装模式&#xff0c;包括默认开发版、仅…...

VOS3000线路对接、路由配置与路由分析操作教程

一、VOS3000简介 VOS3000是一款常用的VoIP运营平台&#xff0c;支持多种线路对接和路由配置&#xff0c;适合新手快速上手。本教程将带你了解如何对接线路、配置路由以及进行路由分析。 二、线路对接 准备工作 获取线路信息&#xff1a;从供应商处获取线路的IP地址、端口、用…...

PiscTrace的开发者版

基于 PiscTrace 架构的视图处理的纯开发板&#xff0c;支持静态图片、实时视频流、摄像头视频流和网络视频流的处理。与 PiscTrace 应用版相比&#xff0c;开发者版通过直接的代码开发&#xff0c;提供了更高的灵活性和可定制性&#xff0c;适用于需要深度定制和复杂处理的应用…...

OnlyOffice:前端编辑器与后端API实现高效办公

OnlyOffice&#xff1a;前端编辑器与后端API实现高效办公 一、OnlyOffice概述二、前端编辑器&#xff1a;高效、灵活且易用1. 完善的编辑功能2. 实时协作支持3. 自动保存与版本管理4. 高度自定义的界面 三、后端API&#xff1a;管理文档、用户与权限1. 轻松集成与定制2. 实时协…...

github 怎么创建一个私有repository 并从另外一台电脑拉取下来更新

1.github上新建一个repository 设置为private tips删除在这 点setting 然后往下拖动 会有个这里是用来删项目的 2.另外 一台电脑拉取这个repository的时候 需要配置 一个ssh key 这个key的内容生成参考本地电脑的生成 然后在这配置 2.1 生成 SSH 密钥&#xff08;如果还没有…...

本周行情——250222

本周A股行情展望与策略 结合近期盘面特征及市场主线演化&#xff0c;本周A股预计延续结构性分化行情&#xff0c;科技成长与政策催化板块仍是资金主战场&#xff0c;但需警惕高标股分歧带来的波动。以下是具体分析与策略建议&#xff1a; 1. 行情核心驱动因素 主线延续性&…...

分发糖果(力扣135)

题目说相邻的两个孩子中评分更高的孩子获得的糖果更多&#xff0c;表示我们既要考虑到跟左边的孩子比较&#xff0c;也要考虑右边的孩子&#xff0c;但是我们如果两边一起考虑一定会顾此失彼。这里就引入一个思想&#xff1a;先满足右边大于左边时的糖果分发情况&#xff0c;再…...

QML ToolButton与DelayButton的使用、详解与自定义样式

QML MenuBarItem与MenuItem的使用、详解与自定义样式 一、介绍1、ToolButton常见用法基础示例设置图标 常用属性texticonenabledshortcutcheckable & checked 信号onClickedonPressed 和 onReleased 样式和外观使用场景 2、DelayButton使用场景核心属性1. delay 核心信号1.…...

动态规划

简介 动态规划最核心两步&#xff1a; 状态表示&#xff1a;dp[i]代表什么状态转移方程&#xff1a;如何利用已有的dp求解dp[i] 只要这两步搞对了&#xff0c; 就完成了动态规划的%95 剩下的就是细节问题&#xff1a; dp初始化顺序&#xff08;有时是倒序&#xff09;处理边…...

SQL FIRST() 函数详解

SQL FIRST() 函数详解 在SQL中&#xff0c;FIRST() 函数是一个用于处理查询结果的聚合函数。它通常与 GROUP BY 子句结合使用&#xff0c;用于返回每个分组中的第一个记录。本文将详细解释 FIRST() 函数的用法、参数、返回值以及与它的关联函数。 1. 函数概述 FIRST() 函数的…...

ClickHouse系列之ClickHouse安装

ClickHouse系列之ClickHouse安装 1 ClickHouse2 Docker安装ClickHouse2.1 docker 启动脚本2.2 默认用户及密码2.3 8123和9000端口的作用2.3.1 81232.3.2 9000 3 Clickhouse连接3.1 命令行客户端连接3.1.1 常见的客户端脚本3.1.1.1 查看数据库&#xff1a;show databases;3.1.1.…...

大模型监督微调(SFT)技术解析

大模型监督微调&#xff08;SFT&#xff09;技术深度解析 一、基本知识介绍 监督微调&#xff08;Supervised Fine-Tuning&#xff09;是连接预训练与具体应用的关键技术层。其本质是通过特定任务的标注数据&#xff0c;在保持预训练模型核心能力的前提下&#xff0c;调整模型…...

PTA: 有序顺序表的合并

请设计一个能够将有序顺序表LA&#xff0c;LB进行合并的算法&#xff0c;要求合并后的顺序表LC依然有序。 例如&#xff1a; LA的元素 1 3 5 7 LB的元素 2 4 LC的元素 1 2 3 4 5 7 其中&#xff0c;LA和LB的长度不超过1000&#xff0c;当中的元素为非递减排序。 输入格式: 第…...

Vuetify解决与旧版浏览器(如Internet Explorer 11)的兼容性问题‌

简介 由于Vuetify使用了ES2015/2017的特性&#xff0c;这些特性在旧版浏览器中可能不被支持&#xff0c;因此需要通过配置来确保这些特性能够被正确转换。 配置1 在项目项目根目录下的vue.config.js文件&#xff0c;或nuxt.config.ts中&#xff0c;添加 transpileDependencies …...

android,flutter 混合开发,pigeon通信,传参

文章目录 app效果native和flutter通信的基础知识1. 编解码器 一致性和完整性&#xff0c;安全性&#xff0c;性能优化2. android代码3. dart代码 1. 创建flutter_module2.修改 Android 项目的 settings.gradle&#xff0c;添加 Flutter module3. 在 Android app 的 build.gradl…...

Shell文档归档、压缩与解压

Shell文档归档、压缩与解压 1、文件归档与压缩2、zip、gzip与tar指令2.1、zip指令2.2、gzip指令2.3、tar指令 1、文件归档与压缩 归档文件是指将一组文件或目录保存到一个文件中&#xff1b;压缩文件是指将一组文件或目录按照某种存储格式保存到一个文件中&#xff0c;所占磁盘…...

【Bluedroid】AVRCP 连接源码分析(一)

一、AVRCP协议简介 AVRCP(Audio/Video Remote Control Profile)是蓝牙协议栈中的一个重要部分,它定义了蓝牙设备之间的音视频传输控制的流程和特点。AVRCP使得用户可以通过一个蓝牙设备(如手机)远程控制另一个蓝牙设备(如蓝牙耳机或音箱)上的音视频播放,如播放、暂停、…...

CMake入门

1.什么是CMake Makefile想必大家都不陌生吧&#xff0c;它能够解决我们的自动化编译问题&#xff0c;大多是IDE软件都集成了make&#xff0c;譬如 Visual C的 nmake、linux 下的 GNU make、Qt 的 qmake 等等。 不同的IDE所集成的make工具所遵循的规范和标准都不同&#xff0c;也…...

基于vite6创建项目

pnpm create vue vite已自动配置路径&#xff0c;在.config.js jsconfig.json 中 按需引用element-plus 官网中有 pnpm install element-plus npm install -D unplugin-vue-components unplugin-auto-import // vite.config.ts import { defineConfig } from vite import Aut…...

简单封装一个websocket构造函数

问题描述 最近维护一个老项目&#xff0c;发现项目中有大量重复代码&#xff0c;特别是websocket的调用这一块&#xff0c;同样的代码复制了十几个页面&#xff0c;于是自己封装了一个websocket调用的构造函数。 export default class CreateWebSocket {constructor(url) {//…...

大模型产品Deepseek(八)、数据嵌入+知识库管理+联网搜索,实现精准的知识查询

如何将数据嵌入到DeepSeek中以实现精准的知识查询 1. 目标 DeepSeek是一个强大的基于大模型的知识查询工具,能够通过数据嵌入和智能查询功能提供精确的答案。本文将详细介绍如何在DeepSeek中进行数据嵌入,以便最大化其在实际应用中的价值。 2. 推荐使用的Page Assist插件 …...

探索Vue:数字翻滚动画的实现与优化

在前端开发中&#xff0c;动画效果总能为用户界面增添一抹生动与趣味。今天&#xff0c;我们将深入剖析一个基于Vue 3实现的数字翻滚动画组件&#xff0c;从代码结构到功能实现&#xff0c;再到性能优化&#xff0c;一步步揭开它的神秘面纱。 组件概述 这个Vue组件名为Number…...

POI pptx转图片

前言 ppt页面预览一直是个问题&#xff0c;office本身虽然有预览功能但是收费&#xff0c;一些开源的项目的预览又不太好用&#xff0c;例如开源的&#xff1a;kkfileview pptx转图片 1. 引入pom依赖 我这个项目比较老&#xff0c;使用版本较旧 <dependency><gro…...

力扣LeetCode: 2506 统计相似字符串对的数目

题目&#xff1a; 给你一个下标从 0 开始的字符串数组 words 。 如果两个字符串由相同的字符组成&#xff0c;则认为这两个字符串 相似 。 例如&#xff0c;"abca" 和 "cba" 相似&#xff0c;因为它们都由字符 a、b、c 组成。然而&#xff0c;"aba…...

DeepSeek模型量化

技术背景 大语言模型&#xff08;Large Language Model&#xff0c;LLM&#xff09;&#xff0c;可以通过量化&#xff08;Quantization&#xff09;操作来节约内存/显存的使用&#xff0c;并且降低了通讯开销&#xff0c;进而达到加速模型推理的效果。常见的就是把Float16的浮…...

如何调整CAN位宽容忍度?

CAN位宽容忍度是指在控制器局域网络&#xff08;CAN, Controller Area Network&#xff09;中允许时钟同步的误差范围。这是CAN网络正常通信时的关键因素之一&#xff0c;因为CAN协议依赖位同步来确保多个节点在总线上正确解码数据。CAN位宽容忍度确保节点之间由于时钟偏差或抖…...

Versal - 基础6(Linux 开发 AIE-ML + 自动化脚本解析)

目录 1. 简介 2. 步骤解析 2.1 概览 2.1.1 步骤依赖关系 2.1.2 总目录结构 2.2 Vitis XPFM 2.2.1 Dir 2.2.2 Makefile 2.2.3 vitis_pfm.py 2.3 Kernels 2.3.1 Dir 2.3.2 Makefile 2.3.3 config 文件 2.4 AIE_app 2.4.1 Dir 2.4.2 Makefile 2.4.3 aie 要点 2.…...

乐享数科:供应链金融—三个不同阶段的融资模式

供应链金融是与产业链紧密结合的融资模式&#xff0c;它主要体现在订单采购、存货保管、销售回款这三个不同的业务阶段&#xff0c;并针对这些阶段提供了相应的金融服务。以下是这三个阶段中主要的融资模式及其特点&#xff1a; 供应链金融融资模式主要分为以下几种&#xff1…...

vmware虚拟机Ubuntu Desktop系统怎么和我的电脑相互复制文件、内容

1、先安装vmware workstation 17 player&#xff0c;然后再安装Ubuntu Desktop虚拟机&#xff0c;然后再安装vmware tools&#xff0c;具体可以参考如下视频&#xff1a; VMware虚拟机与主机实现文件共享&#xff0c;其实一点也不难_哔哩哔哩_bilibili 2、本人亲自试过了&…...

【React】React 基础(2)

JSX 是什么 JSX是一种 JavaScript 的语法扩展(extension), 也在很多地方称之为 JavaScript XML, 因为看起就是一段XML语法。它用于描述我们的Ul界面&#xff0c;并且其完成可以和 JavaScript 融合在一起使用&#xff1b; 为什么 React 选择使用 jsx&#xff1f; React 认为渲…...

DeepSeek接入Siri(已升级支持苹果手表)完整版硅基流动DeepSeek-R1部署

DeepSeek接入Siri&#xff08;已升级支持苹果手表&#xff09;完整版硅基流动DeepSeek-R1部署 **DeepSeek** 是一款专注于深度学习和人工智能的工具或平台&#xff0c;通常与人工智能、机器学习、自动化分析等领域有关。它的主要功能可能包括&#xff1a;深度学习模型搜索&…...