文章目录
- 一、创建数据库
-
- [1. 创建数据库的语法](#1. 创建数据库的语法)
- [2. 字符集和校验规则的介绍](#2. 字符集和校验规则的介绍)
- [3. 创建数据库语法 的使用](#3. 创建数据库语法 的使用)
- [二、查看数据库 和 数据库的创建语句](#二、查看数据库 和 数据库的创建语句)
-
- [1. 查看数据库 和 显示数据库创建语句 的语法](#1. 查看数据库 和 显示数据库创建语句 的语法)
- [2. 查看数据库 和 数据库的创建语句](#2. 查看数据库 和 数据库的创建语句)
- [三、修改 或 删除数据库](#三、修改 或 删除数据库)
-
- [1. 修改数据库](#1. 修改数据库)
- [2. 删除数据库](#2. 删除数据库)
- [四、数据库的备份 与 恢复](#四、数据库的备份 与 恢复)
-
- [1. 数据库的备份 与 恢复](#1. 数据库的备份 与 恢复)
- [2. 数据表的备份 与 恢复](#2. 数据表的备份 与 恢复)
- 五、查看数据库的连接情况
一、创建数据库
1. 创建数据库的语法
(1)创建数据库的 语法:
bash
create database [IF NOT EXISTS] db_name
[CHARACTER SET 字符集名]
[COLLATE 检验规则];
- 是可选项
- CHARACTER SET: 指定数据库采用的字符集
- COLLATE: 指定数据库字符集的校验规则
(2)精简版语法:
bash
create database db_name
- 当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8mb4,校验规则是:utf8mb4_0900_ai_ci
2. 字符集和校验规则的介绍
- 查看系统支持的字符集 以及 校验规则
bash
# 查看系统支持的字符集
show variables like 'character_set_database';
# 查看系统支持的校验规则
show variables like 'collation_database';

MySQL8.0的默认字符集是 utf8mb4,该字符集的默认校验规则是 utf8mb4_0900_ai_ci

(1)不同的字符集支持的语言不同。 比如 utf8mb4 几乎支持所有语言和emoji,并且完整支持中文和特殊字符;
latin1仅支持英文
(2)校验规则对字符集的影响
-
创建一个数据库,校验规则使用 utf8mb4_unicode_ci,字符解析就 不区分大小写
-
创建一个数据库,校验规则使用 utf8mb4_bin,字符解析 严格区分大小写
3. 创建数据库语法 的使用
- 创建名为 db1 的数据库
bash
create database db1;
当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8mb4,校验规则是:utf8mb4_0900_ai_ci
- 创建一个使用utf8mb4字符集的 db2 数据库
bash
# 第一种写法
create database db3 character set utf8mb4;
# 第二种写法
create database db2 charset=utf8mb4;
当我们创建数据库没有指定校验规则时,系统自动使用字符集 的默认校验规则,字符集 utf8mb4的默认校验规则是 utf8mb4_0900_ai_ci
- 创建一个使用 utf8mb4字符集,并带校对规则 utf8mb4_0900_ai_ci 的数据库。
bash
# 第一种写法
create database db3 character set utf8mb4 collate utf8mb4_0900_ai_ci;
# 第二种写法
create database db3 charset=utf8mb4 collate utf8mb4_0900_ai_ci;
二、查看数据库 和 数据库的创建语句
1. 查看数据库 和 显示数据库创建语句 的语法
- 查看数据库的语法:
bash
show databases;
- 显示创建语句的语法:
bash
show create database 数据库名;
2. 查看数据库 和 数据库的创建语句

三、修改 或 删除数据库
1. 修改数据库
- 语法:
bash
alter database test_alter
[CHARACTER SET 字符集名]
[COLLATE 检验规则];
- 对数据库的修改主要指的是修改数据库的字符集,校验规则
实例: 将 db3 数据库字符集改成 gbk
bash
alter database mytest character set gbk;

2. 删除数据库
- 语法:
bash
drop database [IF EXISTS] db_ name;
执行删除数据库的结果:对应的数据库文件夹被删除,级联删除,文件夹里面的数据表全部被删

四、数据库的备份 与 恢复
1. 数据库的备份 与 恢复
- 数据库的备份:
bash
# 备份单个数据库(包含结构和数据)
mysqldump -u root -p database_name > database_backup.sql
# 备份多个数据库
mysqldump -u root -p --databases db1 db2 db3 > multi_db_backup.sql
# 备份所有数据库
mysqldump -u root -p --all-databases > all_db_backup.sql
- 数据库的恢复
bash
# 恢复单个数据库
mysql -u root -p database_name < database_backup.sql
# 或者使用source命令(在mysql客户端内)
mysql> CREATE DATABASE database_name;
mysql> USE database_name;
mysql> source /path/to/database_backup.sql;
2. 数据表的备份 与 恢复
- 数据表的备份:
bash
# 备份单个表(结构和数据)
mysqldump -u root -p database_name table_name > table_backup.sql
# 备份多个表
mysqldump -u root -p database_name table1 table2 table3 > tables_backup.sql
- 数据表的恢复:
bash
# 恢复单个表
mysql -u root -p database_name < table_backup.sql
五、查看数据库的连接情况
- 语法:
bash
show processlist;
- 示例:
bash
mysql> show processlist;
+----+-----------------+-----------+------+---------+---------+------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-----------------+-----------+------+---------+---------+------------------------+------------------+
| 5 | event_scheduler | localhost | NULL | Daemon | 2946932 | Waiting on empty queue | NULL |
| 85 | root | localhost | NULL | Query | 0 | init | show processlist |
+----+-----------------+-----------+------+---------+---------+------------------------+------------------+
可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你
的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。