MySQL库的操作

目录

[1 查看数据库](#1 查看数据库)

[1.1 查看当前处在数据库](#1.1 查看当前处在数据库)

[1.2 查看连接情况](#1.2 查看连接情况)

[2 创建数据库](#2 创建数据库)

[2.1 使用数据库](#2.1 使用数据库)

[3 字符集和校验规则](#3 字符集和校验规则)

[3.1 字符集](#3.1 字符集)

[3.2 校验规则](#3.2 校验规则)

[3.3 查看系统字符集以及校验规则](#3.3 查看系统字符集以及校验规则)

[4 删除数据库](#4 删除数据库)

[5 修改数据库](#5 修改数据库)

[6 数据库的备份和恢复](#6 数据库的备份和恢复)

[6.1 备份](#6.1 备份)

[6.2 恢复](#6.2 恢复)


1 查看数据库


(1)基本语法

复制代码
SHOW DATABASE; // 查看数据库
show create database database_name; // 显示创建语句,不是创建数据库

1.1 查看当前处在数据库

(1)基本语法

复制代码
select database();

1.2 查看连接情况

可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。

(1)语法

复制代码
show processlist;

(2)示例

复制代码
mysql> show processlist;
+----+-----------------+-----------+------+---------+--------+------------------------+------------------+
| Id | User            | Host      | db   | Command | Time   | State                  | Info             |
+----+-----------------+-----------+------+---------+--------+------------------------+------------------+
|  5 | event_scheduler | localhost | NULL | Daemon  | 345695 | Waiting on empty queue | NULL             |
| 12 | root            | localhost | Test | Query   |      0 | init                   | show processlist |
+----+-----------------+-----------+------+---------+--------+------------------------+------------------+
2 rows in set, 1 warning (0.00 sec)

2 创建数据库


(1)基本语法

复制代码
CREATE DATABASE database_name;

(2)常用选项说明

  1. CHARACTER SET:指定数据库字符集
  2. COLLATE:指定排序规则
  3. IF NOT EXISTS:避免重复创建时报错

(3)示例

复制代码
-- 创建名为 my_database 的数据库
CREATE DATABASE my_database;

-- 指定字符集和排序规则(可选)
CREATE DATABASE my_database
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;

-- 添加条件判断(如果不存在则创建)
CREATE DATABASE IF NOT EXISTS my_database;

2.1 使用数据库

(1)基本语法

复制代码
use database_name

3 字符集和校验规则


3.1 字符集

字符集定义了数据库能够存储哪些字符,以及这些字符如何用二进制代码表示。

常见字符集:

  • ascii: 最简单的英文字符集,不支持中文。
  • latin1: 扩展了 ASCII,支持西欧语言。
  • gbk / gb2312: 支持中文的字符集(国标)。
  • utf8 : 最常用的 Unicode 字符集,支持几乎所有语言的字符。但在 MySQL 中,它指的是最多 3 字节的 UTF-8,无法存储如表情符号(Emoji)等 4 字节字符。
  • utf8mb4 : 真正的、完整的 UTF-8 (推荐使用)。它支持 4 字节字符,可以存储表情符号和一些不常见的汉字。这是现在的最佳实践

为什么重要?

如果字符集设置错误,会导致乱码。例如,如果你用 latin1 存储中文字符,检索出来的就会是一堆问号(???)或乱码。

3.2 校验规则

校验规则定义了字符集中字符的排序规则和比较规则(即字符串如何比较大小、如何排序)。

它主要解决两个问题:

  1. 排序 (Ordering): 'A' 和 'a' 谁应该排在前面?
  1. 比较 (Comparison): 'A' 和 'a' 在查询时是否算作相等?
    常见校验规则(以 utf8mb4 为例):
  • utf8mb4_general_ci: 较早的、速度较快的校验规则,但排序精度稍低。
  • utf8mb4_unicode_ci : 基于 Unicode 标准进行排序和比较,能更准确地处理各种语言和特殊字符(如德语中的 ß)。这是推荐的通用规则
  • utf8mb4_0900_ai_ci : MySQL 8.0 引入的新标准,更现代、更准确。(0900 代表 Unicode 9.0 标准,ai 代表口音不敏感,ci 代表大小写不敏感)。
  • utf8mb4_bin : 纯粹的二进制比较。它会区分大小写和重音符号,因为 'A' 和 'a' 的二进制编码完全不同。
    校验规则后缀的含义:
  • _ci (Case Insensitive): 大小写不敏感 。'apple' 和 'APPLE' 被认为是相同的。
  • _cs (Case Sensitive): 大小写敏感 。'apple' 和 'APPLE' 被认为是不同的。
  • _ai (Accent Insensitive): 口音不敏感 。'resume' 和 'résumé' 被认为是相同的。
  • _as (Accent Sensitive): 口音敏感 。'resume' 和 'résumé' 被认为是不同的。
  • _bin (Binary): 二进制比较,区分一切。

3.3 查看系统字符集以及校验规则

复制代码
show variables like 'character_set_database'; // 查看系统默认字符集
show variables like 'collation_database'; // 查看系统默认校验规则

show charset; // 查看数据库支持的字符集
show collation; // 查看数据库支持的字符集校验规则

4 删除数据库


(1)基本语法

复制代码
DROP DATABASE my_database;
-- 或
DROP DATABASE IF EXISTS my_database;

5 修改数据库


(1)基本语法

复制代码
ALTER DATABASE database_name
CHARACTER SET new_charset
COLLATE new_collation;

(2)示例

复制代码
-- 将数据库字符集改为 utf8mb4,校验规则改为 utf8mb4_unicode_ci
ALTER DATABASE my_database
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;

-- 只修改字符集,校验规则会自动选择默认的
ALTER DATABASE my_database
CHARACTER SET utf8mb4;

-- 只修改校验规则
ALTER DATABASE my_database
COLLATE utf8mb4_0900_ai_ci;

6 数据库的备份和恢复


6.1 备份

(1)语法

复制代码
# 备份单个数据库
mysqldump -u [用户名] -p[密码] --databases [数据库名] > [备份文件.sql]

# 备份所有数据库
mysqldump -u username -p --all-databases > all_backup.sql

# 备份特定表
mysqldump -u username -p database_name table1 table2 > tables_backup.sql

(2)示例

复制代码
mysqldump -u root -p mytest > D:/mytest.sql // 将mytest库备份到文件
mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql // 备份数据库其中的一张表
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径 // 同时备份多个数据库

6.2 恢复

(1)语法

复制代码
# 方法1:使用mysql命令行
mysql -u username -p database_name < backup.sql

# 方法2:在MySQL命令行中
mysql> source /path/to/backup.sql;

# 解压并恢复压缩的备份
gunzip < backup.sql.gz | mysql -u username -p database_name
相关推荐
LaughingZhu2 小时前
Product Hunt 每日热榜 | 2026-02-05
大数据·数据库·人工智能·经验分享·搜索引擎·产品运营
逃逸线LOF2 小时前
mysql本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止
数据库
Remember_9932 小时前
MySQL 索引详解:从原理到实战优化
java·数据库·mysql·spring·http·adb·面试
dishugj2 小时前
【Oracle】 rac的一些问题以及解决方案
数据库·oracle
Ronin3052 小时前
日志打印和实用 Helper 工具
数据库·sqlite·rabbitmq·文件操作·uuid生成
eWidget2 小时前
面向信创环境的Oracle兼容型数据库解决方案
数据库·oracle·kingbase·数据库平替用金仓·金仓数据库
阿正的梦工坊2 小时前
使用即梦(seedream)来图生图:读取与写入飞书多维表格
数据库·飞书
Coder_Boy_2 小时前
基于SpringAI的在线考试系统-整体架构优化设计方案(续)
java·数据库·人工智能·spring boot·架构·领域驱动
云飞云共享云桌面2 小时前
推荐一些适合10个SolidWorks设计共享算力的服务器硬件配置
运维·服务器·前端·数据库·人工智能