MySQl基础----Linux下数据库的密码和数据库的存储引擎(内附 实操图和手绘图 简单易懂)

绪论​
涓滴之水可磨损大石,不是由于他力量强大,而是由于昼夜不舍地滴坠。 只有勤奋不懈地努力,才能够获得那些技巧。 ——贝多芬。新开MySQL篇章,本章非常基础,但同时需要一定的Linux基础,所以假若你没学习过Linux建议查看我的Linux专栏来巩固一定的Linux知识。我将持续更新期待你的关注。
在这里插入图片描述
话不多说安全带系好,发车啦(建议电脑观看)。

思维导图:


数据库基础

对于mysql数据库我们可以先了解其底层:

  1. mysql其实是Mysql服务的客户端

而在我们查看mysql进程 时常常会发现有个mysqld
在这里插入图片描述
他是什么呢??

  1. mysqld是Mysql服务的服务器端(d:表示deamon)

所以mysql本质是基于C(mysql)S(mysqld)模式的一种网络服务,(下图展示mysql是网络通信它的连接情况)在这里插入图片描述

  1. mysql是一套给我们提供数据存取的服务的网络程序
  2. 数据库一般指的是,在磁盘/内存中存储的特定结构组织的数据(将来在磁盘上存储的一套数据库方案)

所以我们理解数据库服务端mysqld、数据库客户端mysql以及底层文件的关系:
在这里插入图片描述

为什么不用文件来管理数据,而是使用数据库:

一般的文件确实提供了数据的存储功能,但是文件并没有提供非常好的数据管理能力,(此处若要获取/或修改文件中的数据就需要程序员去写代码来进行管理,有点麻烦且低效),所以需要一套管理文件的程序,这样我们程序员使用时就能更加快捷的管理好内部存储的数据:也就是数据库

数据库本质:对数据内容存储的一套解决方案,你给我字段或者要求,数据库直接给出想要的结果。

文件保存数据有以下几个缺点:

  1. 文件的安全性问题
  2. 文件不利于数据查询和管理
  3. 文件不利于存储海量数据
  4. 文件在程序中控制不方便

数据库存储介质:

  1. 磁盘
  2. 内存

mysql的基础使用

  1. 建立数据库和查看数据库:
创建数据库:
create database helloworld; #helloworld数据库名
查看已存在的数据库,一般会默认存在些 :
show databases;#

注:建立数据库,本质就是创建一个目录
在mysql的配置文件中其datadir就是mysql的数据默认存在的路径:/var/lib/mysql
具体如下:
在这里插入图片描述

  1. 表格的创建和插入的数据
    在库中存储的数据是以表格的形式存储的,要创建表就得先使用(进入)到数据库中,再初始化创建表格样式,最后插入数据到表格中。
1. 使用表
use helloworld; 2.初始表格结构
create table student( 
name varchar(32),
age int,
gender varchar(2)
);3.查看创建好的表
show tables;4.插入数据
insert into student(name,age,gender) value('张三',20,'男'); #插入数据到表格中:5.查看表的内容
select * from student;

在这里插入图片描述
在这里插入图片描述
注:在数据库库中创建表格也就相当于Linux下创建一个文件(mysqld服务端执行的):
在这里插入图片描述
3. 对此mysql帮我们解决了:程序员就不用再去关心数据文件了,只用去想要对文件做什么,然后通过mysqld服务器完成
在这里插入图片描述

附:mysql的数据是按逻辑存储的,通过行列的方式来存储数据的(二维结构),按行进行插入。


主流数据库:

  • SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
  • Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑(银行…),并发一般来说不如MySQL。
  • MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。
  • PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。
  • SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
  • H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。

服务器、数据库、表的关系相当于下图:

所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库一般开发人员会针对每一个应用创建一个数据库。
在这里插入图片描述


MySQL架构

MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、
Mac 和 Solaris。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。
Client connectors:客户端

在这里插入图片描述
大致分为三层

  1. 上图在MySQL Server中connection pool用于安全、链接管理,将所写的SQL语句和底层连接起来。
  2. 再connection pool下面的四个框其本质就是用来解释以及优化所写的SQL语句(类似于编译器)。
  3. 再下面Pluggable Storage Engines是各种存储引擎(类似于计算机中的驱动),程序员就能根据不同的需求选择不同的储存引擎,例如对于处理大文本就可以选择MyISAM、对于要快速查找数据就可以使用InnoDB(本质他们才是真正主要对数据进行处理办事的人)。

