当前位置: 首页 > article >正文

【MySQL】 穿透学习数据库理论与知识剖析

        前言:本节内容讲述一些数据库的基本概念。 第一个部分就是数据库相关的概念, 比如什么是数据库, 如何理解mysqld以及mysql。第二部分理解数据库和表在系统层面的形式。 第三部分就是mysql的一些操作分类。 第四部分就是数据库的插件配置这些。

        ps:本节内容都是一些基础概念, 友友们可以放心观看哦。

目录

mysql登录

mysql退出

什么是数据库​编辑

见一见数据库

常见的主流数据库

服务器、数据库、表关系

mysql架构

SQL分类

存储引擎


mysql登录

mysql登录支持本地登录, 如下:

mysql -uroot -p;  //直接使用root登录, 使用密码登录

mysql 也支持远程登录, 只需要提供对应的mysql所在主机的ip地址和端口号:

mysql -h IP地址 -P 端口号 -u用户名 -p;   //登录远端mysql服务, 使用密码登录

mysql退出

mysql退出就是quit

什么是数据库

  •         mysql它是数据库服务的客户端
  •         mysqld它是数据库服务的服务器端
  •         mysql本质:基于C(mysql)S(mysqld)模式的一种网络服务。
  •         mysql是一套给我们提供数据存取得服务的网络程序。
  •         数据库一般指的是, 在磁盘或者内存中存储的特定结构组织的数据 -- 将来在磁盘上存储的一套数据库方案。
  •         数据库服务 -- mysqld。
  •         一般的文件给我们确实提供了数据的存储功能, 但是数据并没有给我们提供非常好的数据管理能力。 
  •         数据库本质:对数据内容存储的一套解决方案。用户给数据库字段或者要求, 数据库直接给用户结果。

        然后数据库的工作模式就是下图:

见一见数据库

        样例:使用mysql建立一个数据库, 建立一张表结构, 插入一些数据。-- 对比一下mysql在linux中是如何表现的。

        我们进入/var/lib/mysql, 可以看到里面一开始没有newdatabase文件。

但是我们在mysql中创建一个数据库后, 就能看到, /var/lib/mysql里面多出来了一个newdatabase文件。

所以, 我们就能知道, 其实建立数据库, 本质就是在linux下创建一个目录。

然后我们创建一个表:

use database;  //使用某个数据库
create table 表名称(
    字段一 数据类型,
    字段二 数据类型,
    字段三 数据类型,
    ………………
);   //创建表结构

然后我们就能发现/var/lib/mysql/newdatabase下面多出来了一个文件:

所以我们就知道了,在数据库内建立表, 本质就是在linux下创建对应的文件即可!

问题是, 上面这两个动作是谁做的? ——是mysqld服务帮我们做的。

数据库本质其实也是文件!只不过这些文件并不由程序员直接操作,而是由数据库服务帮我们进行操作。

常见的主流数据库

        常见的主流数据库其实有我们现在用的MySQL、 SQL server、Oracle、Redis等等。其中, Redis和其他三个又有区分, Redis是内存数据库, 它将数据存储在内存中, 所以有有非常快的读取速度。另外三个是关系型数据库, 基于表格结构, 适合做结构化的存储。 

服务器、数据库、表关系

        所谓的安装数据库服务器,其实就是在机器上面安装了一个mysqld,也就是数据库管理系统程序。  它以守护进程的形式在后台一直在运行。一次可以管理多个数据库。 

        这些数据库其实就是上面的DB。一般开发人员对每一个应用会创建一个数据库。

        为了保证应用中实体的数据,所以一般会在数据库中创建多个表,用来保存实体中的数据

mysql架构

        MySQL是一个可移植的数据库, 其实认识MySQL的架构,其实就是认识mysqld是如何进行服务的。 下面是mysqld的结构:        

        mysql首先最上层的是客户端, 也就是mysql那个程序。 mysql的客户端其实不只是能用这个程序来充当, 还可以使用c++等语言, 或者图形化界面的工具。

        然后下面就是mysqld, 也就是mysqlserver。 它整体是由我们的三层去构成。 第一层叫做链接池, 就是用来网络服务进行连接, 判断用户的身份合法性, 做一些安全管理相关的工作。 

        第二层就是我们的SQL相关的内容, 这一层用来将上层发来的SQL语句进行词法分析, 语法分析。 SQL语句优化等等工作。 就类似于编译器。

        第三层就是进行匹配一个一个具体的存储引擎, 存储引擎就类似于驱动, 这个存储引擎从上层接收我们下达下来的一些经过词法语法分析优化后的语句,然后对它们进行解释,所以, 这一层就是真正的办事的。 

SQL分类

  • DDL:数据定义语言——用来维护数据的结构, 用来定义表等
  • DML:数据操作语言——对表当中的内容进行操作。
  • DCL:数据控制语言——负责权限和事物的管理。

存储引擎

      存储引擎:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。        

        MySQL采用插件式的存储引擎, 支持多种存储引擎。 查看存储引擎的指令是:

show engines

  ——————以上就是本节全部内容哦, 如果对友友们有帮助的话可以关注博主, 方便学习更多知识哦!!!   


http://www.kler.cn/a/410449.html

相关文章:

  • C#中的异步操作
  • 20241125复盘日记
  • ApiChain 从迭代到项目 接口调试到文档生成单元测试一体化工具
  • Taro React小程序开发框架 总结
  • 中班幼儿户外运动游戏活动现状及策略研究
  • Large Spatial Model:End-to-end Unposed Images to Semantic 3D 论文解读
  • 深度学习创新之如何引入先验知识
  • 价格分类(神经网络)
  • Android解包super.img查看其文件信息
  • React表单联动
  • 【小白学机器学习33】 大数定律python的 pandas.Dataframe 和 pandas.Series基础内容
  • react 中解决 类型“never”上不存在属性“value”。
  • 电脑开启虚拟化的方法
  • TCL嵌入式面试题及参考答案
  • kafka学习-02
  • Elmentui实现订单拆单功能
  • Golang调用MongoDB的表自动增长的 ID 永久保存在 MongoDB 中,并且每次获取的 ID 是基于上次的结果
  • 5.5 W5500 TCP服务端与客户端
  • 排序算法(四)--快速排序
  • 移动语义和拷贝语义区别、智能指针
  • 深度学习3
  • 论文笔记 网络安全图谱以及溯源算法
  • JavaScript的基础数据类型
  • 241124_基于MindSpore学习Prompt Tuning
  • 【数据分析】基于GEE实现大津算法提取洞庭湖流域水体
  • 手机无法连接服务器1302什么意思?