【MySQL】数据库的基础概念

在这里插入图片描述

👦个人主页:@Weraphael
✍🏻作者简介:目前学习计网、mysql和算法
✈️专栏:MySQL学习
🐋 希望大家多多支持,咱一起进步!😁
如果文章对你有帮助的话
欢迎 评论💬 点赞👍🏻 收藏 📂 加关注✨


目录

  • 一、数据库的基本概念
      • 1.1 区分mysql和mysqld
      • 1.2 数据库存储介质
  • 二、见见猪跑
      • 2.1 连接数据库
      • 2.2 使用案例
  • 三、服务器、数据库、表关系
  • 四、MySQL架构
  • 五、Mysql语句分类
  • 六、 存储引擎

一、数据库的基本概念

1.1 区分mysql和mysqld

我们在连接MySQL服务器的时候使用mysql命令;而启动MySQL服务时又使用mysqld,它们的区别是什么呢?

  • mysql数据库服务的客户端

  • mysqld数据库服务的服务端(服务器)。负责接收客户端请求,然后处理数据库操作、维护数据等核心功能。当启动MySQL服务器时,实际上就是在运行mysqld进程。

因此,数据库其实是一种 基于 CS 模式的网络服务,是一套提供数据存储服务的网络程序。用户只需要通过客户端服务器发出 SQL 语句,然后等待服务器将数据返回即可。

CS:首先它是客户端 Client和服务器 Server 开头首字母的缩写。因此,客户端C代表mysql,服务器S代表mysqld

在这里插入图片描述

1.2 数据库存储介质

那么数据库中的数据是以什么样的形式存储的呢?

实际上,MySQL中的数据就是以文件的形式存储在磁盘上的。这些文件可不是一般的文件,它包括数据库文件、表文件等。当在MySQL中创建新的数据库、表,或者进行数据操作时,数据会被写入这些文件中。这样的设计可以确保数据持久化,即使服务器重新启动或断电,数据仍然可以被恢复。

那么为什么不能简单地把数据以普通文件的形式存储,而使用专门的数据库管理系统?

普通文件确实提供了数据存储功能,但并没有提供很好的数据管理能力(只提供读写),比如对一个10亿行的文档的内容要求快速增删查改某个字段,那么要遍历文件信息,效率是非常低的(文件对内容管理效率低下)

数据库是在磁盘上对数据内容存储了一套解决方案,用户只需给数据库字段或要求,然后等待数据库直接给用户返回结果就行。具备简单、高效、可靠管理数据的特性,可以轻而易举的对数据进行操作。

在这里插入图片描述

二、见见猪跑

2.1 连接数据库

  1. 连接数据库前需要确保 MySQL 服务已启动
systemctl start musqld
  1. 连接数据库
mysql -h IP地址 -P 端口号 -u 用户 -p

选项说明:

  • -h 指定要连接的MySQL服务器的IP地址。默认情况下,127.0.0.1是本地IP

  • -P 指定要连接的MySQL服务器的端口号。默认情况下,MySQL使用3306端口号;当然了,也可以自己在my.cnf配置文件中修改端口号。 vim /etc/my.cnf 修改完后需要手动重启MySQL服务,以便配置文件生效 systemctl restart mysqld

  • -u :指定登录用户。

  • -p:登录MySQL需要输入密码。后面也能跟密码,如-p密码

指令也可以简写成如下

mysql -u root -p

2.2 使用案例

  • 查看当前服务器上的数据库
show databases;
# 分号不能省略

在这里插入图片描述

我们在配置数据库文件时说过,mysql数据存放的路径在/var/lib/mysql

在这里插入图片描述

  • 创建数据库
create database [名称];

在这里插入图片描述

我们可以对比没建立此数据库之前,确实/var/lib/mysql路径下增加了[Test]目录。因此,建立数据库本质就是在Linux中新建一个目录

在这里插入图片描述

  • 创建数据库表

在这么多数据库列表中,首先要确定使用哪个数据库

use [数据库名称];

然后再创建数据库表

create table [表名](
     id int,
     name varchar(32),
     gender varchar(32)
);

在这里插入图片描述

我们可以再次看看Test目录下有什么变化

在这里插入图片描述

从以上图片可以看到目录下确实多了一个名为 [Test] 的相关文件。因此,创建数据库表的本质是在Linux下创建文件

结合以上操作,我们得出:数据库本质也是文件!只不过这些文件不需要程序员直接操作,而是由数据库服务mysqld在帮我们操作

  • 向表中插入数据
insert into student (id, name, gender) values (1, '张三', '男');
insert into student (id, name, gender) values (2, '李四', '女');
insert into student (id, name, gender) values (3, '王五', '男');
  • 查询表中的数据
select * from [表名];

在这里插入图片描述

  • 清屏操作
system clear;
  • 退出
quit;
# exit;

三、服务器、数据库、表关系

从以上案例可以得出:数据库呈现结果通常以表格的形式展示,这是因为关系型数据库使用了关系型数据模型,而表格是关系型数据模型中最基本的数据组织形式。

