文章目录
- MySQL数据库基础操作详解
-
- 一、创建数据库
-
- [1.1 基本语法](#1.1 基本语法)
- [1.2 创建示例](#1.2 创建示例)
- 二、字符集与校对规则
-
- [2.1 查看系统默认配置](#2.1 查看系统默认配置)
- [2.2 查看支持的字符集与校对规则](#2.2 查看支持的字符集与校对规则)
- [2.3 校对规则的实际影响](#2.3 校对规则的实际影响)
- 三、数据库的日常操作
-
- [3.1 查看所有数据库 / 查看当前数据库](#3.1 查看所有数据库 / 查看当前数据库)
- [3.2 显示数据库的创建语句](#3.2 显示数据库的创建语句)
- [3.3 修改数据库](#3.3 修改数据库)
- [3.4 删除数据库](#3.4 删除数据库)
- 四、备份与恢复
-
- [4.1 备份数据库](#4.1 备份数据库)
- [4.2 恢复数据库](#4.2 恢复数据库)
- 五、查看数据库连接
MySQL数据库基础操作详解
数据库是存储和管理数据的核心组件,掌握数据库的基本操作是每个开发者的必备技能。本文以MySQL为例,详细介绍数据库的创建、字符集设置、校验规则、日常维护及备份恢复等操作,帮助读者轻松上手并深入理解MySQL数据库的管理技巧。
一、创建数据库
1.1 基本语法
使用 create database
命令创建数据库,语法如下:
sql
create database [if not exists] 数据库名
[default character set 字符集名称]
[default collate 校对规则名称];
- 关键字说明 :
if not exists
:可选,避免重复创建同名数据库时报错。character set
:指定数据库的字符集(如utf8mb4
、gbk
)。字符集决定数据库支持的语言和符号。collate
:指定校对规则(如utf8mb4_general_ci
)。校对规则影响字符串比较和排序的方式。
注意 :MySQL关键字(如
create
、database
)不区分大小写,但建议统一风格。例如,关键字小写,数据库名按需使用大小写(Linux系统下数据库名区分大小写)。
1.2 创建示例
-
创建默认字符集的数据库:
sqlcreate database db1;
- 若不指定字符集和校对规则,MySQL默认使用
utf8mb4
字符集和utf8mb4_0900_ai_ci
校对规则(具体版本可能有差异)。
- 若不指定字符集和校对规则,MySQL默认使用
-
指定字符集创建数据库:
sqlcreate database db2 character set=utf8mb4;
- 推荐使用
utf8mb4
而非utf8
,因为utf8mb4
支持更多字符(如Emoji表情)。
- 推荐使用
-
同时指定字符集和校对规则:
sqlcreate database db3 character set=utf8mb4 collate utf8mb4_general_ci;
二、字符集与校对规则
2.1 查看系统默认配置
-
查看默认字符集 :
sqlshow variables like 'character_set_database';
-
查看默认校对规则 :
sqlshow variables like 'collation_database';
2.2 查看支持的字符集与校对规则
-
查看所有支持的字符集:
sqlshow charset;
输出示例:
+----------+---------------------------------+ | Charset | Description | +----------+---------------------------------+ | utf8mb4 | UTF-8 Unicode | | latin1 | cp1252 West European | +----------+---------------------------------+
-
查看所有支持的校对规则:
sqlshow collation;
输出示例:
+----------------------+----------+-----+ | Collation | Charset | Id | +----------------------+----------+-----+ | utf8mb4_general_ci | utf8mb4 | 45 | | utf8mb4_bin | utf8mb4 | 46 | +----------------------+----------+-----+
2.3 校对规则的实际影响
示例1:不区分大小写(utf8mb4_general_ci
)
sql
create database test1 collate utf8mb4_general_ci;
use test1;
create table person(name varchar(20));
insert into person values ('a'), ('A'), ('b'), ('B');
查询结果:
sql
select * from person where name='a';
-- 返回 'a' 和 'A'
说明 :
utf8mb4_general_ci
校对规则忽略大小写,a
和A
视为相同。
示例2:区分大小写(utf8mb4_bin
)
sql
create database test2 collate utf8mb4_bin;
use test2;
create table person(name varchar(20));
insert into person values ('a'), ('A'), ('b'), ('B');
查询结果:
sql
select * from person where name='a';
-- 仅返回 'a'
说明 :
utf8mb4_bin
校对规则按二进制比较,区分大小写。
排序对比
-
不区分大小写排序 :
sqlselect * from person order by name; -- 结果:a, A, b, B(按字母顺序,不区分大小写)
-
区分大小写排序 :
sqlselect * from person order by name; -- 结果:A, B, a, b(大写字母优先)
三、数据库的日常操作
3.1 查看所有数据库 / 查看当前数据库
sql
show databases;
输出示例:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test1 |
+--------------------+
mysql
select database();
输出示例:
+------------+
| database() |
+------------+
| helloworld |
+------------+
1 row in set (0.00 sec)
3.2 显示数据库的创建语句
sql
show create database 数据库名;
示例:
sql
show create database mytest;
输出:
+----------+--------------------------------------------------------+
| Database | Create Database |
+----------+--------------------------------------------------------+
| mytest | CREATE DATABASE `mytest` DEFAULT CHARSET=utf8mb4 |
+----------+--------------------------------------------------------+
注意 :反引号 ````` 用于包裹数据库名,避免与关键字冲突(如使用
database
作为库名)。
3.3 修改数据库
修改字符集或校对规则:
sql
alter database 数据库名
character set=新字符集
collate=新校对规则;
示例:
sql
alter database mytest character set=gbk collate gbk_chinese_ci;
注意:修改字符集不会自动转换已有数据,需手动调整表结构。
3.4 删除数据库
sql
drop database 数据库名;
风险提示:
- 删除操作会永久删除数据库及其所有表和数据。
- 生产环境中建议先备份再执行删除!
四、备份与恢复
4.1 备份数据库
使用 mysqldump
工具进行备份:
bash
# 备份整个数据库(包含创建语句)
mysqldump -u root -p123456 -B mytest > D:/mytest.sql
# 备份单张表
mysqldump -u root -p mytest person > D:/person.sql
参数说明:
-B
:备份整个数据库(包含create database
语句)。- 未使用
-B
时,恢复需手动创建数据库。
4.2 恢复数据库
在MySQL命令行中执行:
sql
source D:/mytest.sql;
分步恢复(无 -B
参数时):
sql
create database mytest; -- 1. 创建空数据库
use mytest; -- 2. 切换到该数据库
source D:/mytest.sql; -- 3. 执行备份文件
五、查看数据库连接
监控当前连接状态:
sql
show processlist;
输出示例:
+----+------+-----------+------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+------+---------+------+-------+------------------+
| 5 | root | localhost | test | Query | 0 | NULL | show processlist |
+----+------+-----------+------+---------+------+-------+------------------+
应用场景:
- 发现异常连接(如未知IP的登录)。
- 分析性能问题(长时间运行的查询)。