MySQL数据库(库)操作精讲:从入门到精通

🏷️ 365betvip 📅 2025-12-24 18:24:53 👤 admin 👀 733 ⭐ 847
MySQL数据库(库)操作精讲:从入门到精通

在这里插入图片描述

—数据库专栏—

1. 数据库操作目标与基础学习本节内容,我们的主要目标是掌握创建、查看、修改和删除数据库。在此基础上,我们还需要深入理解 字符集编码 和 排序规则 的概念。

2. 查看现有数据库在进行任何数据库操作之前,通常需要先查看当前系统中已存在的数据库列表。

2.1 SHOW DATABASES 语法使用 SHOW DATABASES 命令可以列出所有数据库。

代码块 1:查看所有数据库

代码语言:javascript复制show databases; 要点提示: databases 是复数形式。该关键字是大小写不敏感的。

在这里插入图片描述3. 创建数据库(CREATE DATABASE)创建数据库是数据库管理的第一步。我们可以使用 CREATE DATABASE 或 CREATE SCHEMA 命令。

3.1 CREATE DATABASE 语法详解创建数据库的基本语法如下:

代码语言:javascript复制1 CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_option]

2

3 create_option: [DEFAULT] {

4 CHARACTER SET [=] charset_name

5 | COLLATE [=] collation_name

6 | ENCRYPTION [=] {'Y' | 'N'}

7}其中:

CREATE DATABASE | SCHEMA: 大写部分表示关键字。| 表示任选其中一个。db_name: 表示自定义的数据库名。[IF NOT EXISTS]: 中括号表示是可选项。{...}: 大插号表示必须选。

在这里插入图片描述3.2 创建参数:字符集与排序规则在创建数据库时,可以指定以下重要的可选参数:

参数名称

描述

CHARACTER SET

指定数据库采用的字符集编码

COLLATE

指定数据库字符集的校验(排序)规则

ENCRYPTION

数据库是否加密,这是 MySQL 8.0.16 中引入的新选项

3.3 数据库创建实战示例代码块 2:基础数据库创建

创建一个名为 test001 的数据库:

代码语言:javascript复制mysql> create database test001;

Query OK, 1 row affected (0.01 sec)代码块 3:条件性数据库创建

创建一个名为 testdb 的数据库,如果它不存在则创建 (IF NOT EXISTS):

代码语言:javascript复制mysql> create database if not exists testdb;

Query OK, 1 row affected (0.01 sec)在这里插入图片描述 数据库创建成功后,MySQL 会在数据目录下生成一个与数据库同名的目录,用于保存数据库中的所有数据。

在这里插入图片描述3.4 查看创建过程中的警告信息如果重复运行 代码块 3 的语句,系统将不会报错,但会产生一个警告:

代码块 4:查看警告信息

代码语言:javascript复制mysql> create database if not exists testdb;

Query OK, 1 row affected, 1 warning (0.01 sec)

mysql> show warnings;执行 SHOW WARNINGS; 后,可以看到警告信息:

Level

Code

Message

Note

1007

Can’t create database ‘testdb’; database exists

这提示名为 testdb 的数据库已存在。

在这里插入图片描述4. 字符集编码与校验规则深度解析字符集编码(Character Set)和校验规则(Collation)是影响数据库数据存储、检索、和比较的关键因素。

4.1 查看数据库支持的字符集编码要查看当前数据库系统支持的所有字符集编码,可以使用 SHOW CHARSET 命令。

代码块 5:查看字符集

代码语言:javascript复制show charset;默认值: MySQL 8.0 默认的字符集编码是 utf8mb4,而 MySQL 5.7 默认的字符集是 latin1。

在这里插入图片描述4.2 查看数据库支持的排序规则要查看当前数据库系统支持的所有排序规则,可以使用 SHOW COLLATION 命令。

代码块 6:查看排序规则

代码语言:javascript复制show collation;在这里插入图片描述默认值: MySQL 8.0 默认的排序规则是 utf8mb4_0900_ai_ci,MySQL 5.7 默认排序规则是 utf8mb4_general_ci。此处由于列出篇幅过长,截图不完整。4.3 排序规则(Collation)对数据库的影响排序规则决定了字符串的比较和排序方式。