而表格形式符合人们对数据的直观认知,便于我们快速查看数据信息

  • 行:代表一个记录或实体

  • 列:代表一个字段或属性

在这里插入图片描述

在关系型数据库中,服务器承担着提供数据存储和处理能力的角色,数据库负责组织和存储数据,而表则是数据的具体载体,用于存储和管理实际的数据记录。这三者之间的关系可以理解为:服务器上托管了一个或多个数据库,每个数据库中包含了多个表,而表则包含了实际的数据记录。

四、MySQL架构

MySQL是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如Unix/LinuxWindowsMac等。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。

在这里插入图片描述

  • 连接池: 用于管理客户端与服务器之间的连接。连接池负责处理客户端请求的连接管理,包括连接的建立、维护和释放,以提高数据库访问的效率和性能。

  • 管理服务和工具: 包括各种管理和监控工具,用于配置、监视和管理MySQL服务器实例的运行状态和参数设置。

  • 解析器: 负责解析和分析客户端提交的SQL查询语句。

  • 查询优化器: 用于对查询执行计划进行优化,选择最佳的查询执行策略,以提高查询性能和效率。

  • 缓存: 包括查询缓存和数据缓冲池,用于缓存查询结果和数据页,减少磁盘 I/O操作,提高数据访问速度。

  • 存储引擎: 如何存储数据、管理索引、处理事务等功能。

  • 日志组件: 记录数据库操作日志,包括事务日志、错误日志、慢查询日志等,用于数据恢复、故障排查和性能优化。

五、Mysql语句分类

MySQL语句可以根据其功能和用途分为多个主要分类,常见的分类包括:

  1. 数据操作语句(Data Manipulation Language,DML):用来维护存储数据的结构,常用于对数据库、表进行操作
select # 用于从数据库中检索数据。
insert # 用于向数据库表中插入新记录。
update # 用于更新数据库表中的记录。
delete # 用于从数据库表中删除记录。
  1. 数据定义语句(Data Definition Language,DDL):用来对数据进行操作,比如对表中的数据进行增删改查
create # 用于创建数据库对象,如表、索引等。
alter # 用于修改数据库对象的结构。
drop # 用于删除数据库对象。
  1. 数据控制语句(Data Control Language,DCL):主要负责权限和事务的管理,可以给用户赋予数据库的权限
grant # 用于赋予用户权限。
revoke # 用于撤销用户权限。

六、 存储引擎

  • 存储引擎:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法
  • MySQL的核心就是插件式存储引擎,支持多种存储引擎。

MySQL中可以选择使用不同的存储引擎,不同的存储引擎所带来的效果不同

如何查看当前支持哪些存储引擎?

show engines;

在这里插入图片描述

存储引擎有很多,主要记住两个就行了:InnoDBMyISAM,至于它们的区别:

  • InnoDB 适合需要事务支持、数据完整性和高并发性能的应用
  • MyISAM 可能适用于只读数据、全文搜索或特定用途的应用

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Jackson 2.x 系列【4】对象映射器 ObjectMapper

有道无术,术尚可求,有术无道,止于术。 本系列Jackson 版本 2.17.0 源码地址:https://gitee.com/pearl-organization/study-jackson-demo 文章目录 1. 概述2. 案例演示2.1 创建对象2.2 写入2.3 读取 3. 泛型擦除 1. 概述 在前两篇…

【漏洞复现】5. Fastjson 1.2.24反序列化漏洞(CVE-2017-18349)复现

文章目录 1. 预备知识2. 漏洞复现2.1 漏洞介绍2.2 漏洞原理分析2.2.1 Fastjson序列化/反序列化原理2.2.2 Fastjson反序列化漏洞原理 2.3 实验环境2.3.1 靶场搭建 2.3.2 攻击机配置2.3.3 Java反序列化工具marshalsec:2.4 漏洞复现2.4.1 漏洞探测 2.5 漏洞修复 1. 预备…

中央空调的计费方式

中央空调如何计费 电费计量型中央空调计费方法 计费原理:电费计量型就是通过计量空调末端的用电量,再根据用电量换算为冷量,统计中央空调系统中各用户的总冷量,再根据各用户的冷量比例来分摊费用。 优点: 电量参数容易计量,管理…

白话transformer(五):位置编码

在前面其实讲过位置编码的完整内容,这次我们具体看看他的数学原理 B站视频讲解 白话transformer(五) 1、位置编码的位置 根据原论文的结构图我们可以看到,位置编码位于embedding后,在正式进入注意力机制前面。 也就是…

【二叉树】算法例题

目录 九、二叉树 68. 二叉树的最大深度 ① 69. 相同的树 ① √ 70. 翻转二叉树 ① 71. 对称二叉树 ① 72. 从前序与中序遍历序列构造二叉树 ② 73. 从中序与后续遍历序列构造二叉树 ② 74. 填充每个节点的下一个右侧节点指针 II ② 75. 二叉树展开为链表 ② 76.…

