【MySQL】MySQL数据库 —— 简单认识

news2025/4/19 23:31:18

目录

1. 数据库的介绍

1.1 什么是数据库

1.2 数据库和数据结构之间关系

2. 数据库分类

2.1 关系型数据库(RDBMS)

2.2 非关系型数据库

2.3  区别

一些行内名词简单解释:

3. 关于mysql 主要学什么

4. MySQL中重要的概念

4.1 概念

4.2 MySQL服务器/客户端介绍

4.3 客户端与服务器结构示意图

4.4 了解硬盘

4.5 数据库服务器如何管理数据

5.  SQL分类


1. 数据库的介绍

1.1 什么是数据库

存储数据用文件就可以了,为什么还要弄个数据库?

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

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

数据库存储介质:

  1. 磁盘
  2. 内存

为了解决上述问题,专家们设计出更加利于管理数据的软件 ——— 数据库,它能更有效的管理数据。

数据库可以提供远程服务,即通过远程连接来使用数据库,因此也称为数据库服务器。

1.2 数据库和数据结构之间关系

数据库是一个“广义的概念”:

  • 表示一门学科,研究的是如何设计实现一个数据库(数据库软件背后的思想方法,设计)
  • 表示一类软件,管理数据的软件;
  • 表示某一个具体的数据库软件;
  • 表示部署了某个数据库软件的主机(电脑)
  • 目前要学习的数据库,是某一个具体的数据库软件,这个软件就是用来组织/保存/管理/数据的,组织这些数据也是为了后续进行增删改查(CRUD)。具体的数据库被实现的过程中,也应用了很多的数据结构。
  • 数据结构,是一门学科,研究数据如何组织的。对于少量的数据,不需要组织,如果是大量的数据,就要好好组织起来,以便于后续进行增删改查。抽象的学科。

2. 数据库分类

数据库大体可以分为 关系型数据库非关系型数据库

2.1 关系型数据库(RDBMS)

是指采用了关系模型来组织数据的数据库。 简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。

基于标准的SQL实现的(SQL语句一种编程语言),是内部一些实现有区别。常用的关系型数据库软件如:

  1. Oracle 数据库圈子里的带头大哥!!! 甲骨文公司产品,适合大型项目,适用于做复杂的业务逻辑,如ERP、OA等企业信息系统。也适用于对于数据安全要求极高,以及不在意成本的场景下,例如:银行 最好的——收费贵
  2. MySQL 当前使用最广泛的数据库。后期被甲骨文收购了。主流互联网公司都在用MySQL 用的最多——开源免费
  3. SQL Server 微软的产品,很好的数据库,安装部署在Windows server上,适用于中大型项目。很多学校数据库课就是用这个。 好用不火——早些年捆绑销售
  4. SQLite 轻量级数据库,整个程序就是一个exe 可执行文件,体积大概就是 1M 运行时吃的内存啥的也都不高。正是因为这个东西轻量,经常会放到一些"小的"嵌入式系统上使用,最典型的就是手机(安卓系统内置了sqlite)

这些数据库大同小异,90%以上都是共通的。

上面这些数据库的统称为关系型数据库,关系数据库对于数据库中的数据的格式,要求比较严格。

即关系型数据库,可以认为是比较传统的数据库,使用“表”这样的结构来组织数据的。与excel表相似,有很多行很多列,每条数据都是一个行(一个记录),一行里面有很多列(一个字段),每一行的列数与列的含义都得匹配。(下面有详细介绍)

2.2 非关系型数据库

不规定基于SQL实现。现在更多是指NoSQL数据库,如:

  1. 基于键值对(Key-Value):如 Memcached、redis
  2. 基于文档型:如 Mongodb
  3. 基于列族:如 Hbase
  4. 基于图型:如 Neo4j

非关系型数据库比较灵活,会使用“文档”/“键值对”这样的结构来组织数据。

代表的软件:redis,MongoDB,HBase,功能上相比于关系性数据库要少一些,但是性能更高,同时更适合当下大数据分布式这样的时代背景

2.3  区别

关系型数据库非关系型数据库
使用SQL不强制要求,一般不基于SQL实现
事务支持支持不支持
复杂操作支持不支持
海量读写操作效率低效率高
基本结构基于表和列,结构固定灵活性比较高
使用场景业务方面的OLTP系统用于数据的缓存、或基于统计分析的OLAP系统

