二.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;

相关推荐
雷神乐乐3 小时前
Oracle正则表达式学习
数据库·sql·oracle·正则表达式
江沉晚呤时3 小时前
SQL Server 事务详解:概念、特性、隔离级别与实践
java·数据库·oracle·c#·.netcore
斯特凡今天也很帅4 小时前
clickhouse如何查看操作记录,从日志来查看写入是否成功
数据库·clickhouse
菜菜小蒙4 小时前
【MySQL】MVCC与Read View
数据库·mysql
不辉放弃5 小时前
HiveSQL语法全解析与实战指南
数据库·hive·大数据开发
Elastic 中国社区官方博客5 小时前
Elastic 和 AWS 合作将 GenAI 引入 DevOps、安全和搜索领域
大数据·数据库·elasticsearch·搜索引擎·云计算·全文检索·aws
20242817李臻5 小时前
李臻20242817_安全文件传输系统项目报告_第14周
数据库·安全
MyikJ6 小时前
Java求职面试:从Spring到微服务的技术挑战
java·数据库·spring boot·spring cloud·微服务·orm·面试技巧
betazhou6 小时前
oracle goldengate同步SQL server到SQL server的实时数据同步
数据库·mysql·oracle
alex18016 小时前
ubuntu磁盘挂载
linux·数据库·ubuntu