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

SQL 语句说明

目录

  • 数据库和数据表
  • 什么是 SQL 语言
  • 数据操作语言(DML)
    • 1、SELECT 单表查询
      • 通过 WHERE 对原始数据进行筛选
      • 通过 聚合函数 获取汇总信息
      • 通过 ORDER BY 对结果排序
      • 通过 GROUP BY 对数据进行分组
      • 通过 HAVING 对分组结果进行筛选
    • 2、SELECT 多表查询
    • 3、INSERT 插入数据
    • 4、UPDATE 更新数据
    • 5、DELETE 删除数据
  • 数据定义语言(DDL)
    • 1、CREAT TABLE
    • 2、ALTER TABLE
    • 3、DROP TABLE
  • 事务控制语言(TCL)

数据库和数据表

数据库是通过某种方式来组织和存储数据的集合,数据库中的数据存放时以表问单位,表就是一个结构化的文件,关系型数据库中,表由字段(列)和记录(行)组成。

  • 表名:表名用于唯一标识某个数据库中的一张表,一般通过 完全限定名 这种方式标识。例如:MySQL中唯一标识一张表 “DBNAME.TBNAME
  • 字段:一个数据表由一个或多个字段组成,每个字段由字段名、数据类型和字段属性组成。数据类型限制了该字段可以存储的数据。
  • 记录:记录就是表中的一条数据。

表中常见的数据类型

  • 数值类:用于存储各种整数、小数
  • 字符类:用于存储文本字符串,通常使用引号包裹
  • 时间类:用于存储日期和时间数据
  • 布尔类:用于表示真假值,通常为 TRUE 或 FALSE
  • 二进制类:用于存储图片、音频等二进制数据

表中常见的字段属性

  • PRIMARY KEY(主键):唯一标识每一行记录,不能为空、不能重复。每张表只能设置一个主键。
  • FOREIGN KEY(外键):用于建立与其他表的关系,外键的值必须来自另一张表的主键或唯一键。
  • UNIQUE(唯一约束):要求该字段的值在表中不能重复,但可以为 NULL。
  • AUTO_INCREMENT(自增):数值字段自动增长(MySQL 专有),常用于主键。
  • DEFAULT(默认值):如果插入数据时没有指定该字段的值,就使用默认值。
  • INDEX(索引):提高查询效率,对字段建立索引。

什么是 SQL 语言

SQL (Structured Query Language)结构化查询语言是由 ISO(国际标准化组织) 和 ANSI(美国国家标准协会) 共同定义的标准化数据库查询语言,通过SQL可以和数据库进行交互的语言

