- 文档
- 教程
- 前端
【免费下载链接】Web
千古前端图文教程,超详细的前端入门到进阶知识库。从零开始学前端,做一名精致优雅的前端工程师。
数据库是 Web 后端技术栈中最重要的一环,也是前端工程师从"写页面"走向"全栈"必须跨越的基础门槛。本篇教程源自千古前端图文教程(README)中「10-MySQL数据库」系列的第一篇,围绕数据库的核心概念、两大分类、SQL 语言体系以及 MySQL 的访问原理展开讲解。读完本篇,你将系统掌握"数据库是什么、关系型与非关系型数据库如何区分、SQL 有哪些类别、MySQL 的 C/S 架构是如何工作的",并为后续学习 MySQL 的基本操作、MySQL 数据库的常用命令 打下坚实基础。
数据库的概念
数据库:英文全称 database(缩写 DB),是一种存储数据的仓库。它的核心特性可以概括为三点:
- 数据库是根据数据结构来组织、存储和管理数据的,数据之间不是零散的堆砌,而是有结构的集合。
- 数据库能够长期、高效地管理和存储数据,这是它区别于内存变量、普通文件的关键。
- 数据库的根本目的就是能够**存储(写)和提供(读)**数据——写入是为了持久化,读取是为了支撑业务查询。
对前端开发者而言,理解数据库的"读写"语义尤为重要:后端通过 SQL 把用户数据写入数据库,前端通过接口拿到数据再渲染到页面上,数据库就是这条数据链路里最终、最可靠的一环。
数据库分类
数据库分为两大类:
- 关系型数据库(Relational Database):把复杂的数据结构归结为简单的二元关系,即二维表格形式(二维表)。注重数据存储的持久性。
- 非关系型数据库(NoSQL):没有具体模型的数据结构。英文简称 NoSQL(Not Only SQL),意为"不仅仅是 SQL"。注重数据读取的效率。
两类数据库的设计哲学差异非常大:关系型数据库强调结构严谨、数据可靠、可持久化;非关系型数据库强调灵活的数据模型与高速读写。实际项目中两者经常配合使用——关系型数据库作为核心业务数据的存储底座,非关系型数据库负责缓存、会话、高并发读取等场景。
1、关系型数据库
关系型数据库:把复杂的数据结构归结为简单的二元关系,即二维表格形式(二维表)。每一张表由"行(记录)"和"列(字段)"构成,表与表之间通过公共字段建立关系,这正是"关系型"名称的由来。
关系型数据库有四层结构,从大到小依次是:
- 数据库管理系统(DBMS):DataBase Management System,是管理数据库的软件系统,负责对数据进行统一管理和控制。
- 数据库(DB):数据存储的管理者,一个 DBMS 下可以管理多个数据库实例。
- 数据表(Table):数据关系的管理者,一个数据库内包含多张表。
- 数据字段(Field):实际数据的存储者,一张表由若干字段(列)定义数据结构。
这四层结构在 MySQL 的基本操作 中体现得非常直接:create database创建数据库、create table创建数据表、alter table ... add新增字段,正好对应 DB → Table → Field 逐层向下操作。
常见的关系型数据库产品按规模分级:
- 大型:Oracle
- 中型:MySQL、SQL Server
- 小型:Sybase、Access
其中 MySQL 是中小型项目中应用最广泛的免费开源关系型数据库,也是本教程后续所有实战操作的主角。
2、非关系型数据库
非关系型数据库:没有具体模型的数据结构。英文简称 NoSQL(Not Only SQL),意为"不仅仅是 SQL"。它不再以二维表为唯一组织方式,而是支持键值(Key-Value)、文档(Document)、列族(Column Family)、图(Graph)等多种数据模型。
常见的非关系型数据库产品:
- MongoDB:文档型数据库,数据以类似 JSON 的文档形式存储,结构灵活。
- Redis:键值型数据库,基于内存运行,读写速度极快,常作为缓存。
- Memcached:高性能的分布式内存对象缓存系统,同样是键值模型。
前端开发中接触最多的通常是 Redis(会话管理、接口缓存、排行榜等场景)。可以这样建立直觉:如果数据结构明确、需要事务保证一致性,优先考虑关系型数据库;如果追求高并发读取和灵活的数据结构,则考虑 NoSQL。
SQL 的介绍
SQL:全称Structured Query Language,译为结构化查询语言。
SQL是一种针对关系型数据库的标准化编程语言,能够实现用户数据库的查询和程序设计。通俗来讲,SQL 是关系型数据库的操作指令——关系型数据库(MySQL、Oracle、SQL Server 等)都基于 SQL 进行数据操作,只是不同产品在指令细节上略有差异。
根据操作类型不同,SQL 可分为以下几类:
| 类别 | 英文全称 | 中文含义 | 主要用途 |
|---|---|---|---|
| DQL | Data Query Language | 数据查询语言 | 查询和检索数据 |
| DML | Data Manipulation Language | 数据操作语言 | 数据的写操作(增删改) |
| DDL | Data Definition Language | 数据定义语言 | 创建数据结构 |
| DCL | Data Control Language | 数据控制语言 | 用户权限管理 |
| TPL | Transaction Process Language | 事务处理语言 | 辅助 DML 进行事务操作(因此也归属于 DML) |
这五类指令在 MySQL 的常用命令 与 事务 中都有对应的实战:select属于 DQL、insert/update/delete属于 DML、create/alter/drop属于 DDL,而事务语句begin/commit/rollback就属于 TPL。
补充两点对初学者很重要的认知:
- SQL 虽然是编程语言,但通常只用来进行数据管理,逻辑部分交给其他编程语言(如 PHP、Node.js、Java)来完成。
- SQL 是针对关系型数据库的通用语言,所有关系型数据库都是基于 SQL 进行数据操作;而不同的数据库产品,在 SQL 操作指令上略有差异。
MySQL 的介绍
MySQL 数据库介绍
MySQL 是很有名的关系型数据库产品,由瑞典 MySQL AB 公司开发,现在属于 Oracle 旗下产品。它的发展历程有几个关键节点:
- MySQL 在 2008 年被 Sun 公司以 10 亿美金收购;
- Sun 公司在 2009 年被 Oracle 甲骨文公司收购;
- MySQL开源免费,这是它在中小型项目和个人开发者中普及度极高的核心原因。
正是因为开源免费、社区生态成熟,MySQL 成为本仓库「10-MySQL数据库」系列教程的默认操作对象。后续的 MySQL 的安装和 Navicat 软件使用 详细讲解了 Mac 版安装与环境变量配置,MySQL 字段的数据类型 则系统介绍了整型、小数、字符串、时间日期等字段类型的设计方法。
MySQL 访问原理
MySQL 是一种C/S(客户端/服务器)结构的软件,因此我们需要安装 MySQL 的客户端来访问远程的服务端。也就是说,数据是存放在服务器上的,客户端通过执行 SQL 指令来操作服务端的数据。
具体访问步骤如下:
- 客户端通过主机(host)+端口号(port)连接服务端。
- 输入username和password验证身份。
- 客户端和服务端连接成功后,通过 SQL 指令开始操作数据库。
在终端中使用mysql -u root -p命令即可进入 MySQL 的命令行客户端,随后输入密码完成身份验证(详见 MySQL 的基本操作 与 MySQL 的常用命令)。此外,也可以使用 Navicat Premium 这类 GUI 客户端,以可视化方式填写主机、端口、用户名、密码完成连接,效果与命令行等价(见 MySQL 的安装和 Navicat 软件使用)。
理解 C/S 结构对排错很有帮助:如果连接不上数据库,通常可以从三个方向排查——host/port 是否可达、username/password 是否通过认证、SQL 指令是否被服务端正确执行。
小结
本篇围绕数据库的基础知识完成了四层递进:
- 概念层:数据库是基于数据结构、能够长期高效读写数据的存储仓库;
- 分类层:关系型数据库(二维表、注重持久性)与非关系型数据库(NoSQL、注重读取效率)各有适用场景;
- 语言层:SQL 是关系型数据库的通用操作指令,分为 DQL、DML、DDL、DCL、TPL 五类;
- 产品层:MySQL 开源免费,采用 C/S 架构,通过 host + port + username + password 完成连接后即可用 SQL 操作数据。
掌握这些基础概念后,可以接着阅读仓库中「10-MySQL数据库」系列的后续篇章,把理论落到实操:MySQL 的基本操作 教你完成数据库、数据表、字段与数据的增删改查,MySQL 的常用命令 覆盖 where 条件查询与 join 联表查询,MySQL 字段的数据类型 帮你科学设计字段,MySQL 设计三大范式 与 事务 则进一步深入到表设计规范与数据一致性。
- 文档
- 教程
- 前端
【免费下载链接】Web
千古前端图文教程,超详细的前端入门到进阶知识库。从零开始学前端,做一名精致优雅的前端工程师。
相关推荐
MySQL 速查清单:从基础概念、SQL 实操到备份恢复的完整参考(reference 项目数据库篇)
MySQL 速查清单:从基础概念、SQL 实操到备份恢复的完整参考(reference 项目数据库篇) 本篇技术指南以当前仓库的 MySQL 备忘清单 http
文档教程数据科学入门:数据伦理基础概念与案例分析
数据科学入门:数据伦理基础概念与案例分析 引言:数据伦理的重要性 在当今数据驱动的世界中,我们每个人都成为了"数据公民"。随着数据量的爆炸式增长(预计到2025
数据科学教程零基础学习XFeat:开发者必知的10个关键概念
零基础学习XFeat:开发者必知的10个关键概念 XFeat是一个专注于鲁棒且快速的局部特征提取工具,非常适合需要高效图像匹配的开发者。本文将介绍零基础学习XF
计算机视觉图像处理
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考