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

文章目录

库的操作增删改查

  1. 进入数据库的目录
cpp 复制代码
cd /var/lib/mysql
免密码登录数据库
mysql -u root -p

数据库的查看和创建

  1. 查看数据库和创建数据库
cpp 复制代码
show databases;
create database helloworld;
create database [if not exists] 数据库名
如果不存在就创建数据库
创建数据库,本质就是在/var/lib/mysql中创建目录
删除数据库,就是删除目录


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

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

数据库的删除

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

  2. 数据库内部看不到对应的数据库

  3. 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删
    注意:不要随意删除数据库

cpp 复制代码
drop database [if not exists] database1;

总结

总结

5. 也可以在Linux层创建数据库和删除数据库,但是一定不要这么干


6. 用if not exitsts选项 创建一个已经存在的数据库(我们会发现它报警告warning)

显示数据库的创建语句

  1. 显示创建语句 show create database 数据库名;

    数据库名字的反引号''是为了防止使用的数据库名刚好是关键字,/*!40100 default... */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话

修改数据库

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

认识系统编码

数据库的编码问题

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

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

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

cpp 复制代码
show variables like 'character_set_database';
// 字符集,存的方式
show variables like 'collation_database';
// 效验规则,取的方式
  1. 我们可以不只是看database,还可以看connect(连接)和server(服务)
  2. 查看数据库支持的字符集和字符集校验规则
cpp 复制代码
show charset
cpp 复制代码
show collation;
  1. 创建数据库案例
cpp 复制代码
create database db1;

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

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

校验规则对数据库的影响

  • 不区分大小的编码规则,utf8_general_ci
cpp 复制代码
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是区分大小写的

  • 查看表结构的详细信息

cpp 复制代码
desc person;

数据库的备份和恢复

备份

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

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

cpp 复制代码
vim test1.sql

还原

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

cpp 复制代码
mysql> source root/test1.sql;

把test1删除再还原,它会把备份文件中的sql语句都跑一遍

备份的是一张表

cpp 复制代码
mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql

同时备份的是多个数据库

cpp 复制代码
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

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

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

    不加-B需要我们手动创建一个新的数据库

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

    库,再使用source来还原。

查看数据库的连接情况

cpp 复制代码
show processlist;


可以查看当前有多少人连接了我的数据库

相关推荐
QING61831 分钟前
Android 定位权限兼容问题详解 —— 新手指南
android·ai编程·trae
QING61837 分钟前
Android 存储权限兼容问题详解 —— 新手指南
android·ai编程·trae
DarkAthena37 分钟前
【ORACLE】记录一些ORACLE的merge into语句的BUG
数据库·oracle·bug
江沉晚呤时1 小时前
深入了解C# List集合及两种常见排序算法:插入排序与堆排序
windows·sql·算法·oracle·c#·排序算法·mybatis
逾非时1 小时前
MySQL触法器
android·mysql·sqlserver
聪明的墨菲特i1 小时前
SQL进阶知识:九、高级数据类型
xml·数据库·sql·mysql·json·空间数据类型
艺杯羹1 小时前
JDBC 批处理与事务处理:提升数据操作效率与一致性的密钥
数据库·mysql·jdbc·事务处理·批处理数据
还是鼠鼠2 小时前
Android移动应用开发入门示例:Activity跳转界面
android·前端·gitee·android studio·android-studio
珹洺2 小时前
Jsp技术入门指南【十】IDEA 开发环境下实现 MySQL 数据在 JSP 页面的可视化展示,实现前后端交互
java·运维·前端·mysql·intellij-idea·jsp