蓝牙耳机品牌排行榜前十名,选购硬核机型,避免不必要的开销!

在现代社会,蓝牙耳机正逐渐取代传统有线耳机,成为主流的选择。尽管市场竞争激烈,但找到一款适合自己的蓝牙耳机并非易事。我在这里为你推荐几款我认为值得信赖的蓝牙耳机,希望能助你一臂之力,找到最适合你的那一款。 一…

一文读懂MES和ERP的区别

MES(Manufacturing Execution System)系统是制造执行系统,位于上层的计划管理系统与生产过程的直接工业控制系统之间,是面向车间层的管理信息系统,能够对整个车间制造过程进行优化,实时收集生产过程中的数据…

天翼云研发告诉我:AH封装的IPsec不能穿越NAT设备

正文共:1333 字 14 图,预估阅读时间:2 分钟 最近跟中国电信做VPN的研发交流了一下技术,发现技术爱好者跟研发之间的差距还是很明显的。 问题是我在配置天翼云的IPsec VPN连接时,发现IPsec策略的传输协议只有ESP协议可选…

YOLOv9改进策略:ECVBlock即插即用的多尺度融合模块,助力小目标涨点 | 顶刊TIP 2023 CFPNet

💡💡💡本文改进内容:ECVBlock即插即用的多尺度融合模块,助力检测任务有效涨点! yolov9-c-EVCBlock summary: 1011 layers, 68102630 parameters, 68102598 gradients, 252.4 GFLOPs 改进结构图如下&#x…

Centos7没有可用软件包 ifconfig问题解决

问题描述 在Centos7中查看ip没有ifconfig,使用yum安装ifconfig报错没有可用软件包 ifconfig问题解决 [rootlocalhost etc]# yum -y install ifconfig 已加载插件:fastestmirror base …

外贸网站常用的wordpress模板

零件配件WordPress外贸建站模板 汽车行业零配件WordPress外贸建站模板,卖配件、零件的外贸公司可以使用的WordPress主题。 https://www.jianzhanpress.com/?p4912 WordPress外贸独立站主题 简洁实用的WordPress外贸独立站主题,适合时尚服装行业搭建w…

酷开系统用电视为居家生活打开精彩窗口|酷开科技|酷开会员|

随着互联网的发展,电视也承载了更多的功能。相比于传统的电视,如今的智能电视屏幕更大、分辨率更高、色彩更加鲜艳,能够呈现出更加逼真的画面效果。当观众观看大屏电视时,仿佛置身于电影大幕的场景之中,感受到更为震撼…

SpringCloud Alibaba Nacos 服务注册和配置中心

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅,从传统的模块之间调用,一步步的升级为 SpringCloud 模块之间的调用,此篇文章为第十二篇,即介绍 SpringCloud Alibaba Nacos 服务注册和配置中心。 二、Nacos 简介 2.1 为…

C++初阶:vector相关练习

目录 1. 只出现一次的数2. 杨辉三角3. 删除有序数组中的重复项4. 只出现一次的数II5. 只出现一次的数III6. 数组中出现次数超过一半的数7. 电话号码的字母组合(多叉树遍历) 1. 只出现一次的数 题目信息: 题目链接: 只出现一次的数…

【python】flask服务端响应与重定向处理

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

Leetcode 3.15

Leetcode hot100 二叉树1.二叉搜索树中第K小的元素2.二叉树展开为链表3.从前序与中序遍历序列构造二叉树 二叉树 1.二叉搜索树中第K小的元素 二叉搜索树中第K小的元素 最重要的知识点:二叉树搜索树的中序遍历是升序的。 方法一:我们只需存储升序遍历&…

【蓝桥杯备赛】Day15:递推与递归(倒计时23天)

题目1:题目 2335: 信息学奥赛一本通T1422-活动安排 设有n个活动的集合E{1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi…

管易云·奇门对接打通金蝶云星空发货单查询接口与销售出库新增接口

管易云奇门对接打通金蝶云星空发货单查询接口与销售出库新增接口 ​​ ​​ 对接源平台:管易云奇门 管易云是上海管易云计算软件有限公司旗下的专注提供电商企业管理软件服务的品牌,总部位于中国上海张江高科技产业园区。管易云旗下拥有管易云C-ERP、EC-OMS、EC-W…

HarmonyOS卡片刷新服务,信息实时更新一目了然

如今衣食住行娱乐影音等App占据了大多数人的手机,一部手机可以满足日常大多需求,但对需要经常查看或进行简单操作的场景来说,总需要用户点开App操作未免过于繁琐。 针对该问题, HarmonyOS SDK为用户提供了Form Kit(卡…

为啥很多人觉得编程难学?

看到推特上网友菜脯写的一条推文: 菜脯:我大概知道,为啥很多人觉得编程难学了。 因为对我来说,编程过程就是 看资料——开始写——遇到问题——查资料——解决问题——继续写——继续遇问题——继续查资料… 这个循环似乎会一直持…