MySQL

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

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

一口气教你学会为MySQL数据库更换字符集!

工作时,如果遇到乱码、或是业务扩展需要支持更多字符、或是系统迁移和升级,我们不可避免地遇到修改数据库字符集的需要。该这么进行修改呢? 前面我们在《如何对默认字符集和校对规则进行修改?》已经很清楚地说了,ALTER DATABASE 或 ALTER TABLE 命令对已经存在的数据没有作用,只对新创建的表或记录生效。如果想修改已存在数据的字符集,需要先将数据导出,经过适当的调整后,再重新导入。那么解

MySQL恢复数据库

恢复前的准备开始恢复数据库之前,有几件事情需要先确认好:1. 确保 MySQL 服务正常运行:恢复数据前,请确认 MySQL 服务器是否已启动。2. 检查备份文件:确认你的备份文件(通常是 `.sql` 或 `.sql.gz` 格式)是完整且可读的。强烈建议在正式恢复前,先在测试环境验证备份文件的完整性。3. 关注权限问题:执行恢复操作的用户需要有足够的数据库权

MySQL 触发器修改与删除

一、删除触发器 (DROP TRIGGER)基本语法:DROPTRIGGER[IFEXISTS][database_name.]trigger_name;参数说明:`IF EXISTS`: 可选,避免因触发器不存在而报错`database_name`: 可选,指定数据库名,默认为当前数据库`trigge

MySQL 交叉连接(CROSS JOIN)

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

数据库事务 (Transaction)

事务是数据库管理系统中的一个核心机制,它是一个操作序列,包含了一组数据库操作命令(如SELECT, INSERT, UPDATE, DELETE)。事务将这些命令视为一个不可分割的整体,要么全部成功执行,要么全部不执行。它是数据库进行并发控制和故障恢复的最小逻辑工作单元。应用场景:特别适用于多用户同时操作、对数据准确性要求极高的系统,例如:航空公司的订票系统银行、保险公司证

MySQL存储引擎选择指南

主要存储引擎特性对比特性MyISAMInnoDBMEMORY存储限制有支持有事务安全不支持支持不支持锁机制表锁行锁表锁B树索引支持支持支持哈希索引不支持不支持支持全文索引支持不支持不支持集群索引不支持支持不支持数据缓存-支持支持索引缓存支持支持支持数据可压缩支持不支持不支持空间使用低高N/A内存使用低高中等批量插入速度高低高支持外键不支持支持不支持各存储引擎适用场景&nbs

MySQL 唯一约束

唯一约束核心特性1. 唯一性保证:确保列中所有值都是唯一的2. NULL值处理:允许NULL值,但只能有一个NULL(因为NULL不等于NULL)3. 多列约束:一个表可以有多个唯一约束4. 索引自动创建:MySQL会自动为唯一约束列创建唯一索引5. 与主键区别: 主键不允许NULL,唯一约束允许 每表只能有一个主

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

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

MySQL 触发器创建

一、触发器创建语法基本语法:CREATETRIGGERtrigger_nametrigger_timetrigger_eventONtable_nameFOREACHROWtrigger_body参数详解:参数说明trigger_name触发器名称,在当前数据库中必须唯一trigger_time触