零基础学MySQL(五)-- 详细讲解数据库中的常用函数

目录
- 🎇一、聚合函数
- 1️⃣count 函数
- (1)基本语法
- (2)基本练习
- (3)注意细节
- 2️⃣sum 函数
- (1)基本语法
- (2)基本练习
- (3)注意细节
- 3️⃣avg 函数
- (1)基本语法
- (2)基本练习
- 4️⃣max/min 函数
- (1)基本语法
- (2)基本练习
- 🎆二、字符串相关函数
- 1️⃣字符串常用函数一览表
- 2️⃣案例演示
- ✨三、数学相关函数
- 1️⃣数学常用函数一览表
- 2️⃣案例演示
- 🎄四、时间日期相关函数
- 1️⃣时间日期常用函数一览表
- 2️⃣案例演示
- 🍱五、加密和系统函数
- 1️⃣加密和系统函数一览表
- 2️⃣案例演示
- 🎋六、流程控制函数
- 1️⃣流程控制函数一览表
- 2️⃣案例演示

🎇一、聚合函数
提供 student 表

1️⃣count 函数
count 表示返回行的总数
(1)基本语法
SELECT COUNT(*|列名) FROM 表名WHERE 条件;
(2)基本练习
统计一个班级共有多少学生?
SELECT COUNT(*) FROM student;
统计数学成绩大于 90 的学生有多少个?
SELECT COUNT(*) FROM studentWHERE math > 90;
统计总分大于 250 的人数有多少?
SELECT COUNT(*) FROM studentWHERE (math + english + chinese) > 250
(3)注意细节
count(*) 和 count(列) 的区别:
count(*) 返回满足条件的记录的行数
count(列): 统计满足条件的某列有多少个,但是会排除为 null 的情况
2️⃣sum 函数
sum函数返回满足where条件的行的和,一般使用于数值列
(1)基本语法
SELECT SUM(列名) FROM 表名WHERE 条件;
(2)基本练习
统计一个班级数学总成绩
SELECT SUM(math) FROM student;
统计一个班级语文、英语、数学各科的总成绩
SELECT SUM(math),SUM(english),SUM(chinese) FROM student;
统计一个班级语文、英语、数学的成绩总和
SELECT SUM(math + english + chinese) FROM student;
统计一个班级语文成绩平均分
SELECT SUM(chinese)/ COUNT(*) FROM student;
(3)注意细节
sum 函数仅对数值起作用,对多行求和需用逗号隔开
3️⃣avg 函数
avg函数返回满足where条件的一列的平均值
(1)基本语法
SELECT AVG(列名) FROM 表名WHERE 条件;
(2)基本练习
求一个班级数学平均分?
SELECT AVG(math) FROM student;
求一个班级总分平均分
SELECT AVG(math + english + chinese) FROM student;
4️⃣max/min 函数
max/min 函数返回满足 where 条件的一列的最大/最小值
(1)基本语法
SELECT MAX(列名) FROM 表名WHERE 条件;SELECT MIN(列名) FROM 表名WHERE 条件;
(2)基本练习
求班级最高分和最低分
SELECT MAX(math + english + chinese), MIN(math + english + chinese) FROM student;
求出班级数学最高分和最低分
SELECT MAX(math), MIN(math) FROM student;
🎆二、字符串相关函数
1️⃣字符串常用函数一览表
| 函数用法 | 说明 |
|---|---|
| CHARSET(str) | 返回字串字符集 |
| CONCAT (string2 [,… ]) | 连接字串, 将多个列拼接成一列 |
| INSTR (string ,substring ) | 返回 substring 在 string 中出现的位置,没有返回 0 |
| UCASE (string2) | 转换成大写 |
| LCASE (string2) | 转换成小写 |
| LEFT (string2 ,length) | 从 string2 中的左边起取 length 个字符 |
| RIGHT (string2 ,length) | 从 string2 中的右边起取 length 个字符 |
| LENGTH (string) | string 长度[按照字节] |
| REPLACE (str ,search_str ,replace_str ) | 在 str 中用 replace_str 替换 search_str |
| STRCMP (string1 ,string2) | 逐字符比较两字串大小 |
| SUBSTRING (str , position [,length ]) | 从 str 的 position 开始【从 1 开始计算】,取 length 个字符 |
| LTRIM (string) | 去除前端空格 |
| RTRIM (string) | 去除后端空格 |
| TRIM(string) | 去除前后两端空格 |
2️⃣案例演示
以 emp 表为例

