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

相关推荐
禁默2 小时前
MySQL 表约束实战指南:从概念到落地,守护数据完整性
数据库·mysql
l1t2 小时前
测试duckdb的C插件模板的编译加工和加载
c语言·开发语言·数据库·插件·duckdb
风起云涌~2 小时前
【Android】浅谈androidx.startup.InitializationProvider
android
T - mars2 小时前
数据迁移:MySQL => SQL Server
数据库·mysql
Monkey-旭2 小时前
Android 注解完全指南:从基础概念到自定义实战
android·java·kotlin·注解·annotation
JIngJaneIL3 小时前
记账本|基于SSM的家庭记账本小程序设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·家庭记账本小程序
_Re.3 小时前
DSC 归档配置相关
数据库·oracle·php
用户2018792831673 小时前
浅析RecyclerView的DiffUtill实现
android
文言一心3 小时前
MySQL脚本转换为StarRocks完整指南
android·数据库·mysql