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

相关推荐
dishugj15 分钟前
HANA集群计划内切换与维护操作
java·linux·数据库
IvorySQL9 小时前
PostgreSQL 日报|修复截断 zstd 备份检测(10 月 9 日)
数据库·postgresql
刘胡子大叔10 小时前
SQL 脚本的导入顺序
数据库·sql
代码什么用10 小时前
Spring对IoC的实现
数据库·spring
hz5678912 小时前
涉密视频会议设备配置指南:终端、音视频采集与配套设施选型
服务器·网络·数据库·安全·实时音视频·信息与通信·智能硬件
广州浮点FLOATLIC12 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
程序员Sunday12 小时前
MySQL 为什么使用 B+ 树索引?把范围查询、回表和覆盖索引连起来
数据库·mysql
半杯咖啡半行码13 小时前
Qt开发实战:数据库、MV 模式、QProcess与串口通信全攻略
数据库·qt
Yyyyyy~13 小时前
[ Mysql ] 库的操作
mysql
小米里的大麦13 小时前
16 MySQL 事务
数据库·mysql