-- CHARSET(str) 返回字串字符集
SELECT CHARSET(ename) FROM emp;
-- CONCAT (string2 [,... ]) 连接字串, 将多个列拼接成一列
SELECT CONCAT(ename, '工作是', job) FROM emp;
-- INSTR (string ,substring ) 返回 substring 在 string 中出现的位置,没有返回 0
-- dual 亚元表, 系统表 可以作为测试表使用
SELECT INSTR('jack','c') FROM DUAL;
-- UCASE (string2) 转换成大写
SELECT UCASE(ename) FROM emp;
-- LCASE (string2) 转换成小写
SELECT LCASE(ename) FROM emp;
-- LEFT (string2 ,length)从 string2 中的左边起取 length 个字符
SELECT LEFT(ename,2) FROM emp;
-- RIGHT (string2 ,length) 从 string2 中的右边起取 length 个字符
SELECT RIGHT(ename,2) FROM emp;
-- LENGTH (string)string 长度[按照字节]
SELECT LENGTH(ename) FROM emp;
SELECT LENGTH('邱崇源') FROM emp;-- 9个字节
-- REPLACE (str ,search_str ,replace_str )在 str 中用 replace_str 替换 search_str
-- 如果是 manager 就替换成 经理
SELECT ename, REPLACE(job, 'MANAGER', '经理') FROM emp;
-- STRCMP (string1 ,string2) 逐字符比较两字串大小
SELECT STRCMP('abc','bbc') FROM emp;
-- SUBSTRING (str , position [,length ])
-- 从 str 的 position 开始【从 1 开始计算】,取 length 个字符
-- 从 ename 列的第一个位置开始取出 2 个字符
SELECT SUBSTRING(ename,1,2) FROM emp;
-- LTRIM (string2 ) RTRIM (string2 ) TRIM(string)
-- 去除前端空格或后端空格
SELECT LTRIM(' 邱崇源') FROM DUAL;
SELECT RTRIM('邱崇源 ') FROM DUAL;
SELECT TRIM(' 邱崇源 ') FROM DUAL;
✨三、数学相关函数
1️⃣数学常用函数一览表
| 函数用法 | 说明 |
|---|---|
| ABS(num) | 绝对值 |
| BIN (decimal_number) | 十进制转二进制 |
| CEILING (number2) | 向上取整, 得到比 num2 大的最小整数 |
| CONV(number2,from_base,to_base) | 进制转换 |
| FLOOR (number2) | 向下取整,得到比 num2 小的最大整数 |
| FORMAT (number,decimal_places) | 保留小数位数(四舍五入) |
| HEX (DecimalNumber) | 转十六进制 |
| LEAST (number , number2 [,…]) | 求最小值 |
| MOD (numerator ,denominator) | 求余 |
| RAND([seed]) | 返回随机数 其范围为 0 ≤ v ≤ 1.0 |
2️⃣案例演示
-- 演示数学相关函数
-- ABS(num) 绝对值
SELECT ABS(-10) FROM DUAL;
-- BIN (decimal_number )十进制转二进制
SELECT BIN(10) FROM DUAL;
-- CEILING (number2 ) 向上取整, 得到比 num2 大的最小整数
SELECT CEILING(-1.1) FROM DUAL;
-- CONV(number2,from_base,to_base) 进制转换
-- 下面的含义是 8 是十进制的 8, 转成 2 进制输出
SELECT CONV(8, 10, 2) FROM DUAL;
-- 下面的含义是 8 是 16 进制的 8, 转成 2 进制输出
SELECT CONV(16, 16, 10) FROM DUAL;
-- FLOOR (number2 ) 向下取整,得到比 num2 小的最大整数
SELECT FLOOR(1.1) FROM DUAL;
-- FORMAT (number,decimal_places ) 保留小数位数(四舍五入)
SELECT FORMAT(78.125458,2) FROM DUAL;
-- HEX (DecimalNumber ) 转十六进制
-- LEAST (number , number2 [,..]) 求最小值
SELECT LEAST(0,1, -10, 4) FROM DUAL;
-- MOD (numerator ,denominator ) 求余
SELECT MOD(10, 3) FROM DUAL;
-- RAND([seed]) 返回随机数 其范围为 0 ≤ v ≤ 1.0
-- 说明
-- 1. 如果使用 rand() 每次返回不同的随机数 ,在 0 ≤ v ≤ 1.0
-- 2. 如果使用 rand(seed) 返回随机数, 范围 0 ≤ v ≤ 1.0, 如果 seed 不变,
-- 该随机数也不变了
SELECT RAND() FROM DUAL;
🎄四、时间日期相关函数
1️⃣时间日期常用函数一览表
| 函数用法 | 说明 |
|---|---|
| CURRENT_DATE ( ) | 当前日期 |
| CURRENT_TIME ( ) | 当前时间 |
| CURRENT_TIMESTAMP ( ) | 当前时间戳 |
| DATE_ADD(send_time, INTERVAL d_value d_type) | 在date2中加上一个日期或时间 |
| DATE_SUB(send_time, INTERVAL d_value d_type) | 在date2中减去一个日期或时间 |
| DATEDIFF(date1,date2) | 两个日期差(结果是天) |
| TIMEDIFF(date1,date2) | 两个时间差(结果是多少小时多少分钟多少秒) |
| NOW() | 当前时间 |
| YEAR/Month/DAY (datetime) | 取时间的年月日 |
| unix_timestamp() | 返回的是 1970-1-1 到现在的秒数 |
| FROM_UNIXTIME() | 可以把一个 unix_timestamp 秒数[时间戳],转成指定格式的日期 |
2️⃣案例演示
建立mes表
CREATE TABLE mes (id INT,content VARCHAR(30),send_time DATETIME);
INSERT INTO mes VALUES(1,'界面打开',CURRENT_TIMESTAMP());
INSERT INTO mes VALUES(2,'鸡腿肉',NOW());
INSERT INTO mes VALUES(3,'圣诞狗狗',NOW());
-- 日期时间相关函数
-- CURRENT_DATE ( ) 当前日期
SELECT CURRENT_DATE() FROM DUAL;
-- CURRENT_TIME ( )当前时间
SELECT CURRENT_TIME() FROM DUAL;
-- CURRENT_TIMESTAMP ( ) 当前时间戳
SELECT CURRENT_TIMESTAMP() FROM DUAL;
-- 显示所有新闻信息,发布日期只显示 日期,不用显示时间.
SELECT id,content,DATE(send_time) FROM mes;
-- 请查询在 10 分钟内发布的新闻, 思路一定要梳理一下.
SELECT * FROM mes WHERE DATE_ADD(send_time, INTERVAL 10 MINUTE) >= NOW();
-- 请在 mysql 的 sql 语句中求出 2011-11-11 和 1990-1-1 相差多少天
SELECT DATEDIFF('2011-11-11','1990-01-01') FROM DUAL;
-- 请用 mysql 的 sql 语句求出你活了多少天?
SELECT DATEDIFF(NOW(),'2000-05-24') FROM DUAL;
-- 如果你能活 80 岁,求出你还能活多少天.
SELECT DATEDIFF('2080-05-24',NOW()) FROM DUAL;
SELECT TIMEDIFF('10:11:11', '06:10:10') FROM DUAL;
-- YEAR|Month|DAY| (datetime)
SELECT YEAR(NOW()) FROM DUAL;
SELECT MONTH(NOW()) FROM DUAL;
SELECT DAY(NOW()) FROM DUAL;
-- unix_timestamp() : 返回的是 1970-1-1 到现在的秒数
SELECT UNIX_TIMESTAMP() FROM DUAL;
-- FROM_UNIXTIME() : 可以把一个 unix_timestamp 秒数[时间戳],转成指定格式的日期
-- %Y-%m-%d 格式是规定好的,表示年月日
-- 意义:在开发中,可以存放一个整数,然后表示时间,通过 FROM_UNIXTIME 转换
SELECT FROM_UNIXTIME(1672307500, '%Y-%m-%d %H:%i:%s');
🍱五、加密和系统函数
1️⃣加密和系统函数一览表
| 函数用法 | 说明 |
|---|---|
| USER() | 查询用户 |
| DATABASE() | 查询当前使用数据库名称 |
| MD5(str) | 为字符串算出一个 MD5 32 的字符串,常用(用户密码)加密 |
| PASSWORD(str) | 加密函数, MySQL 数据库的用户密码就是 PASSWORD 函数加密 |
2️⃣案例演示
-- 演示加密函数和系统函数
-- USER() 查询用户
-- 可以查看登录到 mysql 的有哪些用户,以及登录的 IP
SELECT USER() FROM DUAL; -- 用户@IP 地址
-- DATABASE()查询当前使用数据库名称
SELECT DATABASE();
-- MD5(str) 为字符串算出一个 MD5 32 的字符串,常用(用户密码)加密
-- root 密码是 qcy -> 加密 md5 -> 在数据库中存放的是加密后的密码
SELECT MD5('qcy') FROM DUAL;
SELECT LENGTH(MD5('qcy')); -- 32
-- PASSWORD(str) -- 加密函数, MySQL 数据库的用户密码就是 PASSWORD 函数加密
SELECT PASSWORD('qcy') FROM DUAL;
🎋六、流程控制函数
1️⃣流程控制函数一览表
| 函数用法 | 说明 |
|---|---|
| IF(expr1,expr2,expr3) | 如果 expr1 为 True ,则返回 expr2 否则返回 expr3 |
| IFNULL(expr1,expr2) | 如果 expr1 不为空 NULL,则返回 expr1,否则返回 expr2 |
| SELECT CASE WHEN expr1 THEN expr2 WHEN expr3 THEN expr4 ELSE expr5 END; [类似多重分支.] | 如果 expr1 为 TRUE,则返回 expr2,如果 expr3 为 TRUE, 返回 expr4, 否则返回 expr5 |
2️⃣案例演示
# 演示流程控制语句
# IF(expr1,expr2,expr3) 如果 expr1 为 True ,则返回 expr2 否则返回 expr3
SELECT IF(TRUE, '北京', '上海') FROM DUAL;
# IFNULL(expr1,expr2) 如果 expr1 不为空 NULL,则返回 expr1,否则返回 expr2
SELECT IFNULL( NULL, '韩顺平教育') FROM DUAL;
# SELECT CASE WHEN expr1 THEN expr2 WHEN expr3 THEN expr4 ELSE expr5 END; [类似多重分支.]
# 如果 expr1 为 TRUE,则返回 expr2,如果 expr3 为 TRUE, 返回 expr4, 否则返回 expr5
SELECT CASEWHEN TRUE THEN 'jack' -- jackWHEN FALSE THEN 'tom' ELSE 'mary' END-- 1. 查询 emp 表, 如果 comm 是 null , 则显示 0.0
-- 说明,判断是否为 null 要使用 is null, 判断不为空 使用 is not null
SELECT ename,IFNULL(comm,0.0) FROM emp;-- 2. 如果 emp 表的 job 是 CLERK 则显示 职员, 如果是 MANAGER 则显示经理
-- 如果是 SALESMAN 则显示 销售人员,其它正常显示
SELECT ename, (SELECT CASEWHEN job = 'CLERK' THEN '职员' WHEN job = 'MANAGER' THEN '经理' WHEN job = 'SALESMAN' THEN '销售人员' ELSE job END) AS 'job' FROM emp;
相关文章:
零基础学MySQL(五)-- 详细讲解数据库中的常用函数
目录🎇一、聚合函数1️⃣count 函数(1)基本语法(2)基本练习(3)注意细节2️⃣sum 函数(1)基本语法(2)基本练习(3)注意细节3…...
第4章 流程控制-if-else,Switch,For循环(循环守卫,循环步长,倒叙打印),While循环,多重循环...
第 4 章 流程控制-if-else,Switch,For循环(循环守卫,循环步长,倒叙打印),While循环,多重循环 4.1 分支控制 if-else 让程序有选择的的执行,分支控制有三种:单分支、双分支、多分支 4.1.1 单分支 1)基本语法…...
2.4G-WiFi连接路由器过程
一、概述 WiFi的数据通信基于802.11协议进行,无线AP在工作时会定时向空中发送beacon数据包,基站(STA)从beacon中解析出AP的名称、加密方式等信息,从而发起连接。 二、WiFi连接路由器的详细过程 WiFi连接过程主要可以…...
3. SpringMVC Rest 风格
1. REST 简介 REST(Representational State Transfer),表现形式状态转换,它是一种软件架构风格。 当要表示一个网络资源的时候,可以使用两种方式: 传统风格资源描述形式 http://localhost/user/getById?…...
Python3简介
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。 Python 是面向对象语言: 这意味着P…...
如何学习PMP?
★基础要打牢 方法:“基础不牢,地动山摇”,如果基础不牢那么就很难拿高分,因为连最基础的题目分都不一定能拿到。 可以在针对基础知识,把PMBOK看一两遍,再次加深印象,再把平时做章节练习、每日5…...
【DSP视频教程】第11期:插补算法,曲线拟合丝滑顺畅,统计函数和基础函数加速实现,汇集SIMD,饱和和MAC乘累加应用实战(2023-02-12)
视频教程汇总帖:https://www.armbbs.cn/forum.php?modviewthread&tid110519 DSP视频教程有段时间没有更新了。 当前DSP库从CMSIS软件包里面独立出来,并且更新非常频繁,所以本期视频教程优先给大家简单介绍下新版DSP, 然后为…...
分类模型评估:混淆矩阵、准确率、召回率、ROC
1. 混淆矩阵 在二分类问题中,混淆矩阵被用来度量模型的准确率。因为在二分类问题中单一样本的预测结果只有Yes or No,即:真或者假两种结果,所以全体样本的经二分类模型处理后,处理结果不外乎四种情况,每种…...
算法 ——世界 一
个人简介:云计算网络运维专业人员,了解运维知识,掌握TCP/IP协议,每天分享网络运维知识与技能。个人爱好: 编程,打篮球,计算机知识个人名言:海不辞水,故能成其大;山不辞石…...
2023年3月AMA-CDGA/CDGP数据治理认证考试这些城市可以报名
目前2023年3月5日CDGA&CDGP开放报名的城市有:北京、上海、广州、深圳、杭州、重庆,西安,成都,长沙,济南,更多考场正在增加中… DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业…...
Java变量和数据类型,超详细整理,适合新手入门
目录 一、什么是变量? 二、变量 变量值互换 三、基本数据类型 1、八种基本数据类型 2、布尔值 3、字符串 四、从控制台输入 一、什么是变量? 变量是一种存储值的容器,它可以在程序的不同部分之间共享;变量可以存储数字、字…...
Echarts 设置折线图拐点的颜色,边框等样式,hover时改变颜色
第014个点击查看专栏目录上一篇文章我们讲到了如何设置拐点大小,图形类型,旋转角度,缩放同比,位置偏移等,这篇文章介绍如何设置拐点的颜色、边框大小颜色等样式。hover轴线时候,拐点的填充颜色改变文章目录示例效果示例…...
做 SQL 性能优化真是让人干瞪眼
很多大数据计算都是用SQL实现的,跑得慢时就要去优化SQL,但常常碰到让人干瞪眼的情况。 比如,存储过程中有三条大概形如这样的语句执行得很慢: select a,b,sum(x) from T group by a,b where …; select c,d,max(y) from T grou…...
SpringBoot(3)之包结构
根据spring可知道,注解之所以可以使用,是因为通过包扫描器,扫描包,然后才能通过注解开发。 那么springboot需要扫描哪里呢? springboot的默认包扫描器,扫描的是自己所在的包和子包,例子如下 我…...
test2
物理层故障分析 一、传输介质故障 a.主要用途简述 传输介质主要分为 导向传输介质和非导向传输介质。前者包括双绞线(两根铜线并排绞合,距离过远会失真)、同轴电缆(铜质芯线屏蔽层,抗干扰性强,传输距离更…...
LoadRunner安装教程
备注:电脑最好安装有IE浏览器或者360极速版浏览器 一、下载安装包 提前下载安装文件,必须下载。 链接: https://pan.baidu.com/s/1blFiMIJcoE8s3uVhAxdzdA?pwdqhpt 提取码: qhpt 包含的文件有: 二、安装loadrunner 注意,以…...
VHDL语言基础-Testbech
目录 VHDL仿真概述: 基本结构: VHDL一般仿真过程: 仿真测试平台文件: 编写测试平台文件的语言: 一个测试平台文件的基本结构如下: 测试平台文件包含的基本语句: 产生激励信号的方式: 时钟信号: 复位信号: 周期信性信号: 使用延迟DELAYD: 一般的激励信号…...
机器学习基础总结
一,机器学习系统分类 机器学习系统分为三个类别,如下图所示: 二,如何处理数据中的缺失值 可以分为以下 2 种情况: 缺失值较多:直接舍弃该列特征,否则可能会带来较大噪声,从而对结果造成不良影…...
linux的三权分立设计思路和用户创建(安全管理员、系统管理员和审计管理员)
目录 一、三权分立设计思路 1、什么是三权 2、三员及权限的理解 3、三员之三权 4、权限划分 5、“三员”职责 6、“三员”配置要求 二、linux三权分立的用户创建 1、系统管理员 2、安全管理员 3、审计管理员 一、三权分立设计思路 1、什么是三权 三权指的是配置、…...
revit中如何创建有坡度的排水沟及基坑?
一、revit中如何创建有坡度的排水沟? 先分享一张有坡度排水沟的族的照片给大家加深一下印象,有了一个粗略的直观认识,小编就来说说做这个族的前期思路吧。 一、前期思路: 1、 用拼接的方式把这个族形状拼出来,先用放样࿰…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