utf8mb4 编码是对 Unicode 字符集的一种实现,用 1 到 4 个字节表示一个字符,可以表示世界上几乎所有的字符。utf8mb4_0900_ai_ci 是 MySQL 8.0 引入的新规则,它基于 UCA 9.0.0 算法。敏感/不敏感规则缩写: ai: Accent-insensitive 的缩写,表示口音不敏感。ci: Case-insensitive 的缩写,表示大小写不敏感。as: Accent-sensitive 的缩写,表示口音敏感。cs: Case-sensitive 的缩写,表示大小写敏感。bin: 表示二进制。4.4 查看系统默认字符集与排序规则我们可以通过查看系统变量来了解当前的默认设置。

代码块 7:查看系统默认字符集

代码语言:javascript复制mysql> show variables like '%character%';Variable_name

Value

character_set_client

utf8mb4

character_set_connection

utf8mb4

character_set_database

utf8mb4

character_set_server

utf8mb4

在这里插入图片描述代码块 8:查看系统默认排序规则

代码语言:javascript复制mysql> show variables like '%collation%';Variable_name

Value

collation_connection

utf8mb4_0900_ai_ci

collation_database

utf8mb4_0900_ai_ci

collation_server

utf8mb4_0900_ai_ci

在这里插入图片描述4.5 创建数据库时指定字符集和校验规则在创建数据库时,最佳实践是显式指定字符集和排序规则。

代码块 9:指定字符集与排序规则创建数据库

代码语言:javascript复制create database if not exists java01

character set utf8mb4 collate utf8mb4_0900_ai_ci;5. 查看数据库创建语句 (SHOW CREATE DATABASE)创建完成后,可以使用 SHOW CREATE DATABASE 命令查看数据库的精确创建语句。

5.1 SHOW CREATE DATABASE 语法代码语言:javascript复制show create database db_name5.2 示例查看我们刚刚创建的 java01 数据库的创建语句:

代码块 10:查看创建语句

代码语言:javascript复制mysql> show create database java01;示例输出(部分):

代码语言:javascript复制Database | Create Database

-----------------------------------------------------------------------------------------------------

java01 | CREATE DATABASE java01 /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */在这里插入图片描述 注意: 数据库名字的反引号 ` 是为了防止使用的数据库名刚好是关键字。/*!40100 DEFAULT... */ 这样的格式并不是注释,它表示当 MySQL 版本大于 4.01 和 8.0.16 时,会分别执行对应的语句。

6. 修改数据库(ALTER DATABASE)对数据库的修改操作主要是修改其字符集和校验规则。

6.1 ALTER DATABASE 语法代码语言:javascript复制1 ALTER DATABASE | SCHEMA [db_name]

2 alter_option ...

3 alter_option: {

4 [DEFAULT] CHARACTER SET [=] charset_name

5 | [DEFAULT] COLLATE [=] collation_name

6 | [DEFAULT] ENCRYPTION [=] {'Y' | 'N'}

7 | READ ONLY [=] {DEFAULT |0|1}

8}6.2 修改数据库字符集示例将数据库 test001 的字符集修改为 gbk:

代码块 11:修改字符集

代码语言:javascript复制mysql> alter database test001 character set gbk;

Query OK, 1 row affected (0.01 sec)

mysql> show create database test001;修改后的结果(部分):

代码语言:javascript复制CREATE DATABASE test001 /*!40100 DEFAULT CHARACTER SET gbk */ /*!80016 DEFAULT ENCRYPTION='N' */在这里插入图片描述7. 删除数据库(DROP DATABASE)删除数据库是一个非常危险的操作,操作前务必谨慎。

7.1 DROP DATABASE 语法与示例删除数据库的语法如下:

代码语言:javascript复制DROP {DATABASE | SCHEMA} [IF EXISTS] db_name代码块 12:删除数据库

代码语言:javascript复制mysql> drop database testdb;

Query OK, 0 rows affected (0.04 sec)在这里插入图片描述7.2 ⚠️ 注意事项:删除操作的风险危险操作: 不要随意删除数据库。物理删除: 删除数据库之后,数据库对应的目录及其中的所有文件也会被删除。不可见: 删除后,使用 show databases; 语句将无法再查看该数据库。⭐ 总结与思考本文详细梳理了MySQL数据库的 CRUD (Create, Retrieve, Update, Delete) 基础操作,并深入探讨了字符集与排序规则对数据存储和检索的影响。其中,utf8mb4 字符集和 utf8mb4_0900_ai_ci 排序规则是 MySQL 8.0 的默认推荐设置。

最后,请思考一个问题: 如果你创建了一个使用 gbk 字符集的数据库,并在其中插入了 Emoji 字符(GBK 不支持),MySQL 会如何处理这个数据?欢迎在评论区留下你的见解!

相关推荐 ✨