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

相关推荐
且行志悠36 分钟前
Mysql的使用
mysql
白鹭37 分钟前
MySQL源码部署(rhel7)
数据库·mysql
666和7771 小时前
Struts2 工作总结
java·数据库
还听珊瑚海吗1 小时前
SpringMVC(一)
数据库
星期天要睡觉2 小时前
MySQL 综合练习
数据库·mysql
Y4090012 小时前
数据库基础知识——聚合函数、分组查询
android·数据库
JosieBook3 小时前
【数据库】MySQL 数据库创建存储过程及使用场景详解
数据库·mysql
处女座_三月4 小时前
改 TDengine 数据库的时间写入限制
数据库·sql·mysql