初识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

相关推荐
yexuhgu1 分钟前
如何在 JavaScript 循环中动态构建 HTML 字符串
jvm·数据库·python
星河漫步Lu2 分钟前
QT6中五步完成Android的环境配置
android·qt
wang3zc3 分钟前
使用BERTopic对名言数据集进行批量主题建模的完整实践指南
jvm·数据库·python
Java成神之路-3 分钟前
面试题:堆表 vs 索引组织表:区别、场景
mysql
SZLSDH5 分钟前
数字孪生IOC的“双引擎”架构:当业务编排遇上渲染管线,如何实现场景适配?
数据库·ai·架构·数字孪生·数据可视化·智能体
m0_609160498 分钟前
Go语言如何做协程调度_Go语言协程调度原理教程【实用】
jvm·数据库·python
2301_8125396713 分钟前
golang如何实现全量数据迁移_golang全量数据迁移实现详解
jvm·数据库·python
顾随13 分钟前
(2)达梦数据库--SQl基础实践
前端·数据库·sql
zhaoyong22219 分钟前
uni-app怎么获取短信验证码 uni-app接入短信平台流程【实战】
jvm·数据库·python
Jetev19 分钟前
CSS如何实现图片自动裁剪填充_巧用object-fit属性控制尺寸
jvm·数据库·python