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

相关推荐
Kapaseker2 小时前
Compose 进阶—巧用 GraphicsLayer
android·kotlin
黄林晴2 小时前
Android17 为什么重写 MessageQueue
android
倔强的石头_18 小时前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
阿巴斯甜1 天前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
Kapaseker1 天前
实战 Compose 中的 IntrinsicSize
android·kotlin
xq95271 天前
Andorid Google 登录接入文档
android
黄林晴1 天前
告别 Modifier 地狱,Compose 样式系统要变天了
android·android jetpack
冬奇Lab2 天前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿2 天前
Android MediaPlayer 笔记
android
Jony_2 天前
Android 启动优化方案
android