SQL语句的分类

  • DDL:DDL【data definition language】 数据定义语言,用来维护存储数据的结构,代表指令: create, drop, alter(定义表)
  • DML【data manipulation language】 数据操纵语言,用来对数据进行操作代表指令: insert,delete,update(修改表)
  • DCL【Data Control Language】 数据控制语言,主要负责权限管理和事务,代表指令: grant,revoke(取消权限),commit

DDL可以理解为库、表结构的操作,而DML就是结构体内的操作(理解成对库、表内部数据的操作!)


存储引擎

存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
Mysql的核心就是插件时的存储引擎,它是支持各种存储引擎的。
查看能使用的所有存储引擎语法:

show engines \G;

在这里插入图片描述


总结:

  1. MySQL底层也是C/S模式的一种网络服务,我们一般使用的就是mysql的客户端,而其底层还有服务端也就是mysqld,其中的d代表的就是deamon(守护进程的形式在后台进行着)

  2. MySQL在Linux角度,创建的库其实就是目录,而创建的表其实就是目录中的文件

  3. MySQL的结构大概分为三层:第一层是mysql的连接池用于管理连接和安全、第二层为对SQL语句的语意词义的分析(可以理解成编译器),第三层就是MySQL中的插件式存储引擎,这些储存引擎才是真正主要进行对数据的操作的。


本章完。预知后事如何,暂听下回分解。

如果有任何问题欢迎讨论哈!

如果觉得这篇文章对你有所帮助的话点点赞吧!

持续更新大量MySQL细致内容,早关注不迷路。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/13135.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

番外篇 | 关于YOLO11算法的改进点总结

前言:Hello大家好,我是小哥谈。在2024年9月27日盛大举行的YOLO Vision 2024活动上,Ultralytics公司震撼发布了YOLO系列的最新成员—YOLO11。作为Ultralytics YOLO系列实时目标检测器的最新迭代,YOLO11凭借尖端的准确性、速度和效率…

增长放缓,跨境电商如何以“体验”撬动高转化和高复购?

增长放缓, 跨境电商步入发展新周期 伴随着疫情红利的逐渐收缩,跨境电商市场从野蛮高速增长回归理性,步入新的发展周期,增幅放缓成为新常态。根据eMarketer的统计数据,全球跨境电商销售增长从2020年的26.7%下跌至2022年…

2024“龙信杯“电子数据取证竞赛——计算机取证题目Writeup

以下内容是2024年“龙信杯”电子数据取证竞赛计算机取证题目的答案与解题思路 前置 前置发现电脑中有EFS加密文件,故使用仿真软件保持原有密码进行仿真 1.分析计算机检材,嫌疑人在将其侵公数据出售前在Pycharm中进行了AES加密,用于加密的key…

Linux学习_12

第十一章 管理Linux软件包和进程 主要包括源码下载安装软件,PRM管理工具,YUM/DNF管理工具 源码下载安装软件 源码文件:是指包含计算机程序源代码的文本文件。源代码是用特定编程语言编写的人类可读指令,它描述了计算机程序的逻辑、…

2024年Python最新下载安装教程,附详细图文,持续更新

大家好,我是Java徐师兄,今天为大家带来的是Python3 的下载安装教程,适用于所有 Python3 版本,感兴趣的可以看一下 文章目录 简介一、Python的下载1 网盘下载地址 (下载速度比较快,推荐)2 官网下载地址 二、…

JAVA同城服务顺风车预约车拼车系统源码支持小程序+公众号+H5

JAVA同城服务顺风车预约车拼车系统源码,全面支持小程序、公众号及H5平台,精准定位于解决城市出行痛点,满足用户多样化、灵活化的出行需求。市场分析显示,该系统凭借便捷的预约拼车功能,有效缓解城市交通压力&#xff0…

126.WEB渗透测试-信息收集-ARL(17)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:125.WEB渗透测试-信息收集-ARL(16) POC信息里面有一些集成的poc …

什么是 ISP:了解互联网服务提供商的作用

