MySQL总结:
一、函数
- 统计函数:
- count:用于统计行数,可以区分总行数和特定列的非null计数。
- 字符串相关函数:
- CONCAT:用于拼接字符串。
- INSTR:用于查找子串在字符串中的位置。
二、约束
- 主键约束:要求唯一且非空,用于唯一标识表中的每一行。支持复合主键,即可以使用多个列组合作为主键。
- 非空约束:确保列不能存储NULL值。
- 唯一约束:确保列中的所有值都是唯一的,但允许一个NULL值。
- 外键约束:用于在两个表之间建立关联,确保数据的一致性。外键约束必须在支持外键的InnoDB表上使用。
三、索引
- 作用:提升查询速度,通过创建数据结构来加速查找。
- 类型:
- 主键索引:主键列自动创建的主键索引。
- 唯一索引:确保索引列中的所有值都是唯一的。
- 普通索引:最基本的索引类型,没有任何限制。
- 全文索引:用于全文搜索,提高文本字段的查询效率。
- 注意事项:创建和删除索引以及选择合适列上建立索引对性能至关重要。选择索引时要考虑查询条件的频率和字段更新频率。
四、多表查询
- 内连接:返回两个表中满足连接条件的所有行。
- 外连接:包括左外连接和右外连接,返回连接条件满足的行以及不满足连接条件但属于一个表的所有行。
- 自连接:一个表与自身的连接,用于处理表中数据之间的关联。
五、事务
- 概念:保证数据一致性的重要机制。
- 操作:
- 开始事务:标记一个事务的开始。
- 保存点设置:在事务中设置一个保存点,以便在需要时回滚到该点。
- 回滚:撤销事务中已执行的操作,使数据库恢复到事务开始前的状态。
- 提交:将事务中的更改永久保存到数据库中。
- 隔离级别:用于控制事务之间的并发处理,包括脏读、不可重复读和幻读等问题。
六、存储引擎
- InnoDB:支持事务和外键,是MySQL的默认存储引擎。
- MyISAM:快速但不支持事务,适合只读或读多写少的场景。
- Memory:将数据存储在内存中,速度快但数据易丢失,适合临时数据存储。
理解这些概念和特性对于高效管理和维护MySQL数据库至关重要。