注:OLTP(On-Line Transaction Processing)是指联机事务处理,OLAP(On-Line AnalyticalProcessing)是指联机分析处理。

一些行内名词简单解释:

嵌入式:

  • 生活中有很多设备也是计算机。例如冰箱,洗衣机,空调,投影仪,电视,这些设备上也搭载了计算机,
  • 这样的计算机只需要完成一些特功能就行了,不需要啥太高的配置。所以这样的开发就是嵌入式开发,这样的设备就是嵌入式设备。

大数据:

  • 没有规定数据多大的数据是大数据,如果数据一个机器装不下了,此时就需要使用多个机器来装,此时这样的数据就是“大数据”。
  • 引入了多台机器,相互配合功能存储和管理这样的一份数据,此时就称为“分布式”系统。分布式系统中,机器之间需要通过网络进行通信的。
  • 大数据与分布式是一体两面,描述的同一件事,只不过是不同角度,一个是从数据角度,一个是从机器角度。

云计算:

  • 云?就是服务器!!! 买一个服务器,服务器的配置可能比你电脑配置高很多,可以借助服务器帮忙进行计算。
  • 例如:像现在有的厂商"云游戏",但是最大的问题是网络延迟。

微服务:

  • 在分布式的基础上(分布式就是使用多个机器共同管理一组数据),当我们在分布式背景下,引入的机器太多了,此时就需要对机器分分类,分类分的越多越细,整体的结构就更复杂了,单个机器干的事情就更少了,更单一了(称为叫做微服务)
  • 相当于是 分布式系统 演化过程中的一个阶段。网络评价堆微服务褒贬不一

3. 关于mysql 主要学什么

1、SQL语句,是一种编程语言

  • sql是编程语言,sql server,mysql,oracle 是软件
  • sql这个语言是运行在这些数据库软件上的(就像java运行在jvm上)
  • 通过SQL来完成对数据库的增删改查;在不同的数据库软件,可能对于sql的语法支持的略有差异,但整体都是一样的。

2、数据库背后的一些典型原理(面试题)

3、通过Java代码来操作数据库(MySQL) — 至关重要

  • 在工作中,绝大多数针对数据库的操作,都是通过代码来自动完成的。
  • 我们学习mysql主要是使用命令行界面来操作的,市面上也存在很多的图形化程序。本质上都是在操作SQL
  • 因为公司中有些环境,只能用命令行操作。

4. MySQL中重要的概念

4.1 概念

MySQL 这个数据库软件,是一个“客户端 - 服务器”结构的程序

  • 客户端(Client):主动发起的
  • 服务器(Server):被动接受的
  • 客户端与服务器通过网络进行通信的。

例如:我去饭馆吃饭。

  • 我,就是客户端;饭馆,就是服务器,我和饭馆之间发生了交互,
  • 我是主动发起交互的这一方,因此我叫做客户端,餐馆是被动接受交互的这一方,因此餐馆就是服务器。

客户端/服务器的定义,只是根据主动被动来确定的,

  • 例如某个程序,场景1中可能是主动的,在场景2中可能是被动的,此时这个程序既是客户端也是服务端

请求(Request) : 客户端给服务器发的数据,就是请求。

响应(Response):服务器返回给客户端的数据,就是响应

4.2 MySQL服务器/客户端介绍

在安装的mysql的时候,同时安装了 mysql 的服务器和 mysql 的客户端
mysql的客户端和服务器通过网络进行通信,客户端和服务器可以在同一个主机上(现在学习怎么使用mysql的情况)也可以在不同的主机上(以后工作中基本就是这个情况)

服务器:

  • 由于服务器是被动的,服务器不知道什么时候客户端会发来请求,所以对于一般的服务器程序来说,是要持续运行的。7*24小时 一天工作24小时,一周工作7天, 007(全年无休)
  • 停电断网,这些都有可能会对服务器的稳定性造成影响,从而造成崩溃。一般大的互联网公司都会从技术上来解决上述问题,保证服务的稳定性是非常高的,一年之内不可用的时间不会超过5min
  • 一个服务器,同一时刻,可能要给多个客户提供服务。例如一个餐馆,不是专属给我开门的,而是给很多人提供“吃饭”服务的。当然也不绝对,有的服务器是专属服务器。例如:分布式系统中服务器是给少数一两个客户端提供服务的。餐馆也有专属餐馆。