SQL 语言的特点

  • 关键字不区分大小写:例如SELECTselect 效果一样
  • 语句以分号结束:一条完整的 SQL 语句通常以 ; 结尾
  • 支持单双引号:具体的作用在不通的DBMS中不通,MySQL中默认单双引号都是表示字符常量。
  • 支持不同的注释方式:单行注释(两个减号+空格),多行注释(/* 注释内容 */

SQL 语言的分类

正因为 SQL 是一种标准,所以基本上所有的DBMS都支持SQL的标准格式,但是不通的DBMS会根据自身情况进行扩展,从而更方便对数据库的管理,这种扩展后的SQL仅该厂家支持,不通用。

标准 SQL

类型全称中文名作用常见语句
DDLData Definition Language数据定义语言用于定义和修改数据库的结构CREATEALTERDROPTRUNCATE
DMLData Manipulation Language数据操作语言用于对表中的记录进行增、删、改、查等操作SELECTINSERTUPDATEDELETE
DCLData Control Language数据控制语言用于实现对数据库访问权限的控制GRANTREVOKE
TCLTransaction Control Language事务控制语言用于管理事务的执行过程BEGINCOMMITROLLBACKSAVEPOINT

扩展 SQL

  • 不同数据库系统有各自的“SQL 方言”,语法细节和特性可能不同。例如:MySQL中就提供了一个名为AUTO_INCREMENT`(自增)的属性来用于实现对主键的自增。

数据操作语言(DML)

1、SELECT 单表查询

如果需要从数据库中查询指定的数据(记录)信息,需要使用 DML 中的人 SELECT 语句进行操作。在标准的SQL语句中,关键字是不区分大小写的。

SELECT 语法格式:

SELECT 字段列表FROM 数据表名[WHERE 条件][GROUP BY 分组字段][HAVING 分组后筛选条件][ORDER BY 排序字段 [ASC|DESC]][LIMIT 限制数量]  --(MySQL 专属)

字段列表:指定输出满足查询条件的数据时,数据那些列,多个列名之间必须以逗号分隔

指定显示的字段

字段列表控制需要将符合条件数据的哪些字段进行输出,如果指定了多个字段,多个列名之间必须以逗号分隔,如果需要输出所有字段信息,使用 * 表示。

例如:

select user,host from mysql.user

通过 WHERE 对原始数据进行筛选

语法格式

WHERE 条件表达式;

通过 WHERE 关键字就可以指定检索数据时的查询条件,WHERE 支持以下操作符:

比较操作符

  • 比较规则:是根据 数据库字符集规则 进行比较。例如:MySQL使用 utf8mb4_general_ci 字符集时,无论是中文、英文、标点符号,都是根据Unicode 编码值进行比较,处理英文字母时会将大小写视为相同的字符来处理。
比较操作符含义示例
=等于WHERE age = 18
<> 或 !=不等于WHERE age <> 18WHERE age != 18
>大于WHERE score > 60
<小于WHERE price < 100
>=大于或等于WHERE age >= 18
<=小于或等于WHERE age <= 60

逻辑操作符

操作符含义示例
ANDWHERE age > 18 AND gender = 'male'
ORWHERE city = '成都' OR city = '北京'
NOTWHERE NOT (status = 'inactive')

范围操作符

操作符含义示例
BETWEEN在范围内WHERE age BETWEEN 18 AND 30
NOT BETWEEN不在范围内WHERE salary NOT BETWEEN 5000 AND 10000

集合操作符

操作符含义示例
IN在集合中WHERE id IN (1, 2, 3)
NOT IN不在集合中WHERE department NOT IN ('HR', 'Admin')

通配符匹配操作符

操作符含义示例
LIKE模糊匹配WHERE name LIKE '张%' (以“张”开头)
NOT LIKE非匹配WHERE name NOT LIKE '%测试%'
_匹配一个任意字符LIKE '张_' 匹配“张三”、“张五”
%匹配任意多个字符LIKE '%工程师' 匹配“运维工程师”、“软件工程师”等

空值判断操作符

操作符含义示例
IS NULL是空值WHERE last_login IS NULL
IS NOT NULL非空值WHERE phone IS NOT NULL

通过 聚合函数 获取汇总信息

聚合函数作用:是SQL中专门用于对一组数据进行汇总、计算的函数,使用的时候一般配合GROUP BY 使用,用来统计、求和、取平均、查最大最小值等。

聚合函数位置:在 SELECT 字段列表中。用来作为查询结果的一部分显示出来

常见聚合函数

聚合函数名作用说明示例
COUNT()计数,返回某列中值的个数COUNT(*) 是行数,COUNT(age) 是非空 age 数量
SUM()求和,返回某列所有值的总和SUM(salary):求工资总和
AVG()平均值,返回某列所有值的平均数AVG(score):求平均分
MAX()最大值,返回某列中的最大值MAX(age):找出年龄最大的人
MIN()最小值,返回某列中的最小值MIN(score):找出最低分

例如:通过某个数据表中一共有多少行

SELECT count(*) FROM position_ehcommon.tb_track_history 

通过 ORDER BY 对结果排序

说明同时使用 ORDER BY 和 WHERE 时,应该让 ORDER BY 位于WHERE 之后,否则会报错。

语法格式

ORDER BY 需要参与排序的字段  ASC|DESC
  1. 参与排序的字段,可以指定一个或多个,多个字段之间使用逗号分隔
  2. 每个字段后面都可以单独指定是升序还是降序

排序规则

排序规则由数据库的 字符排序集 决定。例如:MySQL使用的字符排序集是utf8mb4_general_ci时,进行排序的时候是根据字符的Unicode编码值比较大小,且字母比较时认为大小写字母一样。

排序方式:

排序方式关键字含义
升序ASC从小到大(默认方式)
降序DESC从大到小

通过 GROUP BY 对数据进行分组

通过SQL 中的 GROUP BY 可以对查询到的数据进行分组,一般都是和 聚合函数 进行结合使用。因为GROUP BY 是“按某个字段分组”,每组只保留一行结果;这一行通常需要展示这个组的汇总信息,汇总信息需要通过聚合函数来计算。

GROUP BY 语法格式

GROUP BY 分组字段;	

例如:统计每个部门的人数

SELECT department, COUNT(*) AS 部门人数FROM employeesGROUP BY department;

通过 HAVING 对分组结果进行筛选

HAVING 使用场景:是 SQL 中专门用于筛选分组后的结果的子句,所以一般是和GROUP BY 一起使用的。

HAVING 语法格式

HAVING 聚合条件;

和 WHERE 的区别:

说明:对聚合函数的结果(如 COUNT()、AVG()、SUM())进行筛选,必须使用 HAVING,不能使用 WHERE。

子句用于筛选什么?能否用聚合函数?
WHERE筛选原始记录(单条记录),在数据分组之前使用不能用聚合函数,即
HAVING筛选分组后的汇总结果,在数据分组之后使用可以用聚合函数

例如:对平均工资进行筛选

-- 正确格式
SELECT department, AVG(salary) AS 平均工资FROM employeesGROUP BY departmentHAVING AVG(salary) > 8000;-- 错误情况
SELECT department, AVG(salary)
FROM employees
WHERE AVG(salary) > 8000    -- 报错!
GROUP BY department;

2、SELECT 多表查询

SQL 的 JOIN 功能

当需要查询的数据信息分散存储在多张表里面时,如果需要一次性查到需要的数据。就需要使用SQL提供的JOIN功能。JOIN就是通过某张关系让两个或多个表拼接起来返回一个结果集,然后在这个结果集中筛选所需的数据。

表之间的桥梁

  • 外键和主键之间的关系;
  • 两个表中“意义相同”的字段

JOIN 的类型

类型关键字说明
内连接INNER JOIN两张表中同时满足 连接条件 才返回
左连接LEFT JOIN左表满足 连接条件 的行都返回,如果右表中没匹配到,就填 NULL
右连接RIGHT JOIN右表满足 连接条件 的行都返回,如果左表中没匹配,就填 NULL

JION 语法格式

SELECT 字段列表  FROM1 -- 查询时字段一般写 完全限定格式(如 表名.字段名)INNER|LEFT|RIGHT JOIN2  ON 连接条件

例如:


3、INSERT 插入数据

通过 DML 中的 INSERT 可以实现在某张表中插入一条或多条数据。

语法格式

-- 指定字段名的插入
INSERT INTO 表名 (字段1, 字段2, ...)VALUES (1,2, ...);
-- 不指定字段名的插入
INSERT INTO 表名VALUES (1,2, ...);
  • 指定字段名插入数据时:会将数据一一对应插入到对应字段,指定的字段会被赋值,没被指定的字段如果定义了 DEFAULT 默认值,就使用默认值,如果字段允许为 NULL,则自动填充为 NULL,否则就报错。
  • 不指定字段插入数据时:数据会按顺序插入到表结构定义中从上到下的字段(不推荐)

4、UPDATE 更新数据

通过DML中的 UPDATE 可以实现更改某站表中的制定数据。

语法格式

UPDATE 表名 -- 指定要修改哪张表的数据;SET 字段1 = 值1, 字段2 = 值2, ... -- 列出要修改的字段和值;WHERE 条件; -- 限制修改范围

注意:使用 UPDATE 时一定要使用 WHERE 来限定范围!否则会将当前表中所有记录的字段都更改了。而且涉及数据修改前,先备份。

例如

UPDATE tb_device_infoSET face_terminate_id_out=''  -- 该表所有记录的face_terminate_id_out字段都会为空

5、DELETE 删除数据

通过 DML 中的 DELETE 可以删除某张数据表中的制定数据。

语法格式

DELETE FROM 表名WHERE 条件;

注意:如果不加 WHERE会删除整张表中的所有数据!,操作前先备份表数据,防止意外。

DELETE 和 TRUNCATE 删除所有区别

  • DELETE:仅仅是将指定表当前的数据全部清空,如果设置了主键自增,也不会被重置为从0重新开始,文件系统空间占用不会释放。
  • TRUNCATE :是在文件系统中将整张表删除了然后重建表结构,所以主键自增也会重置从0开始。会释放文件系统空间占用。

数据定义语言(DDL)

1、CREAT TABLE

语法格式

CREATE TABLE 表名(字段1 数据类型 属性,字段2 数据类型 属性,字段3 数据类型 属性,);

只复制某张表的表结构

说明:这种方式会将表的完整结构信息,包括属性信息这些一起复制过来。

CREATE TABLE 表名 LIKE 原表名;	

复制某张表的数据和基本结构

说明:这种方式不会复制原表的索引、主键、外键、默认值、约束等结构信息,就只复制了表的数据和结构

CREATE TABLE 新表名 ASSELECT * FROM 原表名;

复制某张表的完整结构和数据

-- 第一步:复制结构(包含字段类型、默认值、主键、索引等)
CREATE TABLE 新表名 LIKE 原表名;-- 第一步:复制结构(包含字段类型、默认值、主键、索引等)
CREATE TABLE 新表名 LIKE 原表名;

2、ALTER TABLE

ALTER TABLE 用于对已有的表进行结构性修改。

新增字段语法格式

ALTER TABLE 表名 ADD 字段名 数据类型 属性;

删除字段语法格式

ALTER TABLE 表名 DROP 字段名;

修改字段语法格式

  • MODIFY :只能修改字段的类型,属性。并且一定要写全字段的所有属性,因为会以前的都会被覆盖掉
  • CHANGE:用于修改字段的名称,但是需要指定原名才行。
功能语法格式
修改字段类型ALTER TABLE 表名 MODIFY 字段名 新数据类型 新属性;
修改字段名ALTER TABLE 表名 CHANGE 原名 新名 类型;
添加主键ALTER TABLE 表名 ADD PRIMARY KEY (字段名);
删除主键ALTER TABLE 表名 DROP PRIMARY KEY;
添加唯一索引ALTER TABLE 表名 ADD UNIQUE (字段名);
添加普通索引ALTER TABLE 表名 ADD INDEX (字段名);
修改表名ALTER TABLE 原表名 RENAME TO 新表名;

3、DROP TABLE

DROP TABLE 用于删除某张表。

语法格式

DROP TABLE TB_NAME

说明:如果是重要数据,删除表之前要备份,否则悔之晚矣。

事务控制语言(TCL)

TCL 是事务控制语言(Transaction Control Language),用于实现对数据库事务的控制。

说明:事务只会对DML操作生效,如果是DDL这种对数据库结构进行修改的,不支持事务。

TCL 中的事务控制语句

语句含义
START TRANSACTIONBEGIN开始事务,后续所执行的DML语句都属于该事务中的一个语句。
COMMIT提交事务。只有所有的语句都执行成功才会成功,失败后需要手动执行ROLLBACK才会回滚。
ROLLBACK事务的最终确认动作,一旦 COMMIT 成功,就不能回滚了,只有事务失败的时候才能回滚。
SET autocommit = 0/1设置是否自动提交事务(MySQL 默认是自动提交)

例如:MySQL中的事务使用

-- 关闭自动提交(MySQL 默认自动提交,每条语句自动生效)
SET autocommit = 0;-- 开始事务
START TRANSACTION;-- 第一步:A 扣钱
UPDATE accounts SET balance = balance - 100 WHERE name = 'A';-- 第二步:B 加钱
UPDATE accounts SET balance = balance + 100 WHERE name = 'B';-- 提交事务(两步都成功才执行)
COMMIT;-- 如果 所有语句都执行成功,COMMIT 才会生效,生效后没法进行回滚
-- 如果 存在某些语句执行失败,COMMIT 时会提示失败,需要手动执行ROLLBACK才会自动回滚。

相关文章:

SQL 语句说明

目录 数据库和数据表什么是 SQL 语言数据操作语言&#xff08;DML&#xff09;1、SELECT 单表查询通过 WHERE 对原始数据进行筛选通过 聚合函数 获取汇总信息通过 ORDER BY 对结果排序通过 GROUP BY 对数据进行分组通过 HAVING 对分组结果进行筛选 2、SELECT 多表查询3、INSERT…...

PostgreSQL内幕探索—基础知识

PostgreSQL内幕探索—基础知识 PostgreSQL&#xff08;以下简称PG&#xff09; 起源于 1986 年加州大学伯克利分校的 ‌POSTGRES 项目‌&#xff0c;最初以对象关系模型为核心&#xff0c;支持高级数据类型和复杂查询功能‌。 1996 年更名为 PostgreSQL 并开源&#xff0c;逐…...

Springboot项目正常启动,访问资源却出现404错误如何解决?

我在自己的springboot项目中的启动类上同时使用了SprinBootApplication和ComponentScan注解, 虽然项目能够正常启动,但是访问资源后,返回404错误,随后在启动类中输出bean,发现controller创建失败: 而后我将ComponentScan去掉后资源就能访问到了. 原因 SprinBootApplication本身…...

MaxPooling层的作用(通俗解释)

MaxPooling层的作用&#xff08;通俗解释&#xff09; MaxPooling层是卷积神经网络中非常重要的组成部分&#xff0c;它的主要作用可以用以下几个简单的比喻来理解&#xff1a; 1. 信息压缩器&#xff08;降维作用&#xff09; 就像把一张高清照片缩小尺寸一样&#xff0c;M…...

0.DockerCE起步之Linux相关【完善中】

ubuntu用户组&权限&文件/目录 服务启停操作 sudo systemctl start docker # 启动服务3,4 sudo systemctl stop docker # 停止服务 sudo systemctl restart docker ps top 以下内容参考 Vim编辑器 Linux系统常用命令 管理Linux实例软件源 Cron定时任务 在Linux系统上…...

树莓派Pico C/C++ OpenOCD调试环境搭建(Windows)

树莓派Pico C/C OpenOCD调试环境搭建(Windows) 参考资料和背景 从上次树莓派Pico C/C 开发环境搭建(一键完成版)后&#xff0c;一直想找个合适调试器&#xff0c;最后测试了多种方案&#xff0c;还是使用另一块树莓派pico作为picoprobe 来调试比较方便&#xff0c;其中参考的…...

【图像生成之21】融合了Transformer与Diffusion,Meta新作Transfusion实现图像与语言大一统

论文&#xff1a;Transfusion: Predict the Next Token and Diffuse Images with One Multi-Modal Model 地址&#xff1a;https://arxiv.org/abs/2408.11039 类型&#xff1a;理解与生成 Transfusion模型‌是一种将Transformer和Diffusion模型融合的多模态模型&#xff0c;旨…...

《人件》第二章 办公环境

二、办公环境 电话铃不停的响&#xff0c;打印机维修人员顺道过来聊聊天&#xff0c;复印机不工作了&#xff0c;人事部不停催促更新的能力调查表&#xff0c;下午3点之前就要提交时间表…然后一天就这样过去了。 2.1 家具警察 人们怎么使用空间、需要的桌子空间多大、花多少小…...

哈希表系列一>存在重复元素II 存在重复元素I

目录 题目&#xff1a;解析&#xff1a;存在重复元素 II-->代码&#xff1a;存在重复元素-->代码&#xff1a; 题目&#xff1a; 链接: link 链接: link 解析&#xff1a; 存在重复元素 II–>代码&#xff1a; class Solution {public boolean containsNearbyDuplic…...

文献总结:AAAI2025-UniV2X-End-to-end autonomous driving through V2X cooperation

UniV2X 一、文章基本信息二、文章背景三、UniV2X框架1. 车路协同自动驾驶问题定义2. 稀疏-密集混合形态数据3. 交叉视图数据融合&#xff08;智能体融合&#xff09;4. 交叉视图数据融合&#xff08;车道融合&#xff09;5. 交叉视图数据融合&#xff08;占用融合&#xff09;6…...

LeetCode --- 444 周赛

题目列表 3507. 移除最小数对使数组有序 I 3508. 设计路由器 3509. 最大化交错和为 K 的子序列乘积 3510. 移除最小数对使数组有序 II 一、移除最小数对使数组有序 I & II 由于数组是给定的&#xff0c;所以本题的操作步骤是固定的&#xff0c;我们只要能快速模拟操作的过…...

单片机Day05---静态数码管

目录 一、原理图&#xff1a;​编辑 二、思路梳理&#xff1a; 三&#xff1a;一些说明&#xff1a; 1.点亮方式&#xff1a; 2.数组&#xff1a; 3.数字与段码对应&#xff1a; 四&#xff1a;程序实现&#xff1a; 一、原理图&#xff1a; 二、思路梳理&#xff1a; …...

kernel32!GetQueuedCompletionStatus函数分析之返回值得有效性

第一部分&#xff1a;//#define STATUS_SUCCESS 0x0返回值为0 } else { // // Set the completion status, capture the completion // information, deallocate the associated IRP, and // attempt to write the…...

gazebo 启动卡死的解决方法汇总

1. 排查显卡驱动是否正常安装 nvidia-smi # 英伟达显卡--------------------------------------------------------------------------------------- | NVIDIA-SMI 535.230.02 Driver Version: 535.230.02 CUDA Version: 12.2 | |------------------------…...

硬件设计-MOS管快速关断的原因和原理

目录 简介&#xff1a; 来源&#xff1a; MOS管快关的原理 先简单介绍下快关的原理&#xff1a; 同电阻时为什么关断时间会更长 小结 简介&#xff1a; 本章主要介绍MOS快速关断的原理和原因。 来源&#xff1a; 有人会问&#xff0c;会什么要求快速关断&#xff0c;而…...

塔能科技解节能密码,工厂成本“效益方程式”精准破题

在全球积极推进可持续发展战略的当下&#xff0c;各行业都在努力探索节能减排、绿色发展的新路径&#xff0c;对于工厂而言&#xff0c;节能早已不是锦上添花的选择&#xff0c;而已成为关乎企业生死存亡与长远发展的核心要素&#xff0c;是实现可持续运营的必由之路。塔能科技…...

swift ui基础

一个朴实无华的目录 今日学习内容&#xff1a;1.三种布局&#xff08;可以相互包裹&#xff09;1.1 vstack&#xff08;竖直&#xff09;&#xff1a;先写的在上面1.1 hstack&#xff08;水平&#xff09;&#xff1a;先写的在左边1.1 zstack&#xff08;前后&#xff09;&…...

格式工厂 v5.18最新免安装绿色便携版

前言 用它来转视频的时候&#xff0c;还能顺便给那些有点小瑕疵的视频修修补补&#xff0c;保证转出来的视频质量杠杠的。更厉害的是&#xff0c;它不只是转换那么简单&#xff0c;还能帮你把PDF合并成一本小册子&#xff0c;视频也能合并成大片&#xff0c;还能随心所欲地裁剪…...

CSPM认证对项目论证的范式革新:从合规审查到价值创造的战略跃迁

引言 在数字化转型浪潮中&#xff0c;全球企业每年因项目论证缺陷导致的损失高达1.7万亿美元&#xff08;Gartner 2023&#xff09;。CSPM&#xff08;Certified Strategic Project Manager&#xff09;认证体系通过结构化方法论&#xff0c;将传统的项目可行性评估升级为战略…...

TcxCustomCheckComboBoxProperties.EditValueFormat 值说明

TcxCheckStatesValueFormat 类枚举复选框状态对 edit 值的可能解释。以下选项可用。 价值 意义 cvf字幕 编辑值是一个字符串&#xff0c;其中包含两个由分号分隔的子字符串。分号前的子字符串包含灰显项目的标题列表。分号后面的子字符串包含已选中项目的标题列表。请注意&a…...

Spring Boot 测试详解,包含maven引入依赖、测试业务层类、REST风格测试和Mock测试

Spring Boot 测试详解 1. 测试依赖引入 Spring Boot 默认通过以下 Maven 依赖引入测试工具&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</s…...

【C语言】预处理(下)(C语言完结篇)

一、#和## 1、#运算符 这里的#是一个运算符&#xff0c;整个运算符会将宏的参数转换为字符串字面量&#xff0c;它仅可以出现在带参数的宏的替换列表中&#xff0c;我们可以将其理解为字符串化。 我们先看下面的一段代码&#xff1a; 第二个printf中是由两个字符串组成的&am…...

IIC通信协议

一、概述 IIC协议&#xff1a;是一种各种电子设备之间进行数据交换和通信的串行&#xff0c;半双工通信协议&#xff0c;主要用于近距离&#xff0c;低速的芯片之间的通信。 I2C协议采用双线结构传输数据&#xff0c;由一个数据线&#…...

SpringBoot原生实现分布式MapReduce计算(无第三方中间件版)

一、架构设计调整 核心组件替换方案&#xff1a; 注册中心 → 数据库注册表任务队列 → 数据库任务表分布式锁 → 数据库行级锁节点通信 → HTTP REST接口 二、数据库表结构设计 -- 节点注册表 CREATE TABLE compute_nodes (node_id VARCHAR(36) PRIMARY KEY,last_heartbea…...

02-libVLC的视频播放器:播放音视频文件以及网络流

libvlc_new(0, nullptr)功能:创建并初始化libVLC的核心实例,是使用所有libVLC功能的前提。 参数:第一个参数:参数数量(通常设为0)第二个参数:参数列表(通常为nullptr,表示使用默认配置)返回值:成功返回libvlc_instance_t*指针,失败返回nullptr。注意事项:可通过参…...

Autoware源码总结

Autoware源码网站 项目简介 教程 Autoware的整体架构如下图&#xff0c;主要包括传感器sensing、高精地图map data、车辆接口vehicle interface、感知perception&#xff08;动态障碍物检测detection、跟踪tracking、预测prediction&#xff1b;交通信号灯检测detection、分类c…...

PowerBI 条形图显示数值和百分比

数据表: 三个度量值 销售额 SUM(销量表[销售量])//注意, 因为Y轴显示的产品&#xff0c;会被筛选&#xff0c;所以用ALLSELECTED来获取当前筛选条件下&#xff0c;Y轴显示的产品 百分比 FORMAT(DIVIDE([销售额],CALCULATE([销售额],ALLSELECTED(销量表[产品编码]))),"0…...

Sa-Token 自定义插件 —— SPI 机制讲解(一)

前言 博主在使用 Sa-Token 框架的过程中&#xff0c;越用越感叹框架设计的精妙。于是&#xff0c;最近在学习如何给 Sa-Token 贡献自定义框架。为 Sa-Token 的开源尽一份微不足道的力量。我将分三篇文章从 0 到 1 讲解如何为 Sa-Token 自定义一个插件&#xff0c;这一集将是前沿…...

基于 Termux 在移动端配置 Ubuntu 系统并搭建工作环境

本套方案主要参考了以下内容&#xff0c;并根据自身体验进行了修改。 【教程】用Termux搭建桌面级生产力环境Termux安装完整版Linux(Ubuntu)详细步骤 前言 自己的电脑太重&#xff0c;有时候外出不想带&#xff0c;平板生产力有有限。所以一直在折腾用平板替代电脑的事情。之前…...

JAVA SDK通过proxy对接google: GCS/FCM

前言&#xff1a;因为国内调用google相关api需要通过代理访问(不想设置全局代理)&#xff0c;所以在代理这里经常遇到问题&#xff0c;先说一下结论 GCS 需要设置全局代理或自定义代理选择器&#xff0c; FCM sdk admin 在初始化firebaseApp时是支持设置的。 GCS: 开始时尝试在…...

JAVA EE_多线程-初阶(三)

我对未来没有底气 我也不知道当下该如何做 那就活着&#xff0c;活着就能把日子过下去 ---------陳長生. 1.多线程案例 1.1.单例模式 单例模式是常见的设计模式之一 设计模式&#xff1a;一些编程大佬制定的一些通用代码&#xff0c;再特定的场景下能套用进去&#xff0c;即…...

@PKU秋招互联网产品经理求职分享

从校园到职场 非常荣幸能够在毕业后两年半再次回到燕园。今天&#xff0c;我主要想和大家分享一下我在互联网行业的求职和工作经验。从最初面对职场的迷茫&#xff0c;到现在能够从容应对职场各种挑战&#xff0c;这一路走来积累了不少心得。互联网行业变化迅速&#xff0c;持续…...

uniapp日常总结--uniapp页面跳转方式

uniapp日常总结--uniapp页面跳转方式_uniapp 跳转-CSDN博客...

【能源节约管理系统行业树组件优化总结】

能源节约管理系统行业树组件优化总结 问题背景 在能源节约管理系统中&#xff0c;我们需要一个行业选择组件&#xff0c;以树形结构展示国民经济行业分类数据。由于行业数据量大且层级多&#xff0c;我们采用了懒加载的方式实现。然而&#xff0c;在编辑和详情模式下&#xf…...

青少年编程考试 CCF GESP图形化编程 二级认证真题 2025年3月

图形化编程 二级 2025 年 03 月 一、单选题&#xff08;共 10 题&#xff0c;每题 3 分&#xff0c;共 30 分&#xff09; 1、2025 年春节有两件轰动全球的事件&#xff0c;一个是 DeepSeek 横空出世&#xff0c;另一个是贺岁片《哪吒 2》票房惊人&#xff0c;入了全球票房榜…...

【Hadoop入门】Hadoop生态之Flume简介

1 什么是Flume&#xff1f; Flume是Hadoop生态系统中的一个高可靠、高性能的日志收集、聚合和传输系统。它支持在系统中定制各类数据发送方&#xff08;Source&#xff09;、接收方&#xff08;Sink&#xff09;和数据收集器&#xff08;Channel&#xff09;&#xff0c;从而能…...

十六、Linus网络编程基础

1、Linux 网络的历史发展 ​早期阶段&#xff08;1991–1995&#xff09;​ ​1991年&#xff1a;Linus Torvalds 发布 Linux 内核的初始版本&#xff08;0.01&#xff09;&#xff0c;此时内核不支持网络功能&#xff0c;仅是一个单机操作系统。​1992年&#xff1a;受 BSD …...

【激活函数:神经网络的“调味料】

1. 激活函数&#xff1a;神经网络的“调味料” 想象你在做菜&#xff1a; 没有激活函数&#xff1a;就像只用水煮食材&#xff0c;味道单调&#xff08;只能拟合线性关系&#xff09;。加入激活函数&#xff1a;像加了盐、糖、辣椒&#xff0c;让菜有酸甜苦辣&#xff08;非线…...

006.Gitlab CICD流水线触发

文章目录 触发方式介绍触发方式类型 触发方式实践分支名触发MR触发tag触发手动人为触发定时任务触发指定文件变更触发结合分支及文件变更触发正则语法触发 触发方式介绍 触发方式类型 Gitlab CICD流水线的触发方式非常灵活&#xff0c;常见的有如下几类触发方式&#xff1a; …...

服务器远程端口详解

服务器远程端口详解 一、服务器远程端口的概念与作用 1. 端口的基本定义 服务器远程端口是计算机网络中用于标识不同应用程序或服务的逻辑接口。通过TCP/IP协议栈的"Socket"机制&#xff0c;计算机可以通过软件方式与其他设备建立通信通道。每个端口对应一个16位无…...

如何在 Vue 3 中实现百度地图位置选择器组件

如何在 Vue 3 中实现百度地图位置选择器组件 前言 在开发前端应用时&#xff0c;地图选择器是一个非常常见的需求。尤其是在一些需要用户选择地址的场景&#xff0c;如电商平台、旅游网站、酒店预定等&#xff0c;百度地图组件能提供准确的地理位置服务。在本文中&#xff0c…...

es6学习02-let命令和const命令

一、let命令 1.let块级作用域&#xff1a; let关键字 VS var关键字 2.for循环计数器很适合let命令 var&#xff1a;整个for循环中一直都是同一个i在做1&#xff0c;最后输出的就是10&#xff1b; let&#xff1a;每循环一次都是多一个i的赋值&#xff0c;最后输出是可以调出…...

电路方案分析(二十)TPS63xxx系列DC/DC电源EMI PCB设计方案

tips&#xff1a;资料来自网络&#xff0c;仅供学习使用。[TOC](TPS63xxx系列DC/DC电源EMI PCB设计方案) 1.概述 通过TPS63xxx系列DC/DC电源模块来分析降低直流/直流降压/升压转换器辐射 EMI 的来源以及相关PCB设计。 下面都以最常用的TPS63070为例说明&#xff1a; 典型应用…...

DeepSeek大语言模型部署指南:从基础认知到本地实现

目录 一、DeepSeek简介&#xff1a;开源领域的新兴力量 1.1 公司背景与发展历程 1.2 核心产品DeepSeek-R1的技术特点 1.3 行业影响与伦理挑战 二、官方资源获取&#xff1a;全面掌握DeepSeek生态 2.1 官方网站与API服务 2.2 开源代码库资源 2.3 模型部署工具Ollama简介…...

09-设计模式 企业场景 面试题-mk

你之前项目中用过设计模式吗? 需求:设计一个咖啡店点餐系统。 设计一个咖啡类(Coffee),并定义其两个子类(美式咖啡【AmericanCoffee】和拿铁咖啡【LatteCoffee】);再设计一个咖啡店类(CoffeeStore),咖啡店具有点咖啡的功能。具体类图设计如下: 上面的对象都是ne…...

达梦数据库-学习-18-ODBC数据源配置(Linux)

一、环境信息 名称值CPU12th Gen Intel(R) Core(TM) i7-12700H操作系统CentOS Linux release 7.9.2009 (Core)内存4G逻辑核数2DM版本1 DM Database Server 64 V8 2 DB Version: 0x7000c 3 03134284194-20240703-234060-20108 4 Msg Versi…...

解决VS2022中scanf报错C4996

这个的原因是因为新版的VS认为scanf不安全&#xff0c;要去使用scanf_s&#xff0c;但在C语言中就需要scanf&#xff0c;所以我们只要以以下步骤解决就可以了。 只要加入宏定义即可 #define _CRT_SECURE_NO_WARNINGS 因为本人已经很少写小案例了&#xff0c;所以就用这个办法…...

Python(11)Python判断语句全面解析:从基础到高级模式匹配

目录 一、条件逻辑的工程价值1.1 真实项目中的逻辑判断1.2 判断语句类型矩阵 二、基础判断深度解析2.1 多条件联合判断2.2 类型安全判断 三、模式匹配进阶应用3.1 结构化数据匹配3.2 对象模式匹配 四、判断语句优化策略4.1 逻辑表达式优化4.2 性能对比测试 五、典型应用场景实战…...

Quartus II的IP核调用及仿真测试

目录 第一章 什么是IP核&#xff1f;第二章 什么是LPM&#xff1f;第一节 设置LPM_COUNTER模块参数第二节 仿真 第三章 什么是PLL&#xff1f;第一节 设置ALTPLL&#xff08;嵌入式锁相环&#xff09;模块参数第二节 仿真 第四章 什么是RAM&#xff1f;第一节 RAM_1PORT的调用第…...

如何修改服务器TTL值

Windows默认返回的TTL值为128&#xff0c;Linux为64&#xff0c;我们怎么修改这个值呢&#xff1f; 目录 一. Windows 二. Linux 临时更改 永久更改 一. Windows WinR输入regedit&#xff0c;打开注册表 路径&#xff1a;计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentContro…...