大家好,这次给大家带来的是我的新的专栏:数据库,数据库相对来说难度不是那么高,大家只要勤加练习、熟记语法,我相信学好数据库不是什么问题,博主会从0剖析,逐步讲解数据库的知识点,并且会举很多实例。最重要的是,博主不会采用软件,使用最原始的方式 -> 命令行来讲解,这样讲解的好处是逐个语句进行书写,不会造成读者思路跟不上的问题!
👀QQ:162196770
👀微信:PRIDE_Xu_
👀Gitee:https://gitee.com/jialebihaitao
👀上一篇博客传送门:
👀下一篇博客传送门:
👀文章专栏:
👀B站:建设中,以后会考虑在B站上讲解一些知识点等等
1、数据库的操作
1.1 显示当前的数据库
显示出当前服务器上都有哪些数据库(或者哪些数据集合)
语法:
show databases;
注意:
databases
是复数show
和databases
之间要有空格(几个无所谓,但是不能没有!)SQL
语句基本都是以;
结尾的SQL
语句不区分大小写- 默认自带的数据库,不要乱动!把数据库搞坏了就不好玩了~
1.2 创建数据库
语法:
create database [if not exists] 数据库名 [创建规则];
注意:
-
以后所有的
[]
都是不用必须输入的,这个[]
代表可选项(可写可不写); -
数据库的名字只要不是关键字的名字即可(其实也可以创建以关键字为名字的数据库,用反引号即可,即
这个符号包裹住就行(位置在
Tab上方,1的左面,Esc的下面)),但是要注意:不能在一个服务器上 创建出多个同名的数据库 -
if not exists
的作用是只要不存在才去创建,其实不加也可以使用场景:你发给别人一段
SQL
,但是你不知道他的电脑上有没有对应的数据库,所以就选择如果没有才去创建这种方式.人家已经创建好的,咱们就不要瞎弄了 -
这里面的
database
是单数 -
创建规则:创建数据库可以指定字符集和校验规则
-
校验规则 : 描述了当前字符之间的比较方法
比较字符串的相等 / 大小关系(比如我们有时候希望忽略大小写)
使用场景不多 , 我们一般很少手动进行干预 , 一般使用默认的校验规则就可以了 .
-
字符集 :
create database test character set utf8mb4;
这里面的
utf8mb4
是怎么回事呢?首先,我们先来思考一下,计算机是如何保存字母的?
ASCII码:通过数字,来表示字母。数字和字母的一一对应的关系,就成为ASCII码表
但是ASCII是不包含中文的,所以现在常用的是两个版本
-
GBK
2个字节来表示一个汉字
是
Windows
简体中文版默认的字符编码 -
UTF-8
:被视为"世界通用的字符编码"UTF8
变长编码:一个汉字,用几个字节表示,是不确定的.一般是3个字节表示一个汉字
本质上,就是用数字表示各种语言文字的符号等,所对应的大表格,这个映射关系就叫做"字符集"
那么上面的
utf8mb4
是怎么回事呢?utf8mb4
其实就是比utf8
多了一些特殊符号,比如emoji
表情。设置成utf8
也没啥事那么我们在之前学过这样一个东西
char* s = "嗨"; printf("%d\n",strlen(s)); //那么请问,一个汉字占几个字节 //通过刚才对GBK以及UTF8的讲解,我们可以得知: //需要先确认是哪种字符编码 // GBK -> 2个字节 // UTF8 -> 3个字节1
-
-
-
执行这条
SQL
操作所耗费的时间:我们可以看到刚才的图片,运行时间是0.03sec
,这相对于计算机,其实是一个非常慢的速度给大家介绍以下计算机常用操作的时间:
访问网络:s~ms
访问磁盘:ms~us
访问内存:us~ns
操作CPU:ps
注意:这个换算是1000,不是1024。别混了
数据库往往是比较慢的环节,大型项目容易在这里面出问题。
1.3 使用数据库
在针对数据库进行一系列操作之前,我们必须要先选中数据库
语法:
use 数据库名;
使用数据库这条语句,不加;
也能执行.但是不推荐这样,在SQL
中,有些语句可以不加;
,但是有些语句就必须加;
,所以我们就统一都加;
,让你看到哪条SQL
语句没加;
你也不要奇怪
1.4 删除数据库
这个操作嗷嗷危险!!!千万不要在公司的服务器上进行删库操作 .
语法:
drop database 数据库名;
其实可以找回,但是比较麻烦了。
可以开启
MySQL
的binlog
功能,每次针对数据库进行的操作,都会被记录到binlog
中。万⼀数据被毁,可以重新把binlog
中的所有操作再导入⼀遍,但是这里面的内容不够全
那么是否有办法,避免生产环境中的数据被删除呢?
权限控制:提供管理员权限,只能管理员才能进行删除
产生了一个职业 :
DBA
数据库管理员备份一份副本:一旦被删除,还有后路
那么是否有可能权限控制也失效了,备份也都被删除了呢?那当然有可能,那就不是“误删”了,是故意的了,就会被送到一个包吃包住的好地方去了。
恢复硬盘数据 :
1.5 扩展:cmd当中的小操作
- 按住键盘上键下键就可以找历史命令(省点劲)
- 复制粘贴:选中内容,回车复制,右键粘贴
1.6 公司中会涉及到的环境(题外话)
-
办公环境:入职的时候,公司给你发的电脑(当然也有少数公司,会自己让你带电脑->基本快跑,离得远远的),会通过这个电脑进行日常办公。基本配置也就是
8核CPU 16G内存 512G硬盘
-
开发环境:一般是以服务器的形式来提供的,办公电脑通过网络的连接到服务器。这个服务器端对应的设备一般都是大约在
16核CPU 64G内存 4T硬盘
有些项目跑起来是非常消耗资源的,一启动内存整不好就吃掉了几十个G,甚至上百G。用你自己的办公电脑当然是带不动的。
如果开发的程序比较小,这个时候就可能没有开发环境了,就可以直接用办公电脑开发 .
一般都是公司把过了保修期的设备拿来给程序猿作为"开发环境"
-
测试环境 : 测试的员工针对要测试的程序使用的环境 , 使用的机器基本也都是过了保修期的机器
-
线上环境/生产环境:也是服务器的形式来提供的,也需要通过办公电脑的网络远程去连接。配置要很好,大约
56核CPU 256G/512G内存 若干T硬盘
生产环境,实际上就是给外面的用户提供服务的环境,千万不能挂!
挂了会造成重大资源损失的
那么MySQL
服务器基本会出现在上面的 2 3 4 环境中 , 要是误删了 2 3 环境里面的数据库 , 其实相对来说情况还好 , 同事们加加班也就抢救回来了 , 基本要被很多人骂的 . 但是一旦你不小心删除了 4 也就是线上环境里面的数据库 , 那么就完蛋了 . 外面的用户会感受到直接的影响 , 大概率会导致用户流失 , 吃官司等等 . 严重的会引起重大的安全事故 !