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

数据库(3)--针对列的CRUD操作

1.Create 新增

语法:

insert into 表名 (列名)values (列)...

创建一个学生表用于演示:

create table if not exists student(
id bigint comment '编号',
name varchar(20) comment '姓名'
);

1.1直接增加

insert into student values (1,'张三');

不在into 与 表名间声明列名

1.2声明增加单列

insert into (id,name) values (1,'张三');

 1.3声明增加多列

 

insert into (id,name) values (1,'张三'),(2,'李四');

2.Retrieve 检索

语法:

SELECT
[ DISTINCT ]
select_expr [, select_expr ] ...
[ FROM table_references ]
[ WHERE where_condition ]
[ GROUP BY { col_name | expr }, ...]
[ HAVING where_condition ]
[ ORDER BY { col_name | expr } [ ASC | DESC ], ... ]
[LIMIT {[ offset ,] row_count | row_count OFFSET offset }]

 功能较多,我们一个一个介绍

2.1select

先介绍普通查询

2.1.1全列查询

 

select * from 表名;

能打印出表中存储信息

注意desc tables;是打印表的属性 

2.2.2指定列查询 

select id from 表名;

 

在指定列查询时,可以对打印的数据进行微调,具体是:

对数据进行运算(即表达式)

对属性起别名

 2.2.2.1对数据进行运算
select id+1 from student;

也可以把类型相同的属性相加 :

select id+id from student;

2.2.2.2 对属性起别名
select id+id as 表达式 from student;

 加上as 后跟别名(as也可以省略)

 

2.2.3结果去重查询 

语法:

