MySQL

MySQL IS NULL 和 IS NOT NULL 查询

基本概念在 MySQL 中,`NULL` 表示缺失或未知的值,它与空字符串 `''` 和数值 `0` 有本质区别。`IS NULL` 和 `IS NOT NULL` 是专门用于判断 `NULL` 值的关键字。基本语法查询字段为 NULL 的记录SELECT 字段列表 FROM 表名 WHERE 字段名 IS NULL;查询字段不为 NULL 的记录SELEC

MySQL 存储程序中的变量

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

MySQL 事务的语法和流程

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

不遵循数据库三大范式的后果与影响

一、数据冗余:存储空间浪费问题表现: 相同数据在多个位置重复存储 更新时需要同步修改多处,易遗漏 案例: 未规范化的订单表(客户信息重复)CREATETABLEorders(order_idIN

MySQL二进制日志详解

一、二进制日志配置与管理1. 查看二进制日志状态检查二进制日志是否开启SHOWVARIABLESLIKE'log_bin';查看详细的二进制日志配置SHOWVARIABLESLIKE'%log_bin%';查看当前二进制日志格式SHOW

MySQL HAVING 子句

基本语法SELECT 列1, 列2, ..., 聚合函数(列)FROM 表名[WHERE 条件]GROUP BY 分组列HAVING 分组后条件;HAVING 与 WHERE 的核心区别特性WHERE 子句HAVING 子句执行时机在分组前过滤数据在分组后过滤数据可使用聚合函数不可以可以可使用字段别名不可以可以操作对象原始表数据分组后的结果集性能影响先过滤可减少

默认值约束详解

默认值约束是数据库设计中一个重要的概念,它允许为表中的列指定一个默认值,当插入新记录时如果没有为该列提供值,系统会自动使用这个默认值。主要特点1. 自动填充:当插入操作未指定列值时自动使用默认值2. 数据完整性:特别适用于已设置非空约束的列,确保数据有效性3. 灵活性:可以在创建表时或之后添加、修改和删除使用方法创建表时设置默认值CREATETABL

MySQL 系统变量

变量类型概述MySQL 变量分为两大类:1. 系统变量:以 `@@` 开头 全局变量 (GLOBAL VARIABLES):影响整个MySQL服务 会话变量 (SESSION VARIABLES):影响单个客户端连接2. 用户自定义变量:以 `@` 开头系统变量查看方法&nbsp

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

什么是多表关联更新?在一个执行SQL的UPDATE语句中,基于另一个表或多个表中的数据,来更新目标表中的数据称之为多表关联更新。很难理解?想象一下,你有一个orders表(订单表)和一个customers表(客户表)。现在需要将所有来自“上海”的客户的订单状态更新为“优先处理”。

MySQL 唯一约束

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