客户端:

  • 没有客户端也没关系,直接在cmd里输入mysql命令启动也行,客户端本体是这个mysql命令。开始菜单里只不过是这个一串命令的快捷方式
  • 当然我们也可以使用第三方软件提供的mysql客户端(不仅仅是可以搭配 mysql 也可以搭配别的数据库)
  • 但要保证mysql服务器一定是安装的,服务器才是真正的本体,真正存储数据的部分。客户端这边用哪个都无所谓。
  • 这里我们为什么要使用命令行客户端,为啥不使用图形化界面的客户端?
    workbench, navicat, datagrip <=> 图形化客户端在工作中,不一定能用得了。
  • 而命令行客户端是100%能用的!!!

4.3 客户端与服务器结构示意图

mysql自带的客户端是一个命令行程序。用户在客户端中输入的任何命令最终都会换成网络上的数据传输给服务器。

数据是存储到客户端上还是服务器上的呢?

  • 数据是存储在服务器上被保存和管理的。服务器是mysql的本体,重要性和复杂程度,远远超过客户端。
  • 客户端是非常简单的,也有很多种形态;第三方的客户端,比如 navict,自己写代码也能实现客户端,都是通过网络交互。

mysql具体是使用啥样的硬件设备来保存的呢?

mysql以及其他的关系型数据库,都是使用 硬盘 来保存数据的

4.4 了解硬盘

计算机五大组成部分:控制器、运算器、存储器、输入设备、输出设备

祖师爷:冯诺·依曼 —— 计算机之父

祖师爷:图灵

内存与外存(硬盘)区别对于程序设计,有深远影响的。都是相对而言的

  1. 内存访问速度快,外存访问速度慢。 速度能差3~4个数量级 几千倍
  2. 内存的空间比较小,外存的空间更大。 例如我的电脑,内存16GB ,硬盘 1T
  3. 内存成本高,外存成本便宜。
  4. 内存的数据,断电后会丢失;外存的数据,断电后数据还在。
  • 内存存储的数据,是“易失”的
  • 外存存储的数据,是“持久”的
  • “持久化”这个词,意思就是把数据写到硬盘上。
  • 数据库存储的数据,希望存储的数据量比较大,持久化存储
  • 也有少数数据库是使用内存的,追求速度的最大化,例如:redis

我们常说手机上内存多少GB,例如256GB,实际上说的是硬盘,手机真正的内存,是"运存"

计算机单位:bit 一个二进制位

8bit = 1byte

1024byte = 1KB

1024KB => 1MB

1024MB => 1GB

1024GB => 1TB

1024TB => 1PB

4.5 数据库服务器如何管理数据

数据库服务器具体如何在硬盘上组织数据的呢?

  1. mysql服务器为了更好地组织数据,把上面要存的数据逻辑上划分出了多个数据集合,这些数据集合也称为“数据库”
  2. 每个数据库里,使用“表”这样的结构来组织数据。
  3. 每个表里有很多条记录(record),每个记录也就是一行(row).
  4. 每一行这里又得有很多列(colimn),每个列也成为一个字段(field)
关系型数据库都是这一套结构,关系型数据库对于数据的格式要求是比较严格的
反观,非关系型数据库,数据存储往往是基于文档/键值对格式就比较松散,要求不严格。

“表”相当于excel表,有很多行很多列,每一条数据就是一个行(一个记录),一行有很多列(一个字段),每一行的列数与列的含义都得匹配,最上面一行是表头(描述每一个列是啥意思)

注意,数据库这个词,可能会表达多种含义,结合上下文来理解

  1. 表示研究数据库这个软件如何设计的学科
  2. 表示管理数据的这类软件
  3. 某个具体的管理数据的软件
  4. 安装了某个数据库软件的机器
  5. 数据库服务器软件里面管理的一个数据集合
  6. ......

5.  SQL分类

DDL数据定义语言,用来维护存储数据的结构

  • 代表指令: create, drop, alter

