1. SQL 语句分类
-
数据定义语言
DDL
: 用于定义或修改数据库中的结构,如:创建、修改、删除数据库对象。create
、drop
alter
-
数据操作语言
DML
: 用于添加、删除、更新数据库中的数据。select
、insert
alter
、drop
-
数据控制语言
DCL
: 用于控制访问权限和管理数据库的安全性。grant
、revoke
、commit
2. 存储引擎
存储引擎是数据库管理系统中的关键组件,它决定了数据如何被存储、组织以及检索。
在 MySQL 中创建一个新的数据库时,会在文件系统上为该数据库创建一个对应的目录。
这个数据库通常包含了与该数据库相关的、所有表的数据文件、索引文件、以及其它文件。
不同的存储引擎可能会以不同的方式组织这些文件。
InnoDB
: 默认存储引擎,支持事务处理、行级锁定和外键约束。InnoDB 设计用于最大化数据完整性和高并发环境下的性能。
适用于需要频繁写入操作,和事务支持的应用场景。
MyISAM
: 不支持事务和行级锁定,但提供高速的查询性能和简单的维护管理。MyISAM 使用表级锁定,在执行写操作时,整个表会被锁定。
适合读密集型应用,但在高并发写场景时可能会遇到性能瓶颈。
3. 字符集和校验规则
3.1 数据库默认的字符集和校验规则
查看系统默认字符集:
show variables like 'character_set_database';
查看系统默认校验规则:
show variables like 'collation_database';
utf8mb4
: 字符集名称,表示支持完整的 Unicode 字符集,包括 4 字节的 UTF-8 编码字符。utf8mb4_0900_ai_ci
: 一种基于 Unicode 9.0.0 标准、忽略重音和大小写的校验规则,适用于 utf8mb4 字符集。
3.2 数据库支持的字符集和校验规则
查看数据库支持的字符集和字符集校验规则:
show charset; # 查看数据库支持的字符集
show collation; # 查看数据库支持的字符集校验规则
3.3 校验规则对数据库的影响
- 不区分大小写
create