【MySQL】库的操作(数据库的创建、查看、修改 和 备份)

文章目录

  • 一、创建数据库
    • [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,如果查出某个用户不是你正常登陆的,很有可能你
的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。


相关推荐
yuzhiboyouye1 小时前
原生 SQL 常用核心语句基础语法
数据库·sql·oracle
我是一颗柠檬1 小时前
【Redis】事务与Lua脚本Day7(2026年)
数据库·redis·后端·lua·database
流星白龙1 小时前
【MySQL高阶】14.MySQL存储结构
android·数据库·mysql
流星白龙1 小时前
【MySQL高阶】15.MySQL存储结构,页结构
android·mysql·adb
一只fish1 小时前
Oracle官方文档翻译《Database Concepts 26ai》第18章-进程架构
数据库·oracle
流星白龙2 小时前
【MySQL高阶】17.InnoDB 内存结构
数据库·mysql·adb
刘欣的博客2 小时前
LiteNetLib WinForm Demo
数据库·microsoft·c#
Lyyaoo.2 小时前
【MySQL】索引
数据库·mysql
i220818 Faiz Ul2 小时前
民谣网站|基于Springboot的民谣网站管理系统(源码+数据库+文档)
java·数据库·spring boot·后端·论文·毕设·民谣网站