当前位置: 首页 > news >正文

【MySQL】数据库的增删查改+备份与恢复

文章目录

  • 一、创建数据库create
  • 二、数据库所使用的编码
    • 2.1 查询字符集和校验集
    • 2.2 指定编码创建数据库
    • 2.3 不同的校验集对比
  • 三、删除数据库drop
  • 四、查看数据库show
  • 五、修改数据库alter
  • 六、数据库的备份与恢复
    • 6.1 备份 mysqldump
    • 6.2 恢复source
    • 6.3 仅备份几张表或备份多个数据库
  • 七、查看数据库的连接情况

一、创建数据库create

create database database1;

在这里插入图片描述
创建库本质是在/var/lib/mysql中创建一个目录

二、数据库所使用的编码

数据库编码创建数据库的时候,有两个编码集:

  1. 数据库编码(字符)集:数据库存储数据的编码集。
  2. 数据库校验集:支持数据库进行字段比较使用的编码,本质也是一种读取数据库中数据采用的编码格式。

数据库无论对数据做任何操作,都要保证操作和编码必须是编码一致的。

2.1 查询字符集和校验集

  • 查询当前MySQL的编码集
show variables like 'character_set_database';

在这里插入图片描述

  • 查询当前MySQL的校验集
show variables like 'collation_database';

在这里插入图片描述

2.2 指定编码创建数据库

当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则
是:utf8_ general_ ci

  • 创建一个使用utf8字符集的 d1 数据库
create database d1 charset=utf8;
  • 创建一个使用utf8字符集,并带校对规则的 d2 数据库。
create database d2 charset=utf8 collate utf8_general_ci;

2.3 不同的校验集对比

创建两个数据库,编码都是utf8,但是校验集不同,一个是使用utf8_ general_ ci(不区分大小写),另一个是使用utf8_ bin(区分大小写)

在这里插入图片描述

  • test1

建表+插入数据:

use test1;
create table person(name varchar(10));
insert into person values('a');
insert into person values('A');

进行查询:

select * from person where name='a';

在这里插入图片描述

  • test2

建表+插入数据:

use test2
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');

进行查询:

select * from person where name='a';

在这里插入图片描述

三、删除数据库drop

删除数据库本质是在/var/lib/mysql中删除一个目录

drop database database1;

删除数据库后:

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

四、查看数据库show

确认当前所在数据库:

select database();

在这里插入图片描述

  • 查看数据库
show databases;

在这里插入图片描述

  • 查看当前数据库中的所有表
show tables;

在这里插入图片描述

  • 查看创建表时的详细信息
show create database test;

在这里插入图片描述

1️⃣ MySQL 建议我们关键字使用大写,但是不是必须的。
2️⃣ 数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字
3️⃣ /*!40100 default… */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话。

五、修改数据库alter

在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。

  • 修改字符集和校验和
alter database test charset=gbk collate gbk_chinese_ci;

在这里插入图片描述

六、数据库的备份与恢复

6.1 备份 mysqldump

mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

在这里插入图片描述
此时vim打开test.sql,我们会发现,备份的不仅仅只是数据,还有把历史上所有有效的操作都备份起来了。
也就是说 test.sql 文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中。

6.2 恢复source

source /home/yyh/MySQL/test.sql;

在这里插入图片描述

备份不是只备份了数据,操作也备份了:
在这里插入图片描述

6.3 仅备份几张表或备份多个数据库

  • 仅备份几张表
mysqldump -u root -p 数据库名 表名1 表名2 > 数据库存放路径
  • 同时备份多个数据库
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

备份是在shell命令行进行的,而非MySQL客户端。如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。
-B的意思:在备份文件test.sql中是有创建create database的语句:

七、查看数据库的连接情况

查看当前有什么人在使用数据库,也就是查看连接情况:

show processlist;

在这里插入图片描述

http://www.lryc.cn/news/110236.html

相关文章:

  • Docker 部署 redis 举例
  • 通过HandlerMethodArgumentResolver实现统一添加接口入参参数
  • JAVA-spring boot 2.4.X报错Unable to find GatewayFilterFactory with name Hystrix
  • 运输层---UDP协议
  • 【LeetCode】剑指 Offer Ⅱ 第3章:字符串(7道题) -- Java Version
  • 【python】绘图代码模板
  • RTT学习笔记12-KConfig 语法学习
  • 基于Mediapipe的姿势识别并同步到Unity人体模型中
  • Linux下进程的特点与环境变量
  • 以Llama-2为例,在生成模型中使用自定义LogitsProcessor
  • python 计算图片hash 缓存图片为key
  • 制造型企业如何实现车间设备生产数据的实时采集?需要5G网络吗?
  • 第2章 HTML中的JavaScript
  • 景联文科技高质量成品数据集上新啦!
  • flask------请求拓展
  • 大数据-玩转数据-FLINK-从kafka消费数据
  • 介绍Sping Boot的5个扩展点
  • Linux2.6内核配置说明
  • Pytest简介及jenkins集成
  • 【LeetCode】105. 从前序与中序遍历序列构造二叉树 106. 从中序与后序遍历序列构造二叉树
  • 堆内存和一些检测工具
  • 【JavaScript】元素获取指南
  • uniapp 返回上一页并刷新
  • Java阶段五Day21
  • 2023,谁在引领实时互动进入高清时代?
  • STM32(HAL)串口中断接收
  • word转pdf怎么转?几种常用方法分享
  • 自学(黑客)技术,入门到入狱!
  • js 函数、闭包及函数对象
  • SSM(Vue3+ElementPlus+Axios+SSM前后端分离)--搭建Vue 前端工程[二]