目录
1.区分概念
mysql指的是数据库服务里面的客户端;
mysqld指的是数据库服务里面的服务端;
2.什么是数据库
对于什么是数据库这个问题,我们可以从宏观和微观两个方面进行解释;
微观上面:对于数据进行管理的一套系统我们就可以成为数据库;
宏观上面:mysql发送请求给mysqld的服务端,服务端把这个请求发给数据库文件进行处理,把处
理之后的结果返回到服务端,然后再传输给客户端;我们把上面这一套系统叫做数据库;
文件也可以存储数据,为什么还要有数据库,因为文件只能读写,无法进行数据的修改等各项工
作,无法满足程序员的需求;
3.数据库的创建和销毁
我们要把和这个sql层面和数据层面建立关系,本质上对于文件目录进行操作;
4.数据库编码初识
创建数据库的时候,有两个编码集:
一个就是数据库编码集---数据库未来存储数据;
一个就是数据库校验集----查找匹配数据,需要进行查找比较,主要是支持数据库的字段比较,使用的编码本质也是读取数据库里面的数据采用的编码格式;
数据库无论对于数据进行任何操作,需要保证数据库里面的操作和编码必须编码一致;
5.查询系统默认编码配置
使用下面的两个指令进行系统的编码集和校验集的编码配置的查看,并且附上了对应的这个测试案例:
show variables like 'character_set_database';
show variables like 'collation_database';
我的这个云服务器上面默认的编码是这个latin1的格式,这个只是众多的编码方式里面的一种,还有例如这个我们熟悉的utf-8之类的这个等等;
6.两个查询编码表的指令
查询系统的字符集的可使用的编码方式:第一列是字符集的编码方式charset,第三列的就是我们的字符集对应的校验集的编码方式collation;
#字符集满足的编码方式列表
show charset;
另外一个可以进行相同的功能的指令就是:这个结果的第一列就是校验集的编码规则,第二列就是对应的字符集的编码规则,这个对应的很紧密,方便我们进行查看;
#查看校验集的编码方式
show collation;
7.创建指定编码的数据库
使用charset指令字符集的编码方式,使用collate指定校验集的编码方式;
这个其实就类似于C++里面的缺省参数,如果我们进行这个参数(编码方式的指定)这个时候数据库就会按照我们的这个指定去进行这个数据库的创建,但是如果我们没有进行指定编码方式,这个时候创建的数据库就会使用默认的这个编码方式;
8.不同编码的区别
这个主要是通过两个数据库不同的校验方式查看不同的这个效果:
第一个编码方式:
这个是不会区分大小写的,我们使用这个编码方式创建数据库,use是进入这个数据库,后面我们也会有说明,create table就是创建表,括号里面的这个是这个表的数据类型;
insert是在这个表里面插入数据
第二个编码方式:
这个区分大小写,操作是一样的,我们的这个编码是对于校验集而言的,这个校验集就是我们对于这个数据进行修改操作的时候,这个进行比对使用的编码方式;
查询结果说明:
第一个输出的既有大写的,也有小写的,这个就是不区分大小写的编码规则,第二个是区分大小写,所用只输出了小写的a ,这个就说明了两个编码方式之间的区别;
9.数据库的增删查改
- 增:create数据库,上面最开始的时候有介绍;
- 删:drop数据库,上面也有介绍过;
- 查:show数据库的名字,这个时候就可以去查看这个数据库的信息;
- 改:alter数据库,下面的这个就是修改字符集的编码规则的一段指令
- 查看当前所在的数据库目录
- 使用的就是select database()这个指令,显示结果就是我们当前的数据库,类似于这个pwd显示当前的文件目录
使用这个数据库,对于数据库进行修改等操作:
我们首先需要use +数据库的名字,这个之后再进行其他的操作,类似于这个cd的作用
use test2
上面的这个就是我们进入对应的这个test2 数据库里面,然后就可以进行这个修改等操作;
10.数据库的备份和恢复
-B包含这个数据库的床架和use的操作,如果我们的指令里面没有这个-选项,这个时候我们就需要去自己创建这个数据库,然后use,这个时候才可以进行下面的操作;加上这个B之后就可以直接进行下面的操作;
例如我们的这个电脑1上面的数据库重定向到一个磁盘文件里面,使用下面的这个指令,然后把这个数据库拷贝到电脑2上面去,这个时候我们需要进行这个恢复的操作;
还原的时候:我们使用的就是这个source指令,这个指令后面的内容就是这个电脑2上面的新的数据库的拷贝的位置,这个时候我们就可以把这个电脑1里面的这个数据库的内容拷贝到我们的电脑2上面去了;