目录
1. 数据库的操作
1.1 显示当前的数据库
1.2 创建数据库
1.3 使用数据库
1.4 删除数据库
1.5 删除磁盘文件的原理
1.6 退出客户端
文章介绍
- 本文详细介绍了数据库的基本操作,包括显示当前数据库、创建数据库、使用数据库、删除数据库以及删除磁盘文件的原理。
- 同时,文章还涉及了如何在官网查看MySQL参考手册流程、创建数据库的语法、查看警告信息、创建数据库时指定字符集和排序规则,以及查看当前数据库服务全局的默认字符集。
1. 数据库的操作
在一个数据库服务中,可以包含很多个数据库 :
当我们不知道DB A,DB B(DB是数据库管理员缩写)是为哪一个应用程序提供服务的时候,不能随意修改操作这两个数据库,我们操作的数据库,应该是自己熟悉的数据库;
在生成环境中,数据库管理员应该合理分配读取,连接库权限;
1.1 显示当前的数据库
我们首先要创建一个属于数据库,创建之前需要检查一下,同事是否已经创建过了;
那么如何检查呢?还是需要通过一些简单的SQL指令;
查看数据库服务中有多少个数据库,可以使用 show databases;
分析表中的数据库作用:
一些常见的操作:
1.2 创建数据库
1.2.1 在官网查看mysql参考手册流程
1.2.2 创建数据库
解析:
如果指定的数据库不存在,则创建test_db2 :
解析:
1.2.3 查看警告信息
if not exists 意思是如果不存在则创建,如果不加这个可选关键字,就会直接报错;
在真下在的工作中,执行SQL语句,不是手动一条一条执行的,而是批量一起执行,为了不让某一条语句的错误影响整个执行流程,都会加上一些类似于if not exists 的校验,防止因为某条SQL出错导致整个SQL中断执行 ;
1.2.4 创建数据库并且指定字符集和排序规则
对于字符集:
8.0 中默认的字符集是 utf8mb4;5.7中默认的字符集是latin1,这个字符集无法存储中文;
创建数据库的时候强烈建议手动明确认定字符集;
对于排序规则:
- 8.0 默认的是utf8mb4_0900_ai_ci,ai表示口音不敏感,ci表示大小写不敏感,虽然大小写的Ascii码不一样,但是排序规则指定 ci,会被系统识别为同一个字符;
- 5.7 中默认的排序规则是utf8mb4_general_ci,表示通用口音,大小写不敏感的排序规则;
创建一个名为test_db03的数据库,并指定字符集和排序规则
1.2.5 查看当前数据库服务全局的默认字符集
全局默认字符集在配置文件 my.ini 中可以设置,设置了什么字符集,在 mysql 运行的时候,是可以查询的,会把信息保存到系统表中:
输入指令后,当前系统中的字符集会显示出来;
系统使用的是 utf8mb3 这么一个编码格式,utf8mb3 和 utf8mb4 有什么区别呢?
utf8mb3并不是一个真正意义上的 utf8 编码,支持的内容比较少,用1-3个字节表示所有的字符编码,不支持特殊的字符/表情这些编码很长的符号;
utf8mb4 的字符编码为4个字节,达到了一个整型的长度,回忆整型长度的范围,如果是无符号整型,范围可以达到0-42亿的表示长度,意味着utf8mb4 可以支持世界上任意一个特殊字符,使用utf8mb4的字符集,可以保存任意特殊字符到数据库中;
如果是在默认的终端中,client 的字符集是 gbk
如果要强行当前数据库指定编码集,可以在快捷文件属性的目标文件路径后,指定 utf8mb4 即可;
1.2.6 总结
补充 :能不能使用关键字为库名创建数据库呢?
是可以的:
解析
1.3 使用数据库
查看版本号 :
查看当前选择要操作的数据库是哪一个:
这里返回 null,表示当前未选择数据库;
version(),database(),这些带括号的,都是MYSQL提供的内置方法;
选择要操作的数据库:
1.4 删除数据库
删除数据库是一个非常非常危险的操作,在自己的项目会在公司中千万这么做,使用之前一定要慎之又慎;drop 开头的SQL语句,可以了解就行;
1.5 删除磁盘文件的原理
在服务器(一般都是用Linux系统)上删除并没有回收站这么一说,删了就没有了,这是针对操作系统而言的;
但是在磁盘上删除文件,并不是真正意义上的什么都没有了,而是把删除文件的位置,置为一个删除标记,这个文件还存在,只不过把这个文件占用的磁盘空间置为已删除状态,类似于 ArrayList的删除操作:
- 如果要把最后一个下标位置index的数据删除,只要把size--,并且把 index 向前移动一位即可;
- 如果一个新的元素写入集合,index++即可,就会把原来 index 下标的数据覆盖掉;
恢复磁盘数据
方法一:通过磁盘厂商恢复
删除磁盘文件的实际情况,只要这种类似的覆盖次数不多,被覆盖的数据是可以恢复的,一般是通过磁盘的厂商进行恢复的,但是需要爆金币;
方法二:通过日志恢复数据
还有一种非常常用的恢复数据库操作,就是通过日志处理;Mysql会在执行的过程中,只要对数据库进行修改操作(查询操作不算),都会把这些数据的内容记录在日志中,如果误删数据库,就可以通过日志,快速地把日志中记录的操作重新执行一次;
增量备份&全量备份
- 数据库也会定期备份,每天备份一次(增量备份,记录的是今天比昨天新增的数据),或者每周备份一次(全量备份,数据库中的所有数据都会备份下来);
- 当数据出现问题时,比如被恶意入侵,修改,误......可以通过礼拜天的全量备份,和前几天的增量备份,来恢复成昨天的数据量,只会损失当天的数据量,保证大部分数据都是安全的;
- 如果恶意删除数据的人,也同时删除这台机器的日志,可以通过其他机器的日志来恢复,因为在公司的生产环境中,一般都是以集群形式部署的,这些集群的机器上的日志内容相同,副本不同,分配在集群的每一台机器上;
备份服务器,处理每天的增量备份和每周的全量备份,还会有一个物理的备份,备份分成冷备份和热备份,生产服务器的数据库服务器集群,和备份服务器会部署在不同地方,产生地理隔离,如果因为自然灾害丢失导致其中一方的数据库受损,另一方的数据库可以继续提供服务;
1.6 退出客户端
可以通过输入 ?或者 \? 指令来查看 mysql 客户端指令