mysql数据库相关知识【MYSQL】

  • 一. 库
    • 1.1 登录数据库管理系统
    • 1.2 什么是数据库
      • 1.2.1 mysqld与mysql
    • 1.3 编码集和校验集
      • 1.3.1 什么是编码集和校验集
      • 1.3.2 查看库对应的编码集和校验集
      • 1.3.3 用指定的编码集和校验集
    • 1.4 库的操作

一. 库

1.1 登录数据库管理系统

这个算是第一个学的mysql指令了吧。

这里我们就来稍微讲一下这个指令的含义。

mysql -h 127.0.0.1-P 3306 -u root -p

-h:指明登录部署mysql的主机
-P:访问的端口号
-u:以什么身份去访问
-p :密码

还记得前面安装的博客中
my.cnf这个文件
它就是mysql的配置文件

所以得益于配置文件:
不加-h默认连接本地服务器配置的mysql
不加-p 默认就用的默认端口

1.2 什么是数据库

在我们口语上,数据库一般指的是:在磁盘或者内存中存储的特定结构组织的数据
说白了就是用来存储数据的库


指的就是这里的一个个数据库文件,这些都是保存数据的库,这里可以说是我们口语意义上的数据库。

但是上面既然提了使用口语的,那数据库肯定没有表面上这么简单了,所以接下来就要详细介绍了。

1.2.1 mysqld与mysql

在介绍数据库的到底是什么之前,我们首先要清楚数据库的本质是什么?

数据库的本质其实是:基于C(客户端)S(服务端)模式的一种网络服务,是针对数据内容存储的一套解决方案
既然是CS模式,mysql中肯定有客户端和服务端了。

数据库服务的客户端:mysql

其实我们平常一直用的mysql其实是它的服务端,但是可不能把mysql这个服务端看成mysql服务的全部了

数据库服务的服务器端:mysqld

还记得每次我们启用mysql服务的时候,需要在指令中将mysqld进行开启。

这里开启的mysqld,实际上就是服务端。

知道mysql的服务端和客户端后
实际上他们的作用我们也能推测出来了


大致的流程就是这样。

这里我们了解客户端和服务端后
这里就能介绍mysql到底是个什么了。


用户通过客户端进行操作
用户的操作经过服务端审查后,服务端帮助用户进行磁盘上的文件操作
文件上保存的就是数据库和各种数据表

这样的每个环节每个步骤就是数据库了
我们口头上的数据库,指的就是其中最后的一个部分。

这里小提一下。

建表和建库本质就是在linux磁盘中创建文件和目录
数据库本质也是文件,我们前面提了,是mysqld服务端进行磁盘的操作的。
那这里我们其实也可以越过客户端自己去创建。

这里是我的mysql路径下的数据库:

其实数据库的本质是目录,这里我们在mysql的路径下创建一个test目录

这里我们再登录到数据库系统中

这里就能发现多出了test的这个文件

1.3 编码集和校验集

1.3.1 什么是编码集和校验集

创建数据库,有两个编码集:
1.数据库编码集——数据库存储的数据
2.数据库校验集——读取数据库的数据或者操作时采用的编码格式

说直白点:编码集就是数据库中的表存储的数据类型

校验集就是对表中的数据进行读取和操作时,需要遵从的对应数据类型的方式。

1.3.2 查看库对应的编码集和校验集

1.查看对数据库存储的默认编码集:

show variables like 'character_set_database';


这样就能看到数据库存储的默认编码集

这个默认编码集可以再my.cnf配置文件中进行更改
因为之前在安装mysql博客中演示过,这里就不演示了。

2.查看对数据库操作默认校验集:

show variables like 'collaction_database';


这个同样也能在配置文件中设置

因为我没设置过,所以这里显示的就是空。

3.查看总体的默认校验集

show variables like 'collation_%';

4.查看数据库支持的所有字符集

show charset;

创建了数据库后,在数据库文件目录中可以看见db.opt

这里随便创建一个数据库进行查看


这里我们可以用cat来进行查看

这里就能看到它的编码集和校验集。

1.3.3 用指定的编码集和校验集

创建指定编码集和校验集:

create database d4 charset=utf8 collate utf8_general_ci;


这里我们能在db.opt中进行验证。

修改字符集和校验集:

alter database d2 charset=gbk collate gbk_chinese_c1;

1.4 库的操作

展现所有数据库

show databases;

** 数据库名——创建数据库**

create database 数据库名;

数据库名 ——删除数据库

drop database 数据库名;

查看当前在哪个数据库

select database();

展现当时创建数据库用的指令

show create database 数据库名;