DML数据操纵语言,用来对数据进行操作

  • 代表指令: insert,delete,update
  • DML中又单独分了一个DQL,数据查询语言,代表指令: select

DCL数据控制语言,主要负责权限管理和事务

  • 代表指令: grant,revoke,commit

以上SQL我们主要会在后面学习DDL和DML的操作。


好啦Y(^o^)Y,本节内容到此就结束了。下一篇内容一定会火速更新!!!

后续还会持续更新MySQL方面的内容,还请大家多多关注本博主,第一时间获取新鲜的知识。

如果觉得文章不错,别忘了一键三连哟!

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

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

相关文章

RNN - 语言模型

语言模型 给定文本序列 x 1 , … , x T x_1, \ldots, x_T x1​,…,xT​&#xff0c;语言模型的目标是估计联合概率 p ( x 1 , … , x T ) p(x_1, \ldots, x_T) p(x1​,…,xT​)它的应用包括 做预训练模型&#xff08;eg BERT&#xff0c;GPT-3&#xff09;生成本文&#xff…

过拟合、归一化、正则化、鞍点

过拟合 过拟合的本质原因往往是因为模型具备方差很大的权重参数。 定义一个有4个特征的输入&#xff0c;特征向量为,定义一个模型&#xff0c;其只有4个参数&#xff0c;表示为。当模型过拟合时&#xff0c;这四个权重参数的方差会很大&#xff0c;可以假设为。当经过这个模型后…

【python画图】:从入门到精通绘制完美柱状图

目录 Python数据可视化&#xff1a;从入门到精通绘制完美柱状图一、基础篇&#xff1a;快速绘制柱状图1.1 使用Matplotlib基础绘制1.2 使用Pandas快速绘图 二、进阶篇&#xff1a;专业级柱状图定制2.1 多系列柱状图2.2 堆叠柱状图2.3 水平柱状图 三、专业参数速查表Matplotlib …

基础知识:离线安装docker、docker compose

(1)离线安装docker 确认版本:Ubuntu 18.04 LTS - bionic 确认架构:X86_64 lsb_release -a uname -a 官方指南:https://docs.docker.com/engine/install/ 选择Ubuntu,发现页面上最低是Ubuntu20.04, 不要紧

畅游Diffusion数字人(27):解读字节跳动提出主题定制视频生成技术Phantom

畅游Diffusion数字人(0):专栏文章导航 前言:主题定制视频生成,特别是zero-shot主题定制视频生成,一直是当前领域的一个难点,之前的方法效果很差。字节跳动提出了一个技术主题定制视频生成技术Phantom,效果相比于之前的技术进步非常显著。这篇博客详细解读一下这一工作。 …

《Adaptive Layer-skipping in Pre-trained LLMs》- 论文笔记

作者&#xff1a;Xuan Luo, Weizhi Wang, Xifeng Yan Department of Computer Science, UC Santa Barbara xuan_luoucsb.edu, weizhiwangucsb.edu, xyancs.ucsb.edu 1. 引言与动机 1.1 背景 LLM 的成功与挑战: 大型语言模型 (LLMs) 在翻译、代码生成、推理等任务上取得巨大成…

微信小程序实现table样式,自带合并行合并列

微信小程序在代码编写过程好像不支持原生table的使用&#xff0c;在开发过程中偶尔又得需要拿table来展示。 1.table效果展示 1.wxml <view class"table-container"><view class"table"><view class"table-row"><view cla…

电脑的品牌和配置

我的笔记本是2020年买的&#xff0c;之前的订单找不到了&#xff0c;就知道是联想&#xff0c;不清楚具体的配置。 本文来源&#xff1a;腾讯元宝 检查系统信息&#xff08;Windows&#xff09; 这通常是 ​​联想&#xff08;Lenovo&#xff09;​​ 的型号代码。 81XV 是联想…

Redis面试——常用命令

一、String &#xff08;1&#xff09;设置值相关命令 1.1.1 SET 功能&#xff1a;设置一个键值对&#xff0c;如果键已存在则覆盖旧值语法&#xff1a; SET key value [EX seconds] [PX milliseconds] [NX|XX]EX seconds&#xff1a;设置键的过期时间为 seconds 秒 PX milli…

Swin-Transformer-UNet改进:融合Global-Local Spatial Attention (GLSA) 模块详解

