【MySQL 数据库】数据库的基础知识「建议收藏」

【MySQL 数据库】数据库的基础知识「建议收藏」文章目录1.认识数据库1.1数据库和数据结构的关系1.2为什么需要数据库1.3数据库的存储2.SQL2.1介绍2.2分类3.数据库的类别3.1关系型数据库3.2非关系型数据库3.3区别4.MySQL的程序结构4.1客户端和服务器4.2MySQL的客户端-服务器结构4.3MySQL服务器1.认识数据库1.1数据库和数据结构的关系数据结构:是指相互之间存在一种或多种特定关系的数据元素的集合,是一个抽象的学科我们熟知的数据结构有:顺序表、链表、栈、队列、二

大家好,又见面了,我是你们的朋友全栈君。

1. 认识数据

1.1 数据库和数据结构的关系

数据结构:

是指相互之间存在一种或多种特定关系的数据元素的集合,是一个抽象的学科

我们熟知的数据结构有:

顺序表、链表、栈、队列、二叉树、哈希表…

数据库:

和数据结构不同,它是一类更具体的可以管理数据的软件。但是实现数据库的这个软件,需要用到很多的数据结构

而使用数据库管理数据具体的功能就包括:

  • 描述:描述一条数据如何表示
  • 组织:如何将很多数据进行汇总

至于管理的目的就是:

为了增删改查

1.2 为什么需要数据库

数据库要将数据进行管理的前提就是将数据进行存储。但是存储数据使用文件就可以了,为什么还要弄个数据库呢?

因为使用文件保存数据有以下几个缺点:

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

1.3 数据库的存储

当下绝大部分计算机都遵守着冯诺依曼体系结构在这里插入图片描述

