二.MySQL库的操作

一.创建数据库create database 名称;

字符集和校验规则

一、字符集(Character Set)

  • 表示数据库中可以使用哪些字符。

  • 例如:utf8 可以存储包括中文在内的多种语言字符,gbk 更适合中文字符环境。

功能 举例
控制支持哪些语言字符 utf8 支持中文、英文、阿拉伯语;latin1 只支持西欧语言
控制存储空间 不同字符集一个字符占用字节不同,utf8 最多占 3 字节,utf8mb4 最多 4 字节,能支持 Emoji 表情
决定客户端/服务器之间的编码转换 保证数据传输时不乱码(客户端字符集要和服务器字符集兼容)

二、校验规则(Collation)

  • 表示如何对字符进行比较和排序。

  • 不同的校验规则可能决定是否区分大小写排序方式

    • utf8mb4_general_ci:ci 表示 case-insensitive不区分大小写。

    • utf8mb4_bin:bin 表示使用 二进制方式比较区分大小写

功能 示例 说明
是否区分大小写 utf8mb4_general_ci不区分,utf8mb4_bin区分 'a' = 'A' 是 true 还是 false
排序方式 utf8mb4_general_ci排序为 a, A, b, B,utf8mb4_bin排序为 A, B, a, b 根据不同规则,排序结果会不一样
性能优化 简单的校验规则(如 utf8mb4_general_ci)比复杂规则(如 utf8_unicode_ci)快 一般查询多的话用 general_ci;需要严格字符排序用 unicode_ci

1. 查看系统默认字符集以及校验规则

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

create database 名称; 像这样直接创建数据库就会用上默认的配置。

当前值 说明
utf8mb4 表示数据库使用了 UTF-8 的完整版本,支持 Emoji 等 4 字节字符
utf8mb4_general_ci 不区分大小写的通用校验规则,排序速度较快

2.查看数据库支持的字符集show charset;

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

4.指定character set字符集和collate校验规则

create database 数据库名称 character set 字符集 collate 校验规则;

复制代码
//1.bin 区分大小写
create database b_bin character set utf8mb4 collate utf8mb4_bin;
//2.ci 不区分大小写
create database b_ci character set utf8mb4 collate utf8mb4_general_ci;

1.utf8mb4_bin bin 区分大小写的

2.utf8mb4_general_ci ci 不区分大小写

二.操纵数据库

1.查看数据库show databases;

查看现在创建的数据库有哪些

2.显示创建语句show create database 数据库名;

可以看出数据库的字符集和校验规则

CHARACTER SET utf8mb4 COLLATE utf8mb4_bin

3.修改数据库字符串集校验规则alter database (后面加指定的数据库及配置)

alter database b_bincharacter set gbk collategbk_chinese_ci;

4.删除数据库 drop database 数据库名称;

drop database b_bin;

执行删除之后的结果:

数据库内部看不到对应的数据库

对应的数据库文件夹被删除,级联删除,里面的数据表全部被删

三.数据库备份与修复

1.备份数据库 mysqldump -B

mysqldump -u 用户名 -p -B 数据库名(可以备份多个) > 备份文件路径.sql

1.mysqldump -u 用户名 -p 进入mysql客户端

2.-B选项:包含建库语句

.sql 文件 = 建库(-B) + 建表 + 插入数据 + 一些环境设置 + 注释

部分 内容说明
建库语句 CREATE DATABASE b_ci
建表语句 CREATE TABLE person
表字符集 utf8mb4, utf8mb4_general_ci
表数据 若你表有数据,备份时一定会包含 INSERT 语句
环境设置 SET NAMES utf8mb4, SET @OLD_...

2.还原数据库source .sql文件路径

source /var/lib/mysql/b_ci.sql

还原数据库,其实就是再执行一遍 .sql 文件里保存的 SQL 语句。

再理解-B选项:带了-B就会有创建数据库的指令 没带就需要先创建空数据库再source

如果是只是备份数据库中的部分表 一般不带-B

.sql 文件 ≈ SQL 脚本,source 命令 ≈ 执行脚本

复制代码
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| b1                 |
| helloworld         |
| information_schema |
| mydb               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
7 rows in set (0.00 sec)

mysql> source /var/lib/mysql/b_ci.sql
Query OK, 0 rows affected (0.00 sec)
....
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| b1                 |
| b_ci               |
| helloworld         |
| information_schema |
| mydb               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
8 rows in set (0.01 sec)

mysql> 

四.查看连接情况show processlist

show processlist;

相关推荐
老纪的技术唠嗑局2 小时前
OceanBase PoC 经验总结(二)—— AP 业务
数据库
阿里云大数据AI技术3 小时前
OpenSearch 视频 RAG 实践
数据库·人工智能·llm
m0_623955665 小时前
Oracle使用SQL一次性向表中插入多行数据
数据库·sql·oracle
阿蒙Amon6 小时前
C#读写文件:多种方式详解
开发语言·数据库·c#
东窗西篱梦6 小时前
Redis集群部署指南:高可用与分布式实践
数据库·redis·分布式
就是有点傻7 小时前
C#如何实现中英文快速切换
数据库·c#
1024小神7 小时前
hono框架绑定cloudflare的d1数据库操作步骤
数据库
KellenKellenHao9 小时前
MySQL数据库主从复制
数据库·mysql
@ chen9 小时前
Redis事务机制
数据库·redis
KaiwuDB10 小时前
使用Docker实现KWDB数据库的快速部署与配置
数据库·docker