初识MYSQL —— 数据库基础

什么是数据库?

数据库是按照数据结构化来组织、存储和管理数据的仓库。(存放数据的仓库)

它是一个按照特定规则存储在计算机存储设备上的数据集合。

简单来说,数据库就是用来存储数据的仓库;那 文件也可以存储数据啊,为什么要使用数据库存储呢?

我们知道文件存储数据时,从文件中读取数据时,是按字节流读取的;还要将读取到的字节流数据转化为我们需要的数据,这一些列操作都需要我们自己去做。

如果文件中的数据特别多时,我们进行数据查询和管理都会特别的麻烦。

并且使用文件存储数据,文件也无法保证数据的安全性。

而数据库是按照数据结构化来存储和管理数据,在我们进行数据查询和管理时相比于文件会便利很多。

并且使用数据库存储数据,数据安全性也要比文件好。

理解mysql数据库

在安装完成mysql数据库之后,在我们的服务器中,不仅仅只存在mysql、还存在一个mysqld

  • mysql : 数据库服务的客户端
  • mysqld : 数据库服务的服务器端(守护进程)

mysql数据库本质:基于C/S模式的一种网络服务

所以,mysql是一种提供数据存取服务的网络服务。

在登录mysql时,可以指定ip地址和端口号:

  • -h : 表示要登录数据库所在主机的ip地址
  • -P : 指明端口号
  • -uuser登录用户
  • -ppassword密码登录

而我们在本机登录时,就可以省略ip地址;如果在/etc/my.cnf中配置了端口号,也可以省略-P端口号。

所以,mysql数据库是存在客户端和服务端的,systemctl start mysql命令就是启动mysqld服务。

那也就是说我们使用的mysql都是服务端,登录数据库之后,进行相关操作(发送请求给服务端);

服务端mysqld在接受请求后,访问磁盘文件,进行对应操作,然后将结果再返回给客户端。

数据库本质

简单了解了mysql数据库,使用mysql要创建数据库,创建对应的表啊;数据库、表在linux中又是什么呢?

1. 数据库

我们知道,mysql的数据存储在:/var/lib/mysql路径下:

当前服务器中是没有创建对应的数据库和表的;使用create database语句可以创建一个数据库

sql 复制代码
create database helloworld;

可以看到,创建完helloworld数据库之后,在var/lib/mysql路径下,就多了一个helloworld目录。

Linux中数据库本质上就是一个目录

创建完数据库,要使用该数据库,就要使用use语句。

sql 复制代码
use helloworld;

2. 数据表

数据库本质就是一个目录,那表呢?

这里,创建表就要使用cteate table语句:

sql 复制代码
create table student(
	id int,
	name varchar(32),
	gender verchar(2)
);

在刚创建的helloworld数据库中,当前是没有任何数据表的,现在创建一个student数据表。

可以看到,在helloworld数据库中创建的student数据表,就是在/var/lib.mysql路径下的一个普通文件。

3. 插入/访问数据

数据库相当于linux中的一个目录,数据表相当于数据库目录中的一个普通文件。

那插入、访问数据呢?

使用insert into语句可以像数据库中插入数据:

sql 复制代码
insert into student(id,name,gender) values("1","小廉","男");

这里向表中插入的三条数据,此时再查看student数据表对应的文件,文件大小并没有改变(这里暂时不关注这个问题)

要查看刚插入的三条数据,可以使用select语句:

sql 复制代码
select * from stident;

4. 服务器、数据库和数据表

所谓的安装数据库服务器,只不过是在机器上按照了一个数据库管理系统程序,该程序可以管理多个数据库。

一般情况下,在数据库中会创建多个表,用来保存应用中实体的数据。

数据库服务器、数据库和表的关系如下:

总结:

  • 创建数据库,本质上就是在linux中创建一个目录(数据存储路径下)。
  • 创建数据表,本质上就是在数据库目录文件中,创建对应的文件。
  • 插入数据,本质就是文件写入,访问数据,本质就是文件读取。
  • 创建数据库、表、访问数据,这些工作都是有数据库服务mysqld完成的。

linux中创建一个目录(数据存储路径下)。

  • 创建数据表,本质上就是在数据库目录文件中,创建对应的文件。
  • 插入数据,本质就是文件写入,访问数据,本质就是文件读取。
  • 创建数据库、表、访问数据,这些工作都是有数据库服务mysqld完成的。

这里管理MYSQL架构、存储引擎,这里就不介绍了,感兴趣可以了解一下。

本篇文章到这里就结束了,感谢支持

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=2oul0hvapjsws

相关推荐
白衣鸽子11 分钟前
数据库高可用设计的灵魂抉择:CAP权衡
数据库·后端
limingade1 小时前
手机转SIP-手机做中继网关-落地线路对接软交换呼叫中心
android·智能手机·手机转sip·手机做sip中继网关·sip中继
九皇叔叔1 小时前
Linux Shell 正则表达式:从入门到实战,玩转文本匹配与处理
linux·mysql·正则表达式
RainbowC01 小时前
GapBuffer高效标记管理算法
android·算法
程序员码歌1 小时前
豆包Seedream4.0深度体验:p图美化与文生图创作
android·前端·后端
DokiDoki之父1 小时前
Mybatis—入门 & (配置)SQL提示和日志输出
数据库·sql·mybatis
Wang's Blog2 小时前
MySQL: 高并发电商场景下的数据库架构演进与性能优化实践
mysql·性能优化·数据库架构
TDengine (老段)2 小时前
TDengine 数据函数 LN 用户手册
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
机灵猫2 小时前
Redis 在订单系统中的实战应用:防重、限流与库存扣减
数据库·redis·缓存
、花无将2 小时前
PHP:下载、安装、配置,与apache搭建
android·php·apache