MySQL

MySQL死锁:从原理到预防之道

什么是死锁?死锁是指两个或两个以上的事务在执行过程中,因争夺锁资源而造成的一种相互等待的现象,若无外力干预,这些事务都将无法进行下去。死锁的产生必须满足以下四个条件:条件名称描述简单解释互斥条件(Mutual Exclusion)一个资源每次只能被一个事务持有。锁是独占的,不能共享。请求与保持条件(Hold and Wait)一个事务在持有至少一个资源的同时,又请求新的资源(该资源已被其他事务持有

MySQL 创建存储过程

一、 为什么使用存储过程?简化操作:将多步操作封装成一个命令。提高效率:一次编译,多次运行,减少网络传输。减少错误:集中处理业务逻辑,避免在应用程序中重复编写和出错。二、 创建存储过程的基本语法CREATE PROCEDURE <过程名> ( [过程参数[,…] ] )BEGIN <过程体>END;1.

MySQL json_merge() 函数:JSON合并

在MySQL中,json_merge(json_doc, json_doc, ...) 函数用于合并多个JSON文档,即返回合并后的JSON文档。其语法格式如下:json_merge(json_doc,json_doc,...)--返回合并后的JSON文档json_merge()函数是一个JSON函数,用于将多个JSON文档合并为一个JSON文档。值得注意的是,

MySQL nullif() 函数:比较两个表达式

在MySQL中,nullif(expr1, expr2) 函数用于比较两个表达式,即如果expr1等于expr2则返回NULL,否则返回expr1。其语法格式如下:nullif(expr1,expr2)--比较两个表达式nullif()函数是一个流程控制函数,用于在两个表达式相等时返回NULL,避免重复值的出现。值得注意的是,如果expr1等于expr2,则返回NULL;如

MySQL dayofmonth() 函数:获取日期在月份中的天数

在MySQL中,dayofmonth(date) 函数用于获取日期在月份中的天数,即返回日期在当月中的第几天(1-31)。其语法格式如下:dayofmonth(date)--返回日期在月份中的天数dayofmonth()函数根据日期参数返回对应的天数,返回值为1到31的整数。值得注意的是,dayofmonth(NULL) 的返回值是NULL;对于非日期格式的字符串或无效日期,dayof

MySQL abs()函数:求绝对值

在MySQL中,abs(x)函数被称为绝对值函数,其功能是返回x的绝对值。其语法格式如下:abs(x)--返回x的绝对值对于一个正数来说,其绝对值是它本身;对于一个负数来说,其绝对值是它的相反数;对于0来说,其绝对值是0。下面,我们通过abs()函数分别求取1、-3.14和0的绝对值:selectabs(1);selectabs(-3.14);&n

MySQL 查看用户权限

MySQL 提供了两种主要方法来查看用户权限,适用于不同场景。方法一:使用 `SHOW GRANTS` 语句(推荐首选)这是最常用、最直观的方法,直接显示授予用户的权限语句。语法:SHOWGRANTS[FOR'username'@'hostname'];使用场景:1. 查看当前用户权限:不指定 `FOR`

MySQL 查看触发器

一、SHOW TRIGGERS 语句基本语法:SHOW TRIGGERS;常用选项:查看指定数据库的触发器SHOWTRIGGERSFROMdatabase_name;查看指定模式的触发器(模糊匹配)SHOWTRIGGERSLIKE'pattern';

MySQL怎么操作多表关联更新?

什么是多表关联更新?在一个执行SQL的UPDATE 语句中,基于另一个表或多个表中的数据,来更新目标表中的数据称之为多表关联更新。很难理解?想象一下,你有一个 orders 表(订单表)和一个 customers 表(客户表)。现在需要将所有来自“上海”的客户的订单状态更新为“优先处理”。如果没有多表关联更新,你可能需要:1.先执行一个 SELECT 查询,找出所有上海客户的ID。2.再根据这些I

MySQL 字符串类型全面解析

字符串类型分类与比较类型描述最大长度存储方式特点CHAR(M)固定长度字符串255字符定长(M字节)不足长度用空格填充,检索时去除尾部空格VARCHAR(M)可变长度字符串65,535字符变长(L+1字节)仅占用实际需要空间+1字节(记录长度),保留尾部空格TINYTEXT短文本字符串255字符L+1字节专门存储较小文本,不删除尾部空格TEXT常规文本字符串65,535字符L+2字节适