【MySQL】进阶知识详解
目录
- 引言
- 一、约束:数据完整性的守护者
- 1.1 约束的作用与分类
- 1.2 约束的语法详解
- 非空约束
- 唯一约束
- 主键约束
- 外键约束
- 1.3 约束实战案例
- 二、数据库设计:表关系的艺术
- 2.1 三种核心表关系
- 一对多(部门-员工)
- 多对多(学生-课程)
- 一对一(用户-详情)
- 三、多表查询:数据关联的桥梁
- 3.1 连接查询
- 内连接(INNER JOIN)
- 外连接
- 3.2 子查询的三种形式
- 四、事务:数据安全的保障
- 4.1 事务的ACID特性
- 4.2 事务控制语句
- 4.3 转账案例演示
- 结语
引言
在掌握了MySQL基础操作后,进阶知识的学习能帮助我们更好地设计数据库结构、保证数据完整性,以及处理复杂的数据查询需求。本文将深入讲解MySQL的约束机制、表关系设计原则、多表查询技巧和事务管理,助您提升数据库管理能力。
一、约束:数据完整性的守护者
1.1 约束的作用与分类
约束是作用于表中列的规则,用于限制无效数据的插入,主要分为六类:
约束类型 | 关键字 | 作用描述 |
---|---|---|
非空约束 | NOT NULL | 保证列值不为NULL |
唯一约束 | UNIQUE | 保证列值唯一 |
主键约束 | PRIMARY KEY | 唯一标识记录,非空且唯一 |
检查约束 | CHECK | 保证列值满足条件(MySQL不支持) |
默认约束 | DEFAULT | 未指定值时使用默认值 |
外键约束 | FOREIGN KEY | 建立表间关联,保证数据一致性 |
1.2 约束的语法详解
非空约束
-- 创建表时添加
CREATE TABLE users(id INT NOT NULL,name VARCHAR(20) NOT NULL
);-- 修改表添加
ALTER TABLE users MODIFY name VARCHAR(20) NOT NULL;
唯一约束
-- 创建表时添加
CREATE TABLE employees(emp_id INT UNIQUE,email VARCHAR(50) UNIQUE
);-- 修改表添加
ALTER TABLE employees ADD UNIQUE(email);
主键约束
-- 自增主键示例
CREATE TABLE orders(order_id INT PRIMARY KEY AUTO_INCREMENT,product_name VARCHAR(50)
);
外键约束
CREATE TABLE orders(order_id INT PRIMARY KEY,user_id INT,