首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MySQL数据库(库)操作精讲:从入门到精通

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

作者头像
想不明白的过度思考者
发布2025-12-21 08:54:51
发布2025-12-21 08:54:51
230
举报
文章被收录于专栏:OverThinker的专栏OverThinker的专栏
在这里插入图片描述
在这里插入图片描述

—数据库专栏—


1. 数据库操作目标与基础

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


2. 查看现有数据库

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

2.1 SHOW DATABASES 语法

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

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

代码语言:javascript
复制
show databases;

要点提示: databases 是复数形式。该关键字是大小写不敏感的。

在这里插入图片描述
在这里插入图片描述

3. 创建数据库(CREATE DATABASE)

创建数据库是数据库管理的第一步。我们可以使用 CREATE DATABASECREATE 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_name
5.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 会如何处理这个数据?欢迎在评论区留下你的见解!


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-12-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 数据库操作目标与基础
  • 2. 查看现有数据库
    • 2.1 SHOW DATABASES 语法
  • 3. 创建数据库(CREATE DATABASE)
    • 3.1 CREATE DATABASE 语法详解
    • 3.2 创建参数:字符集与排序规则
    • 3.3 数据库创建实战示例
    • 3.4 查看创建过程中的警告信息
  • 4. 字符集编码与校验规则深度解析
    • 4.1 查看数据库支持的字符集编码
    • 4.2 查看数据库支持的排序规则
    • 4.3 排序规则(Collation)对数据库的影响
    • 4.4 查看系统默认字符集与排序规则
    • 4.5 创建数据库时指定字符集和校验规则
  • 5. 查看数据库创建语句 (SHOW CREATE DATABASE)
    • 5.1 SHOW CREATE DATABASE 语法
    • 5.2 示例
  • 6. 修改数据库(ALTER DATABASE)
    • 6.1 ALTER DATABASE 语法
    • 6.2 修改数据库字符集示例
  • 7. 删除数据库(DROP DATABASE)
    • 7.1 DROP DATABASE 语法与示例
    • 7.2 ⚠️ 注意事项:删除操作的风险
  • ⭐ 总结与思考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档