MySQL基础01 — 认识数据库

前言

数据库:简单来说,存放数据、管理数据的仓库,即数据库。它与生活当中的图书馆是类似的,图书馆可以用来存放图书、管理图书、检索图书等操作。

数据库划分为两大类:

  • 传统的关系型数据库(RDBMS) – 通过表与表之间、行与列之间的关系进行数据的存储,类似 EXCEL 。以 MySQL、oracle、Sql Server、DB2 等为代表。虽然关系型数据库被称为传统的数据库,但其实现代的 SQL 已经可以处理 json、数组、对象等非结构化数据或半结构化数据,关系型数据库也在跟上时代的步伐。
  • 非关系型数据库(NOSQL,NoSQL = Not Only SQL)– 以 Redis、mongodb为代表。人们根据使用场景的不同,又将 NoSQL 做了四大类的划分:

    • KV 型 NoSQL(Key-Value Store) – KV 即 key-value,以存储键值对的形式的非关系型数据库。Redis 就是其中的代表之一。这一类数据库的数据基于内存,在数据的读写速度上非常地快。
    • 列式型 NoSQL(Wide-Column Store) – 在大数据领域中使用较多,以 Hbase 为典型代表之一。关系型数据库管理系统的数据是以一行一行的形式进行存储,可理解为 行式存储,其在物理磁盘上即占用连续的扇区,当拥有海量的数据时,这是一个致命伤。而采用列式存储进行查询时,只有指定的列的数据才会被读取,而不是整列。这一类数据库的特点是——查找速度快、可扩展性强、更容易分布式扩展。
    • 文档型 NoSQL(Document Store) – 所有的数据都存储在文档中,格式为 JSON 或 xml。ES(Elastic search)就是典型的代表之一,它存储数据的格式为 json,倒排索引数据结构实现的全文检索;MongoDB 也是典型的代表之一。通常而言,文档型 NoSQL 在许多方面借鉴了关系型数据库管理系统,换言之,如果你对关系型数据库管理系统非常了解,上手文档型 NoSQL 也是非常容易的。
    • 图式型 NoSQL(Graph Store) – 该类通常使用图形节点进行表示。

    NoSQL类型划分

术语

DB:database,数据库
DBMS(database management system,数据库管理系统):它是一个软件或引擎,用来执行 SQL 语言,对数据库里的数据进行操作与访问,使用到的是 SQL 语言(Structure Query Language,结构化查询语言)。
DBA(Database Administrator):数据库管理员,属于运维下面的一个分支岗位
CRUD:针对关系型数据库的增删改查,即 create(增)、delete(删)、update(改)、Retrieve(检索),取首字母的简称。
SQL:就相当于为数据库指定的一套标准语言,绝大部分都通用,有些则有细微的差别,例如 Oracle 用的是 PL-SQL,Sql Server 则用的是T-SQL。
结构化数据:数据遵守格式、长度等标准规范,且能用二维的表格进行呈现与表示。关系型数据库管理系统就是一个典型例子。
非结构化数据:数据结构不完整或不规范,不方便使用二维表格进行呈现与表示。比如邮件、日志、图片、音频、视频等。
半结构化数据:前两者的结合,比如 xml、html、json 等。

SQL 语言标准划分

主要从两个维度进行划分:

  • 国际标准 – 由 ANSI/ISO 制定,相关信息如下表所示:

    版本 核心特性 意义
    SQL-86 (1986年) 首个官方标准 奠定 SQL 基础语法
    SQL-89 扩展完整性约束 对初版的轻微修订
    SQL-92 (SQL2) 引入连接操作、子查询、视图 被广泛采用的里程碑版
    SQL:1999 (SQL3,也称 SQL-99) 支持递归查询、触发器、面向对象特性 首个分模块发布的标准
    SQL:2003 增加窗口函数、序列生成器 强化分析能力
    SQL:2008 增强窗口函数、支持TRUNCATE 优化事务控制
    SQL:2011 支持时态数据管理 历史数据追踪能力
    SQL:2016 原生JSON支持、行模式识别 适应非结构化数据处理
    SQL:2019 多维数组支持、SQL 路径表达式 扩展复杂数据类型操作
    SQL:2023 最新标准(2023年发布) 持续增强功能

    绝大多数的数据库完全支持 SQL-92 的核心规范,但对后续标准的支持则呈现选择性,这就需要使用者查阅官方网站的文档。例如 MySQL 5.x 仅部分实现 SQL:2003 窗口函数,但在 MySQL 8.x 中则完全支持。

  • 厂商标准 – 各厂商在标准 SQL 基础上添加专属扩展语法,例如 Oracle 的 PL-SQL,Sql Server 的 T-SQL。厂商添加非标准的私有扩展语法在行业中是非常普遍的。

功能分类

人们根据 SQL 语言发挥功能的不同,又有了功能分类:

  • DDL(Data Definition Language) – 数据定义语言,主要定义库与表等这些对象。
  • DML(Data Manipulation Language) – 数据操作语言,主要指的是 insertupdatedelete 这些关键字
  • DQL(Data Query Language) – 数据查询语言,主要指的是 select 关键字
  • DCL(Data Control Language) – 数据控制语言
  • TCL(Transaction Control Language) – 事务控制语言

请注意!SQL 版本 ≠ 功能分类

MySQL 分类

许可类型分类

  • MySQL Community Server – 开源免费版本,遵循 GPL 协议。
  • MySQL Enterprise Edition – 商业付费版本,提供企业级扩展功能。
  • MySQL Cluster – 分布式数据库解决方案(商业或社区版)。

版本分类

主要有三大版本:

  • MySQL 5.x 系列 – 已结束主流支持的历史版本。

    • 5.0(2005年)
    • 5.1(2008年)
    • 5.5(2010年)
    • 5.6(2013年)
    • 5.7(2015年)
  • MySQL 8.x 系列 – 当前主流支持版本。次要版本主要有:

    • 8.0(2018)
    • 8.1-8.3 – bug 修复
    • 8.4(2024) – 首次推出 LTS 版,LTS 是建议生产环境下的使用版本
  • MySQL 9.x 系列 – 创新版本,类似尝鲜版本。尝鲜版本也具有生产环境的品质,只不过生命周期比较短而已。

预期的发布图如下:

相关参阅 —— https://endoflife.date/mysql

Avatar photo

关于 陸風睿

GNU/Linux 从业者、开源爱好者、技术钻研者,撰写文档既是兴趣也是工作内容之一。Q - "281957576";WeChat - "jiulongxiaotianci",Github - https://github.com/jimcat8
用一杯咖啡支持我们,我们的每一篇[文档]都经过实际操作和精心打磨,而不是简单地从网上复制粘贴。期间投入了大量心血,只为能够真正帮助到您。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