一、ISP 基础知识 从本质上讲,ISP 提供两项主要服务:互联网接入和互联网传输。互联网接入是指使用户能够连接到互联网的物理和逻辑连接,通常通过调制解调器、路由器或其他网络设备。此连接可以是有线的(例如通过 DSL、光纤或电缆…

Trace——下一代自动微分工具,优化AI系统设计

人工智能咨询培训老师叶梓 转载标明出处 在自动化设计和更新AI系统,如编码助手、机器人和副驾驶等领域,优化问题的研究显得尤为重要。传统的自动微分框架,例如PyTorch,虽然能够高效地优化可微分系统,但在面对一般计算…

天猫商品详情数据API接口简介

随着电子商务的飞速发展,各大电商平台都在积极开发和完善自己的数据接口,以便为商家和消费者提供更加便捷、高效的服务。天猫作为阿里巴巴旗下的重要电商平台,其商品详情数据接口是商家获取商品信息、进行数据分析的重要工具。联讯数据将详细…

unity 玩家和炸弹切线计算方式

脚本挂在炸弹上! using System.Collections; using System.Collections.Generic; using UnityEngine;public class TargetDetaction : MonoBehaviour {private Transform PlayerTF;private Transform bomb;private float radius;private string Player "Play…

【Linux】————信号

作者主页: 作者主页 本篇博客专栏:Linux 创作时间 :2024年11月12日 信号和信号量 首先说明这两者之间没有任何关系 信号:信号是在软件层次对中断机制的一种模拟,是一种异步通知机制,用于通知进程发生…

【数据治理】你知道数据加密和脱敏技术?

👉博主介绍: 博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,WEB架构师,阿里云专家博主,华为云云享专家,51CTO 专家博主 ⛪️ 个人社区&#x…

python:用 sklearn 构建 K-Means 聚类模型

pip install scikit-learn 或者 直接用 Anaconda3 sklearn 提供了 preprocessing 数据预处理模块、cluster 聚类模型、manifold.TSNE 数据降维模块。 编写 test_sklearn_3.py 如下 # -*- coding: utf-8 -*- """ 使用 sklearn 构建 K-Means 聚类模型 "&…

10款PDF合并工具的使用体验与推荐!!!

在如今的信息洪流中,我们几乎每个人都被淹没在大量的数字文档之中。无论是学生、教师还是职场人士,我们都需要高效地管理和处理这些文档。而PDF文件,凭借其跨平台的稳定性和通用性,成了最常用的文档格式之一。我们经常需要处理、编…

匿名管道 Linux

目录 管道 pipe创建一个管道 让子进程写入,父进程读取 如何把消息发送/写入给父进程 父进程该怎么读取呢 管道本质 结论:管道的特征: 测试管道大小 写端退了,测试结果 测试子进程一直写,父进程读一会就退出 …

【stablediffusion又出王炸】IC-Light,可以操控图像生成时的光照,光照难题终于被解决了!

IC-Light代表Impose Constant Light,是一个控制图像照明的项目。可以操控图像生成时的光照,对内容主体重新打光生成符合新背景环境光照的图片。这下商品图合成这种需要最大程度保持原有主体 ID 需求的最大的问题解决了。 Controlnet, Layerdiffusion, IC-light… …

HTML文本标签学习记录

HTML:HyperText Markup Language(超文本标志语言) HTML结构&#xff1a; 一个文档声明&#xff1a;<!DOCTYPE html>表示这是一个HTML页面 一个html标签对&#xff1a;<html></html>作用是告诉浏览器&#xff0c;这个页面是从<html>开始&#xff0c;…

Vmware安装macos虚拟机

解锁虚拟机安装 maOS 限制 下载工具包 https://github.com/DrDonk/unlocker解压进入文件夹unlocker.exe 以管理员身份运行win-install.bat 以管理员身份运行 Vmware创建虚拟机 虚拟机配置设置 选择类型 镜像选择 系统选择 存储路径设置 启动虚拟机实例 选择语言 磁盘管…

机器学习-4:机器学习的建模流程

机器学习的建模流程 流程为&#xff1a; 原始数据 --> 数据预处理 --> 特征工程 --> 建模 --> 验证。 原始数据收集 所有AI或机器学习的基础就是数据&#xff0c;没有数据就什么都做不了&#xff0c;在搭建一个系统之前首要考虑的就是有没有足够多的数据可以支撑这…