select distinct 列名/* from 表名;

有 重复:

 使用去重查询后:

注意:只有全部属性都相同才会去重 

2.2 where条件查询

 语法:

select * from 表名 where 判断条件;

2.2.1比较运算符

运算符说明
>,    >=,    <,    <=
使用与其他语言无异
=

既可以赋值又可以判断是否相等

但是不可以判断null是否等于null

<=>专门用于null=null  返回值为1/0
!=, <>
不相等
value BETWEEN a0 AND a1
[a0, a1]  如果在这个范围中就返回1
NOT BETWEEN则取反
value IN (option, ...)
如果value 在optoin列表中,则返回TRUE(1),NOT IN则取反
IS NULL
是null返回1
IS NOT NULL
不是null返回1
LIKE
模糊匹配,% 表⽰任意多个(包括0个)字符;
_ 表⽰任意⼀个字符
NOT LIKE则取反

2.2.2逻辑运算符

运算符说明
AND
多个条件必须都为 TRUE(1),结果才是 TRUE(1)
OR
任意⼀个条件为 TRUE(1), 结果为 TRUE(1)
NOT
条件为 TRUE(1),结果为 FALSE(0)

 2.3order by排序

语法:

SELECT ... FROM table_name [WHERE ...] ORDER BY {col_name | expr } [ASC | 
DESC], ... ;

-- ASC 为升序(从⼩到⼤)
-- DESC 为降序(从⼤到⼩)
-- 默认为 ASC

 

注意:

MYSQL中会自动排序,如果没有order by返回的顺序仅参考,不可信。

如果比较对象中有null,默认null是最小的值(比所有数都小,包括负数)

order by 中可以使用别名

如:

这是因为order by 是对select后的对象排序,在select中起的别名可以在order by 中识别

但是where不可以,因为where是先判断再select 

2.4 分页查询

语法:

-- 起始下标为 0
-- 从 0 开始,筛选 num 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT num;
-- 从 start 开始,筛选 num 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT start, num;
-- 从 start 开始,筛选 num 条结果,⽐第⼆种⽤法更明确,建议使⽤
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT num OFFSET start;

作用:可以搭配order by排序成对取出前几个

3.Update修改

语法:

UPDATE [LOW_PRIORITY] [IGNORE] table_referenceSET assignment [, assignment] ...[WHERE where_condition][ORDER BY ...][LIMIT row_count]

例如: 

注意:

不加where条件时,会导致全表数据被列新,谨慎操作 

4.Detele删除 

语法:

DELETE FROM tbl_name [WHERE where_condition] [ORDER BY ...] [LIMIT row_count] 

比如:

注意:

执⾏Delete时不加条件会删除整张表的数据,谨慎操作 

 5.截断表

语法:

TRUNCATE [TABLE] 表名;

可以快速将整个表清空 

说明:

只能对整表操作,不能像 DELETE ⼀样针对部分数据
不对数据操作所以⽐DELETE更快,TRUNCATE在删除数据的时候,不经过真正的事物,所以⽆法回滚
会重置AUTO_INCREMENT 项

6. 插入查询结果

语法:

INSERT INTO table_name [(column [, column ...])] SELECT ...;

例如: 将  去重后  的表的原表互换 并保留原表

create table student_new like student;
insert into student_new (name,id,math,english)select distinct name,id,math,english from student;rename table student to student_new, student_new to student;

 7.聚合函数

函数说明
COUNT([DISTINCT] expr)
返回查询到的数据的 数量
SUM([DISTINCT] expr)
返回查询到的数据的 总和,不是数字没有意义
AVG([DISTINCT] expr)
返回查询到的数据的 平均值,不是数字没有意义
MAX([DISTINCT] expr)
返回查询到的数据的 最⼤值,不是数字没有意义
MIN([DISTINCT] expr)
返回查询到的数据的 最⼩值,不是数字没有意义

例子:

select count(*) from student;
select count(math) from student where math >50;
select sum(math) from student;
select avg(math) from student;
select min(math) from student where math>70;
select min(math),max(math) from student;

8.Group by 分组查询

将有相同属性的对象分组,便于集中统计计算与分析

语法:

SELECT {col_name | expr} ,... ,aggregate_function (aggregate_expr)FROM table_referencesGROUP BY {col_name | expr}, ... [HAVING where_condition]

 例如:

select role,ROUND(avg(salary),1) from cmp group by role;
select role,count(salary) from cmp where salary>1000.00 group by role;
-- 3                        1       2                        4         

上面的数字是执行顺序   group by也可以使用别名

但是正因为where比group by先执行,所以无法对分组后的数据进行判断

MYSQL中引入了having关键字专门用于解决此问题

8.1having子句

例如:

select role,ROUND(avg(salary)) from cmp group by role having ROUND(avg(salary))>1000.00;
Having 与Where 的区别
Having ⽤于对分组结果的条件过滤
Where ⽤于对表中真实数据的条件过滤

9.内置函数 

9.1日期函数

函数说明
CURDATE()
返回当前⽇期,同义词 CURRENT_DATE CURRENT_DATE()
CURTIME()
返回当前时间,同义词 CURRENT_TIME CURRENT_TIME([fsp])
NOW()
返回当前⽇期和时间,同义语 CURRENT_TIMESTAMP
CURRENT_TIMESTAMP
DATE(data)
提取date或datetime表达式的⽇期部分
ADDDATE(date,INTERVAL exprunit)
向⽇期值添加时间值(间隔),同义词 DATE_ADD()
SUBDATE(date,INTERVAL exprunit)
向⽇期值减去时间值(间隔),同义词 DATE_SUB()
DATEDIFF(expr1,expr2)
两个⽇期的差,以天为单位,expr1 - expr2
select curdate();
select curtime();
select now();
select date(now());
select adddate(curdate(),interval 31 day);
select subdate(curdate(),interval 1 month);
select datediff(curdate(),subdate(curdate(),interval 1 month));

9.2字符串处理函数

select name,char_length(name),length(name) from cmp;

select concat(name,'的工资为:',salary) as 工资 from cmp;

 

select concat_ws(',',name,ROUND(salary)) as 工资 from cmp;

 拼接后的字符串⽤逗号隔开

 

select lcase('ABC');

 

select ucase('abc');

9.3数学函数 

函数
ABS(X)
返回X的绝对值
CEIL(X)
返回不⼩于X的最⼩整数值,同义词是 CEILING(X)
FLOOR(X)
返回不⼤于X的最⼤整数值
CONV(N,from_base,to_base)
不同进制之间的转换
FORMAT(X,D)
将数字X格式化为“#,###,###”的格式。##',四舍五⼊到⼩数点后D位,并以字符串形式返回
RAND([N])
返回⼀个随机浮点值,取值范围 [0.0, 1.0)
ROUND(X), ROUND(X,D)
将参数X舍⼊到⼩数点后D位
CRC32(expr)
计算指定字符串的循环冗余校验值并返回⼀个32位⽆符号整数

例如:

select ROUND(RAND(),6);

 

select CRC32('MYSQL');

相关文章:

数据库(3)--针对列的CRUD操作

1.Create 新增 语法&#xff1a; insert into 表名 &#xff08;列名&#xff09;values &#xff08;列&#xff09;... 创建一个学生表用于演示&#xff1a; create table if not exists student( id bigint comment 编号, name varchar(20) comment 姓名 ); 1.1直接增加…...

利用Java爬取1688商品详情API接口:技术与应用指南

引言 1688作为中国领先的B2B电子商务平台&#xff0c;拥有海量的商品信息。对于商家和市场研究人员来说&#xff0c;能够从1688获取商品详情信息&#xff0c;对于市场分析、竞品研究等具有重要价值。本文将详细介绍如何使用Java编写爬虫程序&#xff0c;以合法、高效的方式获取…...

安装vue脚手架出现的一系列问题

安装vue脚手架出现的一系列问题 前言使用 npm 安装 vue/cli2.权限问题及解决方法一&#xff1a;可以使用管理员权限进行安装。方法二&#xff1a;更改npm全局安装路径 前言 由于已有较长时间未进行 vue 项目开发&#xff0c;今日着手准备开发一个新的 vue 项目时&#xff0c;在…...

git命令收集

强制丢弃所有修改&#xff0c;和仓库代码一致 git reset --hard 更新子模块 git submodule update每个子模块 重置到最新节点 git submodule foreach --recursive git reset --hard清除每个子模块未跟踪的文件 git submodule foreach --recursive git clean -fd清理未跟踪的…...

IDEA中Maven依赖包导入失败报红的潜在原因

在上网试了别人的八个问题总结之后依然没有解决&#xff1a; IDEA中Maven依赖包导入失败报红问题总结最有效8种解决方案_idea导入依赖还是报红-CSDN博客https://blog.csdn.net/qq_43705131/article/details/106165960 江郎才尽之后突然想到一个原因&#xff1a;<dep…...

c/c++ 里的进程间通信 , 管道 pipe 编程举例

&#xff08;1&#xff09;以下是一个网上的使用 pipe 编程的范例&#xff1a; #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <sys/types.h> #include <sys/wait.h>int main() {int pipefd…...

【Java】JVM内存相关笔记

Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途&#xff0c;以及创建和销毁的时间&#xff0c;有的区域随着虚拟机进程的启动而一直存在&#xff0c;有些区域则是依赖用户线程的启动和结束而建立和销毁。 程序计数器&am…...

[项目实战2]贪吃蛇游戏

目录 贪吃蛇游戏&#xff1a;&#xff1a; 一、游戏效果及功能实现&#xff1a; 1.规则 ​​​​​​​ ​​​​​​​ ​​​​​​​ 2.基本功能实现 ​​​​​​​ ​​​​​​​ ​​​​​​​ 3.技术要点 ​​​​​​​…...

PySide6的样式表

PySide6 提供了对 Qt 样式表&#xff08;Qt Style Sheets&#xff0c;简称 QSS&#xff09;的支持&#xff0c;这是一种类似于 CSS 的样式表语言&#xff0c;用于自定义 Qt 应用程序的外观。 1. 什么是 Qt 样式表&#xff08;QSS&#xff09; Qt 样式表是一种声明性的样式表语…...

计算机网络之---局域网

什么叫局域网 局域网&#xff08;LAN&#xff0c;Local Area Network&#xff09; 是指在一个相对较小的区域内&#xff0c;如家庭、办公室、学校、企业等&#xff0c;连接多个计算机和设备的网络。局域网的特点是覆盖范围小、传输速度快、构建成本较低。 局域网的主要特点&…...

使用 uniapp 开发微信小程序遇到的坑

0. 每次修改代码时&#xff0c;都会触发微信开发工具重新编译 终极大坑&#xff0c;暂未找到解决方案 1. input 无法聚焦问题 问题&#xff1a;在小程序开发工具中&#xff0c;input 会突然无法聚焦&#xff0c;重启也不行。但是真机调试可以正常聚焦。 解决办法&#xff1a…...

基于 GEE Sentinel-1 数据集提取水体

目录 1 水体提取原理 2 完整代码 3 运行结果 1 水体提取原理 水体提取是地理信息和遥感技术的关键应用之一&#xff0c;对于多个领域都具有重要的应用价值。它有助于更好地管理水资源&#xff0c;保护环境&#xff0c;减少灾害风险&#xff0c;促进可持续发展&#xff0c;以…...

2025-01-07 Unity 使用 Tip3 —— 游戏保存数据到 Application.persistentDataPath 不生效解决方案更新

文章目录 1 问题描述2 老版解决方案&#xff08;测试可行&#xff09;2.1 创建 js 脚本2.2 添加 js 引用 3 新版解决方案&#xff08;测试不可行&#xff09;4 实际问题 ​ WebGL 平台限制了文件访问系统&#xff0c;在 Unity 以前版本中&#xff0c;开发者想要在 WebGL 上保存…...

关于重构一点简单想法

关于重构一点简单想法 当前工作的组内&#xff0c;由于业务开启的时间正好处于集团php-》go技术栈全面迁移的时间点&#xff0c;组内语言技术栈存在&#xff1a;php、go两套。 因此需求开发过程中通常要考虑两套技术栈的逻辑&#xff0c;一些基础的逻辑也没有办法复用。 在这…...

使用 `llama_index` 构建智能问答系统:多种文档切片方法的评估

使用 llama_index 构建智能问答系统&#xff1a;多种文档切片方法的评估 代码优化与解析1. **代码结构优化**2. **日志管理**3. **环境变量管理**4. **模型初始化**5. **提示模板更新**6. **问答函数优化**7. **索引构建与查询引擎**8. **节点解析器测试** 总结 在现代自然语言…...

Vue3 内置组件之KeepAlive

文章目录 Vue3 内置组件之KeepAlive概述用法简单使用include & excludemax Vue3 内置组件之KeepAlive 概述 <KeepAlive> 是一个内置组件&#xff0c;它的功能是在多个组件间动态切换时缓存被移除的组件实例。 组件在加载时会经历初始、挂载、更新、销毁生命周期&a…...

生物医学信号处理--绪论

前言 参考书籍&#xff1a;刘海龙&#xff0c;生物医学信号处理&#xff0c;化学工业出版社 生物医学信号分类 1、由生理过程自发或者诱发产生的电生理信号和非电生理信号 • 电生理信号&#xff1a;ECG/心电、EEG/脑电、EMG/肌电、 EGG/胃电、 EOG/眼电 • 非电生理信号&am…...

30天开发操作系统 第 12 天 -- 定时器

前言 定时器(Timer)对于操作系统非常重要。它在原理上却很简单&#xff0c;只是每隔一段时间(比如0.01秒)就发送一个中断信号给CPU。幸亏有了定时器&#xff0c;CPU才不用辛苦地去计量时间。……如果没有定时器会怎么样呢?让我们想象一下吧。 假如CPU看不到定时器而仍想计量时…...

android 启动页倒计时页面编写

一、需求和技术 1、实现5,4,3,2,1启动页倒计时 2、倒计时实现使用CountDownTimer 二、activity代码 public class OpenActivity extends AppCompatActivity {private Button in;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanc…...

Win10和11 git/Android Studio遇到filename too long问题的解决

1、打开windows长文件、长路径支持&#xff1a; 可以参考这篇文章&#xff1a; 修改注册表方法&#xff1a; 使用Admin登陆machine&#xff0c;在run中输入regedit并回车&#xff1b; 找到路径 ’Computer -> HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -&g…...

OpenCV相机标定与3D重建(43)用于计算矫正和重映射的变换函数initUndistortRectifyMap()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 计算畸变矫正和校正变换映射。 该函数计算联合的畸变矫正和校正变换&#xff0c;并以 remap 所需的地图形式表示结果。矫正后的图像看起来像是原…...

运行npm install 时,卡在sill idealTree buildDeps没有反应

运行npm install 时&#xff0c;卡在sill idealTree buildDeps没有反应 原因&#xff1a; 淘宝镜像源的域名早已经过期&#xff0c;所以我们需要绑定新的镜像源。 2021 年&#xff0c;淘宝就发布了消息称&#xff0c;npm 淘宝镜像已经从 registry.npm.taobao.org 切换到了 re…...

与 Oracle Dataguard 相关的进程及作用分析

与 Oracle Dataguard 相关的进程及作用分析 目录 与 Oracle Dataguard 相关的进程及作用分析与 Oracle Dataguard 相关的进程及作用分析一、主库的进程1、LGWR 进程2、ARCH进程3、LNS 进程 二、备库的进程1、RFS 进程2、ARCH3、MRP&#xff08;Managed Recovery Process&#x…...

如何在Windows上编译OpenCV4.7.0

前言 ​ 参考&#xff1a;Win10 下编译 OpenCV 4.7.0详细全过程&#xff0c;包含xfeatures2d 这里在其基础上还出现了一些问题&#xff0c;仅供参考。 正文 一、环境 1、win10 2、cmake-gui 3、opencv4.7.0 4、VS2019 二、编译过程 1、下载需要的文件&#xff1a; 通…...

get和post有什么区别

GET和POST是HTTP协议中两种常用的请求方法&#xff0c;它们在用途、参数传递方式、缓存处理、安全性等方面存在显著差异。 以下是对GET和POST区别的详细讲解&#xff0c;并给出示例演示。 一、GET和POST的区别 用途 GET&#xff1a;主要用于获取信息&#xff0c;即进行查询操…...

STM32之CAN通讯(十一)

STM32F407 系列文章 - CAN通讯&#xff08;十一&#xff09; 目录 前言 一、CAN 二、CAN驱动电路 三、CAN软件设计 1.CAN状态初始化 2.头文件相关定义 3.接收中断服务函数 4.用户层使用 1.用户层相关定义 2.发送数据 3.接收数据 1.查询方式处理 2.中断方式处理 3…...

23.行号没有了怎么办 滚动条没有了怎么办 C#例子

新建了一个C#项目&#xff0c;发现行号没有了。 想把行号调出来&#xff0c;打开项目&#xff0c;选择工具>选项> 如下图&#xff0c;在文本编辑器的C#里有一个行号&#xff0c;打开就可以了 滚动条在这里&#xff1a;...

QT 下拉菜单设置参数 起始端口/结束端口/线程数量 端口扫描4

上篇文章QT实现 端口扫描暂停和继续功能 3-CSDN博客 双击 添加对话框类 界面设计 由于主体代码已经写完&#xff0c;只需要更改参数的获取即可 获取起始端口结束端口的输入 槽函数 给主界面类添加调用对话框类的功能 实现功能&#xff1a;点击菜单项可以弹出对话框窗体 增加槽…...

spark——RDD算子集合

目录 算子转换算子示例mapflatMapReduceByKeyfilterdistinctglomgroupBygroupByKeySortBysortByKeyunion交集intersection和差集subtractjoinpartitionBymapPartitionsample 行动算子示例ForeachPartitionForeachSaveAsTextFileCountByKeyReducefoldfirst、take、counttop、tak…...

【ArcGIS Pro二次开发实例教程】(1):图层的前置、后置

一、简介 此工具要实现的功能是&#xff1a;将内容框中当前选定的图层移到最顶层或最底层。 主要技术要点包括&#xff1a; 1、Config.daml文件设置&#xff08;UI设置&#xff09; 2、按钮的图片和位置设置 3、当前选定图层的获取 4、图层在内容列表中位置的获取和移动 …...

idea 运行 docker-compose 文件问题

我idea 连接远程docker 然后本地运行compose 文件出了问题 C:\Program Files\Docker\Docker\resources\bin\docker.exe compose -f D:\aproject\group-buy-market\suger_group_buy\docs\dev-ops\docker-compose-environment.yml -p dev-ops up -d正在准备 Docker SSH 环境…ti…...

深度学习中的正则化方法

最近看到了正则化的内容&#xff0c;发现自己对正则化的理解已经忘得差不多了&#xff0c;这里在整理一下&#xff0c;方便以后查阅。 深度学习中的正则化方法 1. L2 正则化&#xff08;L2 Regularization&#xff09;2. L1 正则化&#xff08;L1 Regularization&#xff09;3.…...

LInux单机安装Redis

1. 安装gee工具包 由于Redis是基于c语言编写的所以安装的时候需要先安装gee以及gcc的依赖,yum云用不了可以看一下这个 linux 替换yum源镜像_更换yum镜像源-CSDN博客 yum install -y gcc tcl 2. 添加redis的压缩包 3. 上传到Linux 上传到 /usr/local/src 目录、这个目录一般用于…...

kafka使用以及基于zookeeper集群搭建集群环境

一、环境介绍 zookeeper下载地址&#xff1a;https://zookeeper.apache.org/releases.html kafka下载地址&#xff1a;https://kafka.apache.org/downloads 192.168.142.129 apache-zookeeper-3.8.4-bin.tar.gz kafka_2.13-3.6.0.tgz 192.168.142.130 apache-zookee…...

深入理解 pytest_runtest_makereport:如何在 pytest 中自定义测试报告

pytest_runtest_makereport 是 pytest 系统中的一个钩子函数&#xff0c;它允许我们在测试执行时获取测试的报告信息。通过这个钩子&#xff0c;我们可以在测试运行时&#xff08;无论是成功、失败还是跳过&#xff09;对测试结果进一步处理&#xff0c;比如记录日志、添加自定…...

嵌入式技术之Linux(Ubuntu) 一

一、Linux入门 1.硬件和操作系统以及用户的关系 一个传感器&#xff0c;获得数据后&#xff0c;需要向服务器发送数据。传感器传数据给上位机。 上位机需要一个程序来接收数据&#xff0c;那么这个上位机是什么机器&#xff1f; 我们的笔记本电脑就可以当成上位机。 两个手…...

VB.NET CRC32 校验

在 VB.NET 中实现 CRC32 校验并在校验失败时退出程序&#xff0c;你可以按照以下步骤进行&#xff1a; ‌实现 CRC32 计算函数‌&#xff1a;首先&#xff0c;你需要一个函数来计算给定数据的 CRC32 值。 ‌比较计算的 CRC32 值‌&#xff1a;然后&#xff0c;你需要将计算出的…...

iOS - 弱引用表(Weak Reference Table)

1. 基本数据结构 // 弱引用表的基本结构 struct weak_table_t {weak_entry_t *weak_entries; // 保存所有的弱引用对象size_t num_entries; // 当前存储的弱引用数量uintptr_t mask; // 哈希表大小掩码uintptr_t max_hash_displacement; /…...

Taro地图组件和小程序定位

在 Taro 中使用腾讯地图 1.首先在项目配置文件 project.config.json 中添加权限&#xff1a; {"permission": {"scope.userLocation": {"desc": "你的位置信息将用于小程序位置接口的效果展示"}} }2.在 app.config.ts 中配置&#x…...

汇编实现函数调用

x86_64 通过将函数参数存放在栈中的方式来实现参数传递。 # PURPOSE: Program to illustrate how functions work # This program will compute the value of # 2^3 5^2 ## Everything in the main program is stored in registers, # so the data section…...

C#—Task异步的常用方法及TaskFactory工厂类详解

Task异步的常用方法 C# 中的 Task 类是 System.Threading.Tasks 命名空间的一部分&#xff0c;用于表示异步操作。 以下是一些常用的 Task 类方法&#xff1a; 一、Task.Run(Action action): 此静态方法用于在后台运行一个新任务&#xff0c;并返回与该任务关联的 Task 实例…...

JAVA | 通过自定义注解与AOP防止接口重复提交

关注&#xff1a;CodingTechWork 引言 在Web应用开发中&#xff0c;特别是在处理表单提交或API调用时&#xff0c;可能会遇到用户因网络延迟、按钮多次点击等原因导致的重复提交问题。为了解决这一问题&#xff0c;通常的做法是在前端禁用提交按钮&#xff0c;或者在后端使用唯…...

从零手写实现redis(四)添加监听器

1、删除监听器 /*** 删除监听器接口** author binbin.hou* since 0.0.6* param <K> key* param <V> value*/ public interface ICacheRemoveListener<K,V> {/*** 监听* param context 上下文* since 0.0.6*/void listen(final ICacheRemoveListenerContext&…...

Spring Boot项目中使用单一动态SQL方法可能带来的问题

1. 查询计划缓存的影响 深入分析 数据库系统通常会对常量SQL语句进行编译并缓存其执行计划以提高性能。对于动态生成的SQL语句&#xff0c;由于每次构建的SQL字符串可能不同&#xff0c;这会导致查询计划无法被有效利用&#xff0c;从而需要重新解析、优化和编译&#xff0c;…...

51单片机——中断(重点)

学习51单片机的重点及难点主要有中断、定时器、串口等内容&#xff0c;这部分内容一定要认真掌握&#xff0c;这部分没有学好就不能说学会了51单片机 1、中断系统 1.1 概念 中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的&#xff0c;中断功能的存在&#…...

MySQL insert or update方式性能比较

MySQL中&#xff0c;有如下两种方式&#xff0c;哪种方式比较好&#xff1f; 1、先使用enterprise_id字段查询数据表&#xff0c;如果表中存在记录&#xff0c;则更新记录&#xff1b;如果不存在&#xff0c;则插入记录&#xff1b; 2、使用“INSERT INTO XXX ON DUPLICATE K…...

Linux下常用命令

本文以笔记的形式记录Linux下常用命令。 注1&#xff1a;限于研究水平&#xff0c;阐述难免不当&#xff0c;欢迎批评指正。 注2&#xff1a;文章内容会不定期更新。 一、Ubuntu 添加账号 useradd -m -s /bin/bash -d /home/newuser newuser:newuser passwd newuser 二、 Ce…...

计算机网络、嵌入式等常见问题简答

1.嵌入式系统中经常要用到无限循环&#xff0c;如何用C编写死循环 答&#xff1a;while(1){}或者for(;;) 2.程序的局部变量存在于哪里&#xff0c;全局变量存在于哪里&#xff0c;动态申请数据存在于哪里。 答&#xff1a;程序的局部变量存在于栈区&#xff1b;全局变量存在…...

嵌入式中QT实现文本与线程控制方法

第一:利用QT进行文件读写实现 利用QT进行读写文本的时候进行读写,读取MP3歌词的文本,对这个文件进行读写操作。 实例代码,利用Qfile,对文件进行读写。 //读取对应文件文件,头文件的实现。 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #incl…...

141.环形链表 142.环形链表II

141.环形链表 & 142.环形链表II 141.环形链表 思路&#xff1a;快慢指针 or 哈希表 快慢指针代码&#xff1a; class Solution { public:bool hasCycle(ListNode *head) {if(headnullptr||head->nextnullptr)return false;ListNode *fasthead->next; //不能设置成…...