MySQL

MySQL 事务的语法和流程

一、MySQL 存储引擎对事务的支持InnoDB:默认且最常用的存储引擎,支持事务。其事务实现主要依赖于 UNDO 日志和 REDO 日志。MyISAM:不支持事务。强调高速插入和检索,但不提供原子性、一致性等事务保障。BDB:支持事务,但现在已很少使用。二、核心日志机制1. UNDO Log (回滚日志)作用:用于事务回滚和多版本并发控制 (MVCC)。它记录

MySQL aes_encrypt() 函数:使用AES算法加密数据

在MySQL中,aes_encrypt(str, key_str) 函数用于使用AES算法加密数据,即返回使用指定密钥对字符串进行AES加密后的二进制数据。其语法格式如下:aes_encrypt(str,key_str)--返回AES加密后的二进制数据aes_encrypt()函数是一个加密函数,使用AES(高级加密标准)算法对数据进行加密,返回二进制格式的加密结果。值得注

MySQL8.0+ row_number() 函数:行添加序号

在MySQL中,row_number() 函数用于为结果集中的行分配连续序号,即返回每行在分区内的连续编号。其语法格式如下:row_number()over(partitionbyexprorderbyexpr)--返回行的连续序号row_number()函数是一个窗口函数,用于为结果集中的每一行分配一

MySQL now() 函数:获取当前日期时间

在MySQL中,now() 函数用于获取当前日期时间,即返回系统当前的日期和时间值。其语法格式如下:now()--返回当前日期时间now()函数不需要任何参数,直接返回当前的日期时间值(格式:YYYY-MM-DD HH:MM:SS)。值得注意的是,now() 总是返回当前的系统日期时间,不受其他参数影响。下面,我们将使用now()函数获取当前日期时间:selectnow()

MySQL concat() 函数:字符串拼接

在MySQL中,concat(str1, str2, ...) 函数用于连接多个字符串,即返回所有参数字符串连接后的结果。其语法格式如下:concat(str1,str2,...)--返回连接后的字符串concat()函数根据多个参数字符串将它们按顺序连接成一个新的字符串。值得注意的是,concat(NULL, str) 的返回值是NULL;而concat(数字

MySQL二进制日志详解与数据恢复

一、二进制日志基础查看二进制日志配置查看二进制日志状态SHOWVARIABLESLIKE'log_bin%';查看当前二进制日志文件SHOWMASTERSTATUS;查看所有二进制日志文件SHOWBINARYLOGS;&nbsp

如何理解MySQL里的字符集和校对规则?

校对规则(Collation)是字符集内部定义的字符比较与排序规则。一个字符集可对应多种校对规则,且拥有一个默认规则。字符集与校对规则彼此依存,共同作用:字符集决定数据存储编码,校对规则决定数据比较逻辑。在字符集与校对规则的设计上,不同数据库存在理念差异。SQL Server 等数据库将二者耦合,选择字符集即隐含确定了其默认的校对规则。而 MySQL 则采用了显式解耦的设计,允许对字符集和校对规则

MySQL 修改存储过程

一、 `ALTER PROCEDURE` 的语法与用途1. 基本语法ALTER PROCEDURE procedure_name [characteristic ...]2. 可修改的特征(characteristic)这些特征主要用于提供元数据信息,帮助 MySQL 和开发者理解存储过程的行为,某些特征(如 `SQL SECURITY`)也具有实际的安全影响。

MySQL 交叉连接(CROSS JOIN)

基本概念1. 笛卡尔积数学概念:两个集合X和Y的笛卡尔积是所有可能有序对(x,y)的集合数据库应用:两个表的每一行都与另一个表的每一行组合2. 交叉连接特点返回左表与右表的完全组合不使用任何连接条件结果集行数 = 表1行数 × 表2行数语法格式标准语法SELECT 字段列表 FROM 表1 CROSS

MySQL 约束

MySQL 约束是确保数据库中数据完整性和有效性的重要机制。您已经很好地总结了 MySQL 支持的 6 种主要约束,下面我将进一步补充和扩展这些约束的相关知识:1. 主键约束 (PRIMARY KEY)每个表只能有一个主键主键列不能包含 NULL 值主键可以由单个列或多个列组合构成(复合主键)自动创建聚集索引CRE