初识MYSQL —— 数据库基础
什么是数据库?
数据库是按照数据结构化来组织、存储和管理数据的仓库。(存放数据的仓库)
它是一个按照特定规则存储在计算机存储设备上的数据集合。
简单来说,数据库就是用来存储数据的仓库;那 文件也可以存储数据啊,为什么要使用数据库存储呢?
我们知道文件存储数据时,从文件中读取数据时,是按字节流读取的;还要将读取到的字节流数据转化为我们需要的数据,这一些列操作都需要我们自己去做。
如果文件中的数据特别多时,我们进行数据查询和管理都会特别的麻烦。
并且使用文件存储数据,文件也无法保证数据的安全性。
而数据库是按照数据结构化来存储和管理数据,在我们进行数据查询和管理时相比于文件会便利很多。
并且使用数据库存储数据,数据安全性也要比文件好。
理解mysql
数据库
在安装完成mysql
数据库之后,在我们的服务器中,不仅仅只存在mysql
、还存在一个mysqld
。
mysql
: 数据库服务的客户端mysqld
: 数据库服务的服务器端(守护进程)而
mysql
数据库本质:基于C/S
模式的一种网络服务
所以,mysql
是一种提供数据存取服务的网络服务。
在登录mysql
时,可以指定ip
地址和端口号:
-h
: 表示要登录数据库所在主机的ip
地址-P
: 指明端口号-u
:user
登录用户-p
:password
密码登录
而我们在本机登录时,就可以省略ip
地址;如果在/etc/my.cnf
中配置了端口号,也可以省略-P
端口号。
所以,mysql
数据库是存在客户端和服务端的,systemctl start mysql
命令就是启动mysqld
服务。
那也就是说我们使用的
mysql
都是服务端,登录数据库之后,进行相关操作(发送请求给服务端);服务端
mysqld
在接受请求后,访问磁盘文件,进行对应操作,然后将结果再返回给客户端。
数据库本质
简单了解了mysql
数据库,使用mysql
要创建数据库,创建对应的表啊;数据库、表在linux
中又是什么呢?
1. 数据库
我们知道,mysql
的数据存储在:/var/lib/mysql
路径下:
当前服务器中是没有创建对应的数据库和表的;使用create database
语句可以创建一个数据库
create database helloworld;
可以看到,创建完helloworld
数据库之后,在var/lib/mysql
路径下,就多了一个helloworld
目录。
在Linux
中数据库本质上就是一个目录
创建完数据库,要使用该数据库,就要使用use
语句。
use helloworld;
2. 数据表
数据库本质就是一个目录,那表呢?
这里,创建表就要使用cteate table
语句:
create table student(id int,name varchar(32),gender verchar(2)
);
在刚创建的helloworld
数据库中,当前是没有任何数据表的,现在创建一个student
数据表。
可以看到,在helloworld
数据库中创建的student
数据表,就是在/var/lib.mysql
路径下的一个普通文件。
3. 插入/访问数据
数据库相当于linux
中的一个目录,数据表相当于数据库目录中的一个普通文件。
那插入、访问数据呢?
使用insert into
语句可以像数据库中插入数据:
insert into student(id,name,gender) values("1","小廉","男");
这里向表中插入的三条数据,此时再查看student
数据表对应的文件,文件大小并没有改变(这里暂时不关注这个问题)
要查看刚插入的三条数据,可以使用select
语句:
select * from stident;
4. 服务器、数据库和数据表
所谓的安装数据库服务器,只不过是在机器上按照了一个数据库管理系统程序,该程序可以管理多个数据库。
一般情况下,在数据库中会创建多个表,用来保存应用中实体的数据。
数据库服务器、数据库和表的关系如下:
总结:
- 创建数据库,本质上就是在
linux
中创建一个目录(数据存储路径下)。- 创建数据表,本质上就是在数据库目录文件中,创建对应的文件。
- 插入数据,本质就是文件写入,访问数据,本质就是文件读取。
- 创建数据库、表、访问数据,这些工作都是有数据库服务
mysqld
完成的。
linux
中创建一个目录(数据存储路径下)。
- 创建数据表,本质上就是在数据库目录文件中,创建对应的文件。
- 插入数据,本质就是文件写入,访问数据,本质就是文件读取。
- 创建数据库、表、访问数据,这些工作都是有数据库服务
mysqld
完成的。
这里管理MYSQL
架构、存储引擎,这里就不介绍了,感兴趣可以了解一下。
本篇文章到这里就结束了,感谢支持
我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=2oul0hvapjsws