MySQL

MySQL 外键约束

外键约束核心概念基本定义主表(父表):被引用的表,包含主键从表(子表):包含外键的表,引用主表的主键参照完整性:确保外键值必须匹配主表中存在的值或为NULL外键约束规则1. 主表必须存在且已定义主键2. 外键列和主键列数据类型必须兼容3. 外键列允许NULL值(除非明确设置NOT NULL)4. 外键列和主键列的数目必须相同5. InnoDB存储引擎支持外键(MyISAM不

MySQL 算术运算符

算术运算符是 SQL 中最基础且最常用的运算符类型,用于执行各种数学计算。MySQL 提供了完整的算术运算符集合,可以满足各种数值计算需求。一、MySQL 支持的算术运算符运算符名称描述示例结果+加法计算两个或多个值的和SELECT 5+3;8-减法从一个值中减去另一个值SELECT 10-4;6*乘法计算两个或多个值的乘积SELECT 6*7;42/除法计算两个值的商SE

MySQL如何设置日志输出方式

MySQL的普通查询日志和慢查询日志支持两种输出方式:写入日志文件或写入数据表(位于mysql系统库中)。启用相应日志功能后,可配置输出至文件、数据表,或同时输出到两者。打开客户端命令行,先查看日志输出类型:SHOWVARIABLESLIKE'%log_out%';结果:日志输出类型是FILE.要想在运行时更改日志输出目标,可以在启动服务器时,设

MySQL 检查约束 (CHECK)

检查约束核心特性1. 数据验证:确保列值满足指定条件2. 表达式支持:可使用各种SQL表达式3. 多列验证:支持基于表的约束验证多列关系4. 版本支持: MySQL 8.0.16+ 原生支持并强制执行CHECK约束 早期版本会解析但不强制执行检查约束操作详解创建表时定义检查约束单列检查约束:CREATE

MySQL 数据插入操作

基本语法形式MySQL 提供了两种主要的 INSERT 语句语法形式:1. INSERT...VALUES 语句INSERT INTO <表名> [<列名1>, <列名2>, ...]VALUES (值1, 值2, ...), (值1, 值2, ...), ...;2. INSERT...SET 语句INSERT INTO <表名>SET

MySQL 存储程序中的变量

一、变量的定义 (DECLARE)语法:DECLARE var_name [, var_name2, ...] data_type [DEFAULT default_value];关键点:位置要求:`DECLARE` 语句必须放在 `BEGIN ... END` 块的开头,并且在所有其他可执行语句之前。默认值:如果未使用 `DEFAULT` 子句,变量的初始值为 `NULL`。作用域:

MySQL 创建存储过程

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

MySQL 事务的语法和流程

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

最基础的MySQL物理备份形式 - 冷备份

在《MySQL 备份类型》一节曾提到过过冷备份,冷备份(即离线备份)是MySQL中最简单的备份方式,操作时仅需将数据库的物理文件完整复制至其他存储路径即可完成。冷备份通过直接复制数据库的物理文件实现,操作简单且能保证备份完整性,恢复速度较快。但进行备份时必须停止MySQL服务器,这将导致服务中断、用户无法访问,因此通常仅适用于非核心或可容忍停机的业务场景。冷备份的优点如下:优点缺点备份与恢复简便高

MySQL日志系统全面解析

一、四大核心日志对比日志类型主要用途默认状态性能影响文本/二进制关键配置参数错误日志记录启动、关闭、运行错误信息开启低文本log_error,log_warnings二进制日志数据复制、Point-in-Time恢复关闭中-高二进制log_bin,binlog_format通用查询日志记录所有客户端连接和SQL操作关闭高文本general_log,&