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 数据库名;