【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 可能适用于只读数据、全文搜索或特定用途的应用

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【教程】rax3000m emmc刷机 支持硬件QOS MT7981到底值不值

为什么选择rax3000m? 1、恩山论坛237大佬放出了硬件QOS功能,而很多几百元路由器一旦开启QOS就会变软件NAT走CPU转发,效果还不如x86软路由。这样就非常适合刷机,在家里跑pt、迅雷等任务时候不会卡顿,实测,丢…

智慧公厕:卫生、便捷、安全的新时代厕所变革

在城市快速发展的背景下,公共厕所的建设和管理变得越来越重要。智慧公厕作为厕所变革的一项全新举措,通过建立公共厕所全面感知监测系统,以物联网、互联网、大数据、云计算、自动化控制技术为支撑,实现对公共厕所的智能化管理和运…

Fabric.js在vue2中使用

Fabric.js安装 这里我是基于vue来使用的,先安装上Fabric.js npm install fabric 在main.js中 import fabric from fabric Vue.use(fabric);Fabric 提供了 7 种基础形状: fabric.Circle (圆)fabric.Ellipse (椭圆)fabric.Line (线)fabric.Polyline (多条…

camunda 与 pycamunda学习

camunda 与 pycamunda 相关链接: camunda 官方社区:https://docs.camunda.org/manual/7.17/ 官方社区提供的REST_API:https://docs.camunda.org/manual/7.17/reference/rest/ GITHUB 社区:https://github.com/camunda-community-hub Git…

18.WEB渗透测试--抓包技术(上)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:17.WEB渗透测试--Kali Linux(五)-CSDN博客 网站协议抓包 1.BurpSuite Burp Suite 是用…

makefile基础与实战编译C++项目

从源码到执行程序 makefile运行流程 :这个符号用于在执行的命令之前,通常会告诉make不要输出命令本身,只输出命令的结果。但是当它位于命令行的开头时,它通常会让Make静默执行该命令,即不在命令行中显示该命令&#xf…

学习笔记-华为IPD转型2020:3,IPD的实施

3. IPD的实施 1999 年开始的 IPD 转型是计划中的多个转型项目中的第一个(Liu,2015)。华为为此次转型成立了一个专门的团队,从大约20人开始,他们是华为第一产业的高层领导。董事会主席孙雅芳是这个团队的负责人。该团…

MacBook使用——彻底卸载并删除软件:NTFS for Mac

问题 之前因MacBook读写NTFS格式移动硬盘,我安装并使用了 Paragon NTFS for Mac ,试用期结束后将其从【应用程序】中卸载移除了。但之后每次开机启动时,系统还是会弹出【激活】通知,如下图 解决 Step1、在用户目录下的 Library 目…

STM32中MicroLIB的关闭为什么会导致卡死----解析

STM32MicroLIB 大家好我是 MHZ 。最近又开始往回捡单片机的知识了~ 之前大学的时候都没用过 STM 的 CubeMX,这会拿来用着感觉很方便啊~ 果然科技在进步! 在开发使用 Keil 对 STM32 进行开发的时候在会有一个叫做 MicroLIB 的选项。 这个的具体原因我搜…

c++ 指针大小

C的一个指针占内存几个字节? 结论: 取决于是64位编译模式还是32位编译模式(注意,和机器位数没有直接关系) 在64位编译模式下,指针的占用内存大小是8字节在32位编译模式下,指针占用内存大小是4字…

联合和枚举

联合体类型的声明 联合体(Union)是一种特殊的数据类型,它允许在同一内存位置存储不同类型的数据。与结构体不同的是,联合体的所有成员共享同一块内存空间,因此联合体的大小取决于它最大的成员的大小。 所以联合体也叫…

基于python的变配电室运行状态评估与预警系统flask-django-nodejs-php

近年来,随着我国工业化、城镇化步伐的不断加快,城市配电网络取得令人瞩目的发展成果。变配电室是供配电系统的核心,在供配电系统中占有特殊的重要地位[1]。变配电室电气设备运行状态和环境信息缺乏必要的监测评估预警手段,如有一日遭遇突发情…

蓝桥杯之动态规划冲刺

文章目录 动态规划01背包小练一下01背包网格图上的DP完全背包 最长公共字符串最长递增子序列 动态规划 动态规划:确定好状态方程,我们常常是确定前 当状态来到 i 时,前 i 个物体的状态是怎么样的,我们并不是从一个点去考虑&#x…

Python爬虫获取接口数据

Python爬虫获取接口数据 正常人的操作​​​​​​​​​​爬虫的思路标题获取请求信息标题请求转换为代码完整代码请求返回信息执行程序获取静态网页数据的教程,适用于我们要爬取的数据在网页源代码中出现,但是还是有很多的数据是源代码中没有的,需要通过接口访问服务器来获…

【计算机组成】27、有符号数和无符号数

文章目录 int 是有符号数 uint 是无符号数 所以 int8 的 范围是 -128 到 127 uint8 的范围是 0 到 255 同样的二进制 1000-0000 如果用 uint8 解释则为 255,但如果用 int8 解释则为 -128 同样的二进制 0111-1111 如果用 uint8 解释则为 127,但如果用…

云蜜罐技术(德迅猎鹰)诞生

数字化程度高且高价值信息密集的行业,如金融、能源、互联网、政府、教育、医疗、军工等行业,面对日益规模化、专业化的网络攻击,渐渐不再满足于一味的防守加固。除了巩固防线之外,他们愈发看重主动出击、感知更大范围内的攻击&…

MySQL的概述与安装

一、数据库的基本概念: 1.1 数据: 1) 描述事物的符号记录称为数据(Data)。数字、文字、图形、图像、声音、档案记录等 都是数据。 2)数据是以“记录”的形式按照统一的格式进行存储的,而不是…

Ubuntu 如何安装 Beyond Compare?

Ubuntu20.04安装Beyond Compare 4.3.7 一、官网下载方式一:方法二:使用 .deb 包安装 二、安装相关依赖和bcompare三、破解常见错误解决方法 ) 文件比较工具Beyond Compare是一套由Scooter Software推出的文件比较工具。主要用途是对比两个文件夹或者文件…

2024-3-13,14(CSS)

1.复合选择器 有两个或者多个基础选择器,通过不同的方式组合而成。 目的是更加准确高效的选择目标元素(标签) 分类: 后代选择器:选中某个元素的所有后代元素 写法:父选择器 子选择器 {CSS属性}&#x…

【导论】数据可信流通 从运维信任到技术信任

信任 信任概念由于其抽象性和结构复杂性,在社会学、心理学、营销学、经济学、管理学等不同 的领域定义是不同的,但是达成共识的观点是:信任是涉及交易或交换关系的基础。 信任的基石 ①身份可确认,②利益可依赖,③能…