目录 1.模块概述 2.swinUNet网络 3. 完整代码 1.模块概述 Global-Local Spatial Attention (GLSA) 是一种先进的注意力机制模块,专为计算机视觉任务设计,能够同时捕捉全局上下文信息和局部细节特征。 该模块通过创新的双分支结构和自适应融合机制,显著提升了特征表示能…

ubuntu 向右拖动窗口后消失了、找不到了

这是目前单显示器的设置&#xff0c;因为实际只有1个显示器&#xff0c;之前的设置如下图所示&#xff0c;有2个显示器&#xff0c;一个主显示器&#xff0c;一个23寸的显示器 ubuntu 22.04 系统 今天在操作窗口时&#xff0c;向右一滑&#xff0c;发现这个窗口再也不显示了、找…

2025最新版微软GraphRAG 2.0.0本地部署教程:基于Ollama快速构建知识图谱

一、前言 微软近期发布了知识图谱工具 GraphRAG 2.0.0&#xff0c;支持基于本地大模型&#xff08;Ollama&#xff09;快速构建知识图谱&#xff0c;显著提升了RAG&#xff08;检索增强生成&#xff09;的效果。本文手把手教你如何从零部署&#xff0c;并附踩坑记录和性能实测…

libevent服务器附带qt界面开发(附带源码)

本章是入门章节&#xff0c;讲解如何实现一个附带界面的服务器&#xff0c;后续会完善与优化 使用qt编译libevent源码演示视频qt的一些知识 1.主要功能有登录界面 2.基于libevent实现的服务器的业务功能 使用qt编译libevent 下载这个&#xff0c;其他版本也可以 主要是github上…

智能体数据分析

数据概览&#xff1a; 展示智能体的累计对话次数、累计对话用户数、对话满意度、累计曝光次数。数据分析&#xff1a; 统计对话分析、流量分析、用户分析、行为分析数据指标&#xff0c;帮助开发者完成精准的全面分析。 ps&#xff1a;数据T1更新&#xff0c;当日12点更新前一天…

STM32(M4)入门: 概述、keil5安装与模板建立(价值 3w + 的嵌入式开发指南)

前言&#xff1a;本教程内容源自信盈达教培资料&#xff0c;价值3w&#xff0c;使用的是信盈达的405开发版&#xff0c;涵盖面很广&#xff0c;流程清晰&#xff0c;学完保证能从新手入门到小高手&#xff0c;软件方面可以无基础学习&#xff0c;硬件学习支持两种模式&#xff…

采用若依vue 快速开发系统功能模块

文章目录 运行若依项目 科室管理科室查询-后端代码实现科室查询-前端代码实现科室名称状态搜索科室删除-后端代码实现科室删除-前端代码实现科室新增-后端代码实现科室新增-前端代码实现科室修改-后端代码实现前端代码实现角色权限实现 运行若依项目 运行redis 创建数据库 修改…

HTML:表格数据展示区

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>人员信息表</title><link rel"styl…

Oracle测试题目及笔记(单选)

所有题目来自于互联网搜索 当 Oracle 服务器启动时&#xff0c;下列哪种文件不是必须的&#xff08;D&#xff09;。 A&#xff0e;数据文件 B&#xff0e;控制文件 C&#xff0e;日志文件 D&#xff0e;归档日志文件 数据文件、日志文件-在数据库的打开阶段使用 控制文件-在数…

Jmeter创建使用变量——能够递增递减的计数器

Jmeter创建使用变量——能够递增递减的计数器 如下图所示&#xff0c;创建一个 取值需限定为0 2 4这三个值内的变量。 Increment&#xff1a;每次迭代后 递增的值&#xff0c;给计数器增加的值 Maximum value&#xff1a;计数器的最大值&#xff0c;如果超过最大值&#xff0…

数据结构之BFS广度优先算法(腐烂的苹果)

队列这个数据结构在很多场景下都有使用&#xff0c;比如在实现二叉树的层序遍历&#xff0c;floodfill问题(等等未完成)中&#xff0c;都需要借助队列的先进先出特性&#xff0c;下面给出这几个问题的解法 经典的二叉树的层序遍历 算法图示&#xff0c;以下图所示的二叉树为例…