数据的存储一般放在内存储器外存储器(外存储器包括:硬盘、光盘、U盘、软盘等,但这里指硬盘

数据库是有多种的,并没有统一规定所有数据库存放的位置,但主要的数据库的数据存储位置如下:

  • 大部分数据库是把数据组织在外存储上,如:MySQL、Oracle、SQL Server
  • 少数数据库是把数据组织到内存上,如:Redis

补充: MySQL 为什么要把数据存储在外存储器(硬盘)中呢?这里我们就要先了解下内存和硬盘的区别

区别 内存 外存(硬盘)
1 内存的访问速度快 硬盘的访问速度慢
2 内存的空间小 硬盘的空间大
3 内存贵 硬盘便宜
4 如果掉电,内存上的数据会丢失 如果掉电,硬盘的数据不会丢失

综合以上2、3、4的区别,认为 MySQL 使用硬盘来存储数据更好

2. SQL

2.1 介绍

结构化查询语言(Structured Query Language)简称 SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统

注意: SQL 和 MySQL 的区别

  • SQL 是一种编程语言
  • MySQL 是一种软件,它属于关系型数据库的一种,而关系型数据库都是支持 SQL 的,而非关系型数据库有的支持,有的不支持 SQL

2.2 分类

SQL 可以分为6部分:

  • 数据查询语言(DQL): 其语句也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。
  • 数据操作语言(DML): 其语句包括动词 INSERT、UPDATE 和 DELETE。它们分别用于添加、修改和删除。
  • 事务控制语言(TCL): 它的语句能确保被 DML 语句影响的表的所有行及时得以更新。包括COMMIT(提交)命令、SAVEPOINT(保存点)命令、ROLLBACK(回滚)命令。
  • 数据控制语言(DCL): 它的语句通过 GRANT 或 REVOKE 实现权限控制,确定单个用户和用户组对数据库对象的访问。某些 RDBMS 可用 GRANT 或 REVOKE 控制对表单个列的访问。
  • 数据定义语言(DDL): 其语句包括动词 CREATE、ALTER 和 DROP。在数据库中创建新表或修改、删除表(CREATE TABLE 或 DROP TABLE)、为表加入索引等。
  • 指针控制语言(CCL): 它的语句,像 DECLARE CURSOR、FETCH INTO 和 UPDATE WHERE CURRENT 用于对一个或多个表单独行的操作。

3. 数据库的类别

数据库大体可以分为:

  • 关系型数据库
  • 非关系型数据库

3.1 关系型数据库

介绍:

  • 是指采用了关系模型来组织数据的数据库。简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表格及其之间的联系所组成的一个数据组织
  • 关系型数据库都基于标准的 SQL,只是内部的一些实现有区别

常见关系型数据库:

  • Oracle:甲骨文产品,是数据库中的王者。由于收费,且随着数据量的增大对机器要求比较高,所以使用成本很高。适用于银行这类对数据的安全和服务要求很高且本身很有钱的公司
  • MySQL:被甲骨文收购,开源免费。现在很多公司普遍使用它
  • SQL Server:微软产品,由于曾经这个数据库和 windows server 系统进行了捆绑,而大多数服务器系统都是在 Linux 上,所以逐渐失去市场。如今可以支持 Linux

3.2 非关系型数据库

介绍:

  • 非关系型数据库一般指 NoSQL,区别于关系数据库,它们不保证关系数据的 ACID 特性,都是去掉关系数据库的关系型特性
  • 不规定基于 SQL 实现

常见非关系型数据库:

  • redis:基于键值对(key-value)
  • mongodb:基于列族
  • hbase:基于文档型

3.3 区别

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

补充:

  • OLTP(On-Line Transaction Processing):是指联机事物处理
  • OLAP(On-Line Analytical Processing):是指联机分析处理

4. MySQL 的程序结构

MySQL 其实是一个“客户端-服务器”结构的程序

那么什么是客户端和服务器呢?下面将简单介绍

4.1 客户端和服务器

介绍:

  • 客户端:是主动发起请求的一方
  • 服务器:是被动接受请求的一方
  • 客户端给服务器发送的数据,称为:请求(Request)
  • 服务器给客户端返回的数据,称为:响应(Response)
  • 一个服务器同时可能给多个客户端提供服务
  • 大部分客户端服务器都是这种“一个请求一个响应”的交互模型
  • 客户端和服务器是通过网络来通信的

示例:

你去饭店吃饭,你跟老板说来一碗农家一碗香,后面老板给你把你点的餐端上来。

此时你就是“客户端”,饭店老板就是”服务器“,你跟老板点餐就是你的”请求“,老板把你点的餐端上来就是”响应“。而一个老板其实可以服务多个客户。

4.2 MySQL 的客户端-服务器结构

当我们使用 MySQL 时,我们其实会遇见以下几种情况

  1. 在同一台主机安装 MySQL 客户端和 MySQL 服务器(我们自己在个人电脑安装时就是这种情况)在这里插入图片描述
  2. MySQL 客户端和 MySQL 服务器分别在两台不同的主机上在这里插入图片描述
  3. 实际工作中往往是下面这种情况,多台主机的客户端连接一台主机的服务器在这里插入图片描述

注意:

  • MySQL 是把数据存储在服务器上,服务器才是数据库的本体,负责管理数据
  • MySQL 客户端其实就是一个非常简单的程序,仅仅是用来和用户交互的。这个程序可能是:命令行程序、可视化界面的程序、自己代码实现的程序

4.3 MySQL 服务器

介绍:

  • MySQL 服务器其实含有若干个数据库(每个数据库视为是一组逻辑上的集合)

  • 一个数据库包含了若干个有关联的表

  • 一个表包含了若干行(每一行都有若干条记录)

  • 一行包含了若干列(每一列都有具体的类型要求)

示例:

假如有一个 MySQL 服务器存储着 CSDN 的数据,它里面可能有3个数据库。数据库1存储着:用户信息、用户排名、文章数量等数据。数据库2存储着:活动内容、投稿文章、奖品信息等数据。数据库2存储着:视频、资源等数据。而其中数据库1中的例如用户信息等数据,它其实就是一个表,类似于 excel 表,而有关联的几个表,就组成了一个数据库。

注意:

数据库的含义其实要依照上下文,它可能是一门学科,也可能是一类软件,有时也指一个服务器,有时还表示一个数据集合等

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153388.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java——流

    Java——流

    2021年5月25日
    122
  • Linux——vi命令详解[通俗易懂]

    Linux——vi命令详解[通俗易懂]vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。

    2022年6月9日
    89
  • 常用Eclipse快捷方式

    Ctrl+1快速修复Ctrl+D:删除当前行Ctrl+Alt+↓复制当前行到下一行(复制增加)Ctrl+Alt+↑复制当前行到上一行(复制增加)Alt+↓当前行和下面一行交互位置(特

    2021年12月26日
    45
  • 6种不同画法画平行线_「精品」漫画人物轮廓画法(精华版)「建议收藏」

    「教程」漫画人物脸部绘画基础part01脸部轮廓的画法(精修版)一、漫画线条与变形想要将人的脸或表情用自己的风格表现出来,需要抓住其特征,然后进行简单化、夸张化的变形,这是不可或缺的手段。在实际开始动笔画之前,关于如何变形要好好考虑清楚。01.简化主线用少量的线条画出角色的特征难度很高。刚开始练习的可以参考照片,拿真人的脸做练习,然后再逐步减少主线的线条,将画面简单化。①细碎的发丝归拢为…

    2022年4月5日
    242
  • spss分析方法聚类分析_变量聚类分析

    spss分析方法聚类分析_变量聚类分析聚类分析是根据研究对象的特征,按照一定标准对研究对象进行分类的一种分析方法。下面我们主要从下面四个方面来解说:一、实际应用聚类分析的目标就是在相似的基础上收集数据来分类。聚类源于很多领域,包括数学,计算机科学,统计学,生物学和经济学。在不同的应用领域,很多聚类技术都得到了发展,这些技术方法被用作描述数据,衡量不同数据源间的相似性,以及把数据源分类到不同的簇中。商业上:聚类分析被用来发现不同的客户群,并且通过购买模式刻画不同的客户群的特征。聚类分析是细分市场的有效工具,同时也可用于研究消费者行为

    2022年10月18日
    4
  • mysql主键自增策略_MySQL 自增主键机制

    mysql主键自增策略_MySQL 自增主键机制自增主键:特指在自增列上定义的主键。自增主键的优点是让主键索引保持递增顺序的插入,避免页分裂,索引更加紧凑。1.自增值保存在哪?不同的存储引擎保存自增值的策略不一样;a.对于MyISAM引擎,自增值保存在数据文件中;b.Innodb引擎,mysql5.7之前,自增值保存在内存中,而且不会持久化自增值。每次重启后第一次打开表,都会去查找自增值的最大值max(id),并设置表当前自增值为ma…

    2022年6月29日
    59

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号