当前位置: 首页 > 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;

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

相关文章:

  • SIEMENS PLC程序解读 -BLKMOV (指定长度数据批量传输)
  • 深度学习之卷积神经网络入门
  • 火山云的市场竞争
  • HashSet 概述
  • 【实用技巧】如何无损去除图片水印?
  • HashMap的源码解析
  • ZYNQ-GPIO之MIO中断
  • 【kafka初学】启动执行命令
  • XMOS空间音频——在任何设备上都能提供3D沉浸式空间音频且实现更安全地聆听
  • 哈工大李治军《操作系统》进程同步与信号量笔记
  • HOJ.编程语言管理系统
  • 肯·汤普逊:UNIX之父与现代操作系统的开路人
  • Linux解压tar.gz包的正确姿势(附赠防抓狂指南)
  • 14-DevOps-快速部署Kubernetes
  • ‌Linux trap 命令详解
  • 颠覆传统!LSTM+transformer上大分!参数直降45.5%,精度远超SOTA!
  • 测试模版x
  • 【HFP】蓝牙HFP协议中音频连接转移与拨号功能的深度解析
  • 极域教师管理CMD命令操作
  • 数智飞轮:AI时代企业增长的核心密码
  • 财政部部长蓝佛安:中国将采取更加积极有为的宏观政策
  • 白俄罗斯驻华大使:应发挥政党作用,以对话平台促上合组织发展与合作
  • 全品系停货?泸州老窖:暂未接到通知,常规调控手段
  • 台媒称美派遣前军官出任“汉光演习”资深观察员,国防部回应
  • 消费补贴政策力度最大的一届!第六届上海“五五购物节” 4月底启幕
  • 百年前的亚裔艺术家与巴黎