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

MySQL 库的操作 -- 增删改查,备份和恢复,系统编码

文章目录

  • 库的操作增删改查
    • 数据库的查看和创建
    • 查看当前位于哪个数据库中
    • 数据库的删除
    • 总结
    • 显示数据库的创建语句
    • 修改数据库
  • 认识系统编码
    • 数据库的编码问题
    • 查看系统默认的字符集和效验规则
    • 校验规则对数据库的影响
  • 数据库的备份和恢复
    • 备份
    • 还原
    • 备份的是一张表
  • 查看数据库的连接情况

在这里插入图片描述

库的操作增删改查

1. 进入数据库的目录

cd /var/lib/mysql
免密码登录数据库
mysql -u root -p

数据库的查看和创建

2. 查看数据库和创建数据库

show databases;
create database helloworld;
create database [if not exists] 数据库名
如果不存在就创建数据库
创建数据库,本质就是在/var/lib/mysql中创建目录
删除数据库,就是删除目录

在这里插入图片描述
在这里插入图片描述

查看当前位于哪个数据库中

3. 查看当前位于哪个数据库中
在这里插入图片描述

数据库的删除

4. 删除数据库
执行删除之后的结果:

  1. 数据库内部看不到对应的数据库
  2. 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删
    注意:不要随意删除数据库
drop database [if not exists] database1;

在这里插入图片描述

总结

总结
在这里插入图片描述
5. 也可以在Linux层创建数据库和删除数据库,但是一定不要这么干
在这里插入图片描述
在这里插入图片描述
6. 用if not exitsts选项 创建一个已经存在的数据库(我们会发现它报警告warning)
在这里插入图片描述

显示数据库的创建语句

7. 显示创建语句 show create database 数据库名;
在这里插入图片描述
数据库名字的反引号’'是为了防止使用的数据库名刚好是关键字,/*!40100 default… */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话

修改数据库

  1. 修改数据库是修改它的字符集和效验规则
alter database 数据库名 charset=utf8
alter database 数据库名 character set utf8

认识系统编码

数据库的编码问题

  1. 创建数据库的时候有两个编码集:
    <> 数据库编码集:数据库未来的存储数据
    <> 数据库效验集:支持数据库进行字段比较使用的编码,本质也是读取数据库中数据采用的编码格式

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

查看系统默认的字符集和效验规则

show variables like 'character_set_database';
// 字符集,存的方式
show variables like 'collation_database';
// 效验规则,取的方式

在这里插入图片描述

  1. 我们可以不只是看database,还可以看connect(连接)和server(服务)
    在这里插入图片描述
  2. 查看数据库支持的字符集和字符集校验规则
show charset

在这里插入图片描述

show collation;

在这里插入图片描述
3. 创建数据库案例

create database db1;

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

  • 创建一个名为db2且字符集为utf8的数据库
create database db2 charset = utf8
  • 另一种写法
create database db2 character set utf8
  • 创建一个名为db2且字符集为utf8的数据库并且指明校验规则
create database db2 charset=utf8 collate utf8_ general_ ci
  • 查看字符集及编码规则

在这里插入图片描述

校验规则对数据库的影响

  • 不区分大小的编码规则,utf8_general_ci
use test1 // 进入数据库
create table person(name varchar(20));// 创建表
insert into person(name) values('a');// 插入数据
insert into person(name) values('A');
insert into person(name) values('B');
insert into person(name) values('b');
select * from person where name = 'a';
// 查询a是不区分大小写的

在这里插入图片描述

  • 查询a是不区分大小写的

在这里插入图片描述
在这里插入图片描述

  • utf8_bin是区分大小写的
    在这里插入图片描述
    在这里插入图片描述

  • 查看表结构的详细信息

desc person;

在这里插入图片描述

数据库的备份和恢复

备份

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

在这里插入图片描述
这时,可以打开看看 mytest.sql 文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中。

vim test1.sql

在这里插入图片描述

还原

一台机器的数据库还原到另一台机器上

mysql> source root/test1.sql;

把test1删除再还原,它会把备份文件中的sql语句都跑一遍
在这里插入图片描述
在这里插入图片描述

备份的是一张表

mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql

同时备份的是多个数据库

mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

带上-B其实是在test1.sql文件中多了一条创建数据库的指令

  1. 加上-B是因为在备份的同时又创建了一个新的数据库并把数据放入到新的数据库中
    不加-B需要我们手动创建一个新的数据库

  2. 如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据
    库,再使用source来还原。

查看数据库的连接情况

show processlist;

在这里插入图片描述
可以查看当前有多少人连接了我的数据库

http://www.xdnf.cn/news/130249.html

相关文章:

  • 深度解析之算法之分治(快排)
  • Python-36:饭馆菜品选择问题
  • 使用jsrsasign进行RSA加密解密
  • Vue 2 和 Vue 3 的详细对比,从 生命周期、API、响应式系统、函数调用 等多角度展开,最后附表格总结
  • 【C到Java的深度跃迁:从指针到对象,从过程到生态】第三模块·面向对象深度进化 —— 第十二章 接口:比C函数指针更强大的契约
  • 数学基础 -- 欧拉公式的推导过程学习
  • 精准落地设计,现代项目管理中的深度实践
  • FeignClient用法笔记
  • 构建企业官方网站有哪些必备因素?
  • YOLOv8融合CPA-Enhancer【提高恶略天气的退化图像检测】
  • ecovadis认证需要提供哪些文件?ecovadis认证优势是什么?
  • c语言 write函数
  • Java线程池那点事(面试高频)
  • ASR VAD TTS
  • VLA 论文精读(十八)π0.5: a Vision-Language-Action Model with Open-World Generalization
  • JavaFX 第三篇 HostServices和Platform
  • 交通运输行业综合智慧监管平台:商贸物流的安全与效率引擎
  • Windows下QT打包后程序运行后弹出CMD命令窗口的问题解决方法
  • vxe-table封装表头
  • MSHFlexGrid 控件网格赋值指南方案
  • Python爬虫实战:移动端逆向工具Fiddler经典案例
  • 24FIC 决赛 计算机部分
  • 【HFP】蓝牙语音通话控制深度解析:来电拒接与通话终止协议
  • 【前端】【业务场景】【面试】在前端开发中,如何优化 SVG(可缩放矢量图形)的性能,特别是在处理复杂图形和动画时
  • MCP实战-本地MCP Server+Cursor实践
  • AI日报 - 2025年04月25日
  • C语言-函数-1
  • 入门-C编程基础部分:19、输入 输出
  • 位带和位带别名区
  • python自动化学习六:断言