🌱博客主页:青竹雾色间
🌱系列专栏:MySQL探险日记
😘博客制作不易欢迎各位👍点赞+⭐收藏+➕关注
✨人生如寄,多忧何为 ✨
文章目录
- 1. 创建数据库
- 2.数据库的编码集与校验集
- 2.1 编码集 (Character Set)
- 2.2 校验集 (Check Sum)
- 3. 字符集和校验规则
- 4. 操纵数据库
- 4.1查看数据库
- 4.2修改数据库
- 4.3数据库删除
- 5. 备份和恢复
- 5.1 备份
- 5.2 还原
- 6. 查看连接情况
MySQL是最流行的开源关系型数据库管理系统,被广泛应用于Web开发中。在使用MySQL时,了解如何创建、操纵和维护数据库是至关重要的。本篇博客将带您深入了解MySQL数据库的基础操作,包括创建数据库、字符集和校验规则、操纵数据库以及备份和恢复数据库。
1. 创建数据库
在MySQL中,创建数据库是开始的第一步。下面是创建数据库的基本语法:
CREATE DATABASE [IF NOT EXISTS] db_name ;
其中,create_specification
可以包括字符集和校验规则。下面是创建数据库的示例:
示例:
- 创建名为 db1 的数据库,系统默认使用字符集 utf8 和校验规则 utf8_general_ci:
CREATE DATABASE db1;
- 创建一个使用 utf8 字符集的 db2 数据库:
CREATE DATABASE db2 CHARACTER SET utf8;
- 创建一个使用 utf8 字符集,并带校对规则的 db3 数据库:
CREATE DATABASE db3 CHARACTER SET utf8 COLLATE utf8_general_ci;
2.数据库的编码集与校验集
在数据库中,编码集` 通常指的是数据的字符编码方式,
而 “校验集” 则是指校验和或校验码,用于验证数据的完整性。
2.1 编码集 (Character Set)
数据库中的编码集是指用于存储和处理数据的字符编码方式。常见的数据库编码集包括:
-
UTF-8:一种针对Unicode的可变长度字符编码,它可以使用一个字节对常用的英文字母进行编码,而对于其他字符则需要使用更多的字节。
-
UTF-16:一种针对Unicode的字符编码方案,它使用两个字节编码大部分常用字符,但是在处理不常用字符时可能需要使用四个字节。
-
UTF-32:一种固定长度的Unicode字符编码,每个字符使用4个字节。
-
ISO-8859-1:也称为Latin-1,是ISO制定的单字节字符编码,涵盖了大部分西欧语言的字符。
-
GBK:GBK是汉字内码扩展规范的简称,是在GB2312编码的基础上对汉字进行了扩展,包含了繁体汉字及一些生僻字。
-
GB2312:GB2312是中国国家标准简体中文字符集,包含了6,763个汉字和682个非汉字字符。
-
Big5:Big5是台湾和香港地区的常用字符编码集,用于繁体中文。
2.2 校验集 (Check Sum)
数据库中的校验集是指用于验证数据完整性的校验和或校验码。常见的校验集包括:
-
MD5 (Message Digest Algorithm 5):MD5是一种广泛使用的哈希函数,常用于确保数据完整性。
-
SHA-1 (Secure Hash Algorithm 1):SHA-1是一种安全的哈希算法,通常用于数字签名和数据完整性验证。
-
SHA-256:SHA-256是SHA-2家族中的一员,具有更高的安全性,适合用于数字签名、证书认证、TLS和IPsec等安全协议中。
-
CRC32 (Cyclic Redundancy Check):CRC32是一种循环冗余校验,通常用于验证数据传输的完整性。
这些校验方法都可以用于在存储和传输数据时验证数据的完整性。对于大多数数据库管理系统,可以通过内置函数或外部库来计算这些校验和或校验码。
3. 字符集和校验规则
- 查看系统默认字符集以及校验规则
-- 查看数据库的字符编码
SHOW VARIABLES LIKE 'character_set_database';
-- 查看数据库的校对集
SHOW VARIABLES LIKE 'collation_database';
- 查看数据库支持的字符集
SHOW CHARSET;
- 查看数据库支持的字符集校验规则
SHOW COLLATION;
- 校验规则对数据库的影响
不区分大小写:
- 创建一个数据库,校验规则使用 utf8_general_ci[不区分大小写]
CREATE DATABASE test1 COLLATE utf8_general_ci;
USE test1;
CREATE TABLE person (name VARCHAR(20));
INSERT INTO person VALUES ('a'), ('A'), ('b'), ('B');
区分大小写:
- 创建一个数据库,校验规则使用 utf8_bin[区分大小写]
CREATE DATABASE test2 COLLATE utf8_bin;
USE test2;
CREATE TABLE person (name VARCHAR(20));
INSERT INTO person VALUES ('a'), ('A'), ('b'), ('B');
- 查询不区分大小写的查询以及结果:
USE test1;
SELECT * FROM person WHERE name='a';
- 查询区分大小写的查询以及结果:
USE test2;
SELECT * FROM person WHERE name='a';
4. 操纵数据库
4.1查看数据库
SHOW DATABASES;
SHOW CREATE DATABASE 数据库名;
示例:
USE test2;
SELECT * FROM person WHERE name='a';
USE test1;
SELECT * FROM person ORDER BY name;
USE test2;
SELECT * FROM person ORDER BY name;
4.2修改数据库
ALTER DATABASE db_name CHARACTER SET charset_name COLLATE collation_name
示例: 将 mytest 数据库字符集改成 gbk
ALTER DATABASE mytest CHARSET=gbk;
4.3数据库删除
DROP DATABASE [IF EXISTS] db_name;
示例: 删除 mytest 数据库
SHOW CREATE DATABASE mytest;
DROP DATABASE mytest;
5. 备份和恢复
5.1 备份
mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
示例: 将 mytest 库备份到文件(退出连接)
# mysqldump -P3306 -u root -p123456 -B mytest > D:/mytest.sql
5.2 还原
mysql> source 备份路径下的sql文件;
- 注意事项
如果备份的不是整个数据库,而是其中的一张表,可以使用如下命令进行备份:
# mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql
同时备份多个数据库:
# mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径
如果备份一个数据库时,没有带上 -B 参数,在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用 source 来还原。
6. 查看连接情况
SHOW PROCESSLIST;
此操作可以告诉我们当前有哪些用户连接到我们的 MySQL,如果查出某个用户不是你正常登录的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。