
༺ 个人主页 · 纪念229 ༻
༒专栏目录:《算法》༒
༒专栏目录:《MySQL数据库》༒
༺世上本没有路,走的人多了自然就有了༻
这篇文章讲述的是数据库的基本认识,希望看完这篇文章希望对你认识数据库有所帮助。
注意:这篇文章转载与比特,本文章的本意就是让读者认识数据库并且会安装数据库
数据库在不同系统的安装请看我推荐的两篇文章:
本文就不写目录了,复制粘贴上的后补markdown语法会有一些问题
数据库基础
- 本节⽬标
• 掌握关系型数据库,数据库的作⽤
• 掌握在Windows和Linux系统下安装MySQL数据库
• 了解客⼾端⼯具的基本使⽤和SQL分类
• 了解MySQL架构和存储引擎
2.数据库简介
2.1 什么是数据库
数据库是20 世纪 60 年代末发展起来的⼀项重要技术,已经成为计算机科学与技术的⼀个重要分
⽀。数据库技术主要是⽤来解决数据处理的⾮数值计算问题,数据处理的主要内容是数据的存储、查
询、修改、排序和统计等。
2.2 为什么要使⽤数据库
- 数据持久化:数据库可以将数据保存在存储介质中,即使应⽤程序关闭或服务器重启,数据也不会
丢失。 - 数据结构化:数据库能够以结构化的⽅式存储数据,使得数据易于管理和查询。
- 数据完整性:数据库管理系统(DBMS)提供了数据完整性的保障,确保数据的准确性和⼀致性。
- 并发控制:数据库可以处理多个⽤⼾或进程同时访问和修改数据,同时确保数据的⼀致性。
- 安全性:数据库提供了多种安全机制,如访问控制、加密等,保护数据不被未授权访问。
- 可扩展性:随着数据量的增⻓,数据库可以⽔平或垂直扩展,以适应不断增⻓的数据需求。
- 备份和恢复:数据库⽀持数据的备份和恢复,以防数据丢失或损坏。
- 查询优化:数据库系统提供了⾼效的查询优化器,可以快速执⾏复杂的查询操作。
- 事务管理:⼤部分关系型数据库都⽀持事务,确保⼀系列操作要么完全成功,要么完全失败,提⾼了操作的可靠性。
- 多⽤⼾⽀持:数据库允许多个⽤⼾同时访问和操作数据,适合多⽤⼾环境。
2.3 主流数据库
2.3.1 关系型数据库
• Oracle: 甲⻣⽂产品,适合⼤型项⽬,业内最强的数据库,没有之⼀,需要收费。
• MySQL:开源免费,最受欢迎的数据库,在中⼩企业中普及率⾮常⾼,属于甲⻣⽂,主要⽤在电
商,论坛等。
• PostgreSQL:加州⼤学伯克利分校计算机系开发的关系型数据库,可以免费使⽤,修改和分发。
• SQL Sever: 微软推出的⼀款专业级数据库,与旗下的操作系统,编程环境配合使⽤,适⽤于中⼤
型项⽬。
• SQLite: ⼀款轻型的数据库,占⽤资源⾮常低,常⽤于嵌⼊式设备,⼿机APP,桌⾯程序等场景。
2.3.2 ⾮关系型数据库
• Redis:流⾏的基于键值对的内存数据库,常⽤作缓存,⽀持数据持久化,⽀持多种数据结构。
• MongoDB:基于NoSQL的⽂档型数据库,易扩展,⾼性能,⾼可⽤性,⽀持丰富的查询和聚合操
作。

图中链接
2.4 什么是关系型数据库
关系型数据库是指采⽤了关系模型来组织数据的数据库,以⾏和列的形式存储数据。关系模型可以简单理解为⼆维表格模型,⽽⼀个关系型数据库就是由⼆维表及其之间的关系组成的⼀个数据组织。

每个表中的每⼀条记录称为⼀⾏数据,每⼀个数据⾏由⼀个或多个列组成
- MySQL安装和配置
3.1 安装
文章开头有就不赘述了
3.2 mysqld服务端程序
当MySQL安装完成之后,bin⽬录下有⼀个mysqld(Linux)或mysqld.exe(windoows)的可执⾏程
序,mysqld可执⾏程序运⾏后,MySQL服务也就启动了。当把MySQL服务配置为⾃启动,操作系统启
动时会⾃动运⾏mysqld可执⾏程序,从⽽启动MySQL服务。
3.3 数据库服务器,数据库与表之间的关系
• 数据库服务器是指在机器上安装了⼀个数据库管理系统程序,这个管理程序可以管理多个数据库,
⼀般开发⼈员会针对每⼀个应⽤创建⼀个数据库。
• 为保存应⽤中实体的数据,⼀般会在数据库中创建多个表,以保存程序中实体的数据。
• 数据库服务器、数据库和表的关系如下:

3.4 选项(配置)⽂件
MySQL安装成功后,如果想修改默认配置,⽐如修改端⼝号,数据⽬录位置,默认使⽤的存储引
擎,默认字符编码集和排序规则,⽇志路径等等,可以通过编辑选项⽂件实现,在初阶我们只讨论在
Windows系统下如何修改选项⽂件,Linux系统中的操作在进阶中详细介绍。
Windows系统中选项⽂件的默认路径为 C:\ProgramData\MySQL\MySQL Server
8.0\my.ini ,使⽤⽀持UTF8编码的编辑器打开,在相应的节点下修改选项的值,选项⽂件部分节
选内容如下所⽰,了解即可:



注意:•如果重新指定数据⽬录路径,把C:\ProgramData\MySQL\MySQL Server 8.0\Data⽬录整体复
制到⽬标位置
•修改配置⽂件之后需要重新启动MySQL服务
- 客⼾端⼯具
4.1 mysql
MySQL安装成功后⾃带的命令⾏客⼾端⼯具,可以输⼊命令和执⾏SQL语句,mysql的基本使⽤⾮常
简单,打开终端并输⼊以下命令:
使⽤前检查PATH环境变量中是否配置了mysql所在⽬录

4.2 Workbench
MySQL官⽅提供的可视化客⼾端⼯具,运⾏后如下所⽰:


4.3 Navicat Lite版
业内⼴泛使⽤的可视化客⼾端⼯具,现在出了免费的Lite版本,对于学习中编写SQL语句完全够⽤,推荐使⽤,第⼀次使⽤要先配置连接,如下图所⽰:
• 新建连接

• 配置连接并测试

• 新建查询

- 客⼾端与服务器的通讯⽅式
5.1 C/S架构与B/S架构
• C/S架构即客⼾端 / 服务器架构模式
• B/S架构即浏览器 / 服务器架构模式
5.1.1 CS 架构
C/S 架构全称是客⼾端 / 服务器(Client / Server)架构,是常⽤的两层架构。客⼾端需要安装客⼾
端软件,服务端程序运⾏在服务器上,提供Socket或数据库服务。
使⽤客⼾端与MySQL数据库服务器通讯属于C/S架构

常⽤于固定⽤⼾群体中。常⻅的C/S架构的应⽤,⽐如QQ,CCTALK,各种⽹络游戏等等,⼀般需
要安装并且与服务器进⾏⽹络通信的都属于此类。
优点:
• ⼤部分业务都可以在客⼾端完成,充分利⽤本地的计算机资源
• 响应速度快
• 个性化定制能⼒强
• ⾯向相对固定的⽤⼾群,对信息安全的控制能⼒强
缺点:
• 需要安装客⼾端才能使⽤
• 维护成本⾼,任何⼀台电脑上的客⼾端出现问题都需要进⾏维护,升能过程繁琐
5.1.2 BS 架构
B/S架构全称是浏览器 / 服务器(Browser/Server)结构,分为Web浏览器、服务器程序、数据库服务三部分,可以理解为是对C/S架构⼀种改进。由于所有的业务逻辑都由服务器程序处理,所以客⼾端
仅使⽤浏览器就可以完成所有操作,⼤⼤降低了客⼾端的维护成本。

常⽤于对公开⽤⼾提供的⽹络服务中。⽐如常⻅的⼤型⽹站都属于此类。
优点:
• 客⼾端零维护,只需要安装⼀个浏览器即可
• 所有业务都集中在服务器端,业务扩展⾮常⽅便
• 维护成本低,只需要维护服务器即可
缺点:
• 服务器安全与业务处理能⼒需要花费很⼤精⼒与成本
• 不同浏览器⽀持不尽⼈意
- SQL简介
6.1 什么是SQL
SQL(Structured Query Language)是结构化查询语⾔的简称,是⼀种数据库查询和程序设计语⾔,
⽤于存取数据以及查询、更新和管理关系数据库。
6.2 SQL分类
• DDL【Data Definition Language】 数据定义语⾔,⽤来维护存储数据的结构
代表指令: create, drop, alter
• DML【Data Manipulation Language】 数据操纵语⾔,⽤来对数据进⾏操作
代表指令: insert,delete,update,select
• DCL【Data Control Language】 数据控制语⾔,主要负责权限管理和事务
代表指令: grant,revoke,commit
- MySQL架构
MySQL8.0服务器是由连接池、服务管理⼯具和公共组件、NoSQL接⼝、SQL接⼝、解析器、优
化器、缓存、存储引擎、⽂件系统组成。MySQL还为各种编程语⾔提供了⼀套⽤于外部程序访问服务
器的连接器。整体架构图如下所⽰:

- 存储引擎
8.1 简介
存储引擎是MySQL数据库处理数据的核⼼组件,不同的存储引擎对数据如何存储、索引、更新和查询的实现⽅式各有不同,在不同的业务场景可以选⽤合适的存储引擎。MySQL服务器采⽤可插拔的存储引擎架构,在服务器运⾏时可以动态的加载和卸载。
8.2 查看存储引擎
查看当前服务器⽀持哪些存储引擎可以使⽤ SHOW ENGINES 语句,结果如下图所⽰INNODB默认的存储引擎:

8.3 存储引擎对⽐

Notes:
- Implemented in the server, rather than in the storage engine.
- Compressed MyISAM tables are supported only when using the compressed row format.
Tables using the compressed row format with MyISAM are read only. - Implemented in the server via encryption functions.
- Implemented in the server via encryption functions; In MySQL 5.7 and later, data-at-rest
encryption is supported. - Implemented in the server via encryption functions; encrypted NDB backups as of NDB
8.0.22; transparent NDB file system encryption supported in NDB 8.0.29 and later. - Support for FULLTEXT indexes is available in MySQL 5.6 and later.
- Support for geospatial indexing is available in MySQL 5.7 and later.
- InnoDB utilizes hash indexes internally for its Adaptive Hash Index feature.
- See the discussion later.
看到这里这篇文章就结束了,希望对你有所帮助,感谢观看!