一、为什么要使用数据库
1. 以前存储数据的方式
首先,我先说一说没有用数据库存储的缺陷过程吧!
就像我们以前:我们存储数据的方式,依次为:采用数组在内存中存储数据 -> 集合在内存中存储
数据 -> 文件进行存储数据
- 如果我们采用数组或集合在内存中存储数据的话,我们就不能将数据进行持久化存储,只能当做临时数据使用
- 如果我们采用文件存储数据的话,我们就无法对数据进行检索和管理等
因此,我们就需要借助数据库来帮助我们来完成这一系列操作,相应的这些数据库也是交给我们这
些数据库管理系统进行管理!
2. 什么是数据库
数据库就是用于存储和管理数据的仓库,英文:DataBase(简称:DB),而在数据库中的数据也
是有组织的进行存储!
3. 采用的数据库的好处
如果我们采用数据库存储数据的话,我们不仅可以持久化存储数据(瞬时数据转化为永久数据),
也可以方便存储和管理数据(因为文件不便于管理数据,那就由数据库来管理),
还可以统一的方式操作数据库 SQL(MySQL、Oracle、SqlServer等关系型数据库管理系统 SQL
操作方式基本一致,但是关系型数据存在SQL方言)
4. 如何理解数据库、数据库管理系统、SQL
在这一部分,我们先来讲解三个概念:数据库、数据库管理系统、SQL。
名称
全称
简称
数据库
存储数据的仓库,数据是有组织的进行存储
DataBase(DB)
数据库管 理系统
操纵和管理数据库的大型软件
DataBase Management System (DBMS)
SQL
操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准
Structured Query Language (SQL)
而目前主流的关系型数据库管理系统的市场占有率排名如下:
查看数据库管理系统最新排名:
DB-Engines Ranking - popularity ranking of database management systems
- Oracle大型的收费数据库,Oracle公司产品,价格昂贵。
- MySQL开源免费的中小型数据库,后来Sun公司收购了MySQL,而Oracle又收购了Sun公司。 目前Oracle
推出了收费版本的MySQL,也提供了免费的社区版本。
- SQL ServerMicrosoft 公司推出的收费的中型数据库,C#、.net等语言常用。
- PostgreSQL开源免费的中小型数据库。
- DB2IBM公司的大型收费数据库产品。
- SQLLite嵌入式的微型数据库。Android内置的数据库采用的就是该数据库。
- MariaDB开源免费的中小型数据库。是MySQL数据库的另外一个分支、另外一个衍生产品,与MySQL数据库
有很好的兼容性。
等等等
而不论我们使用的是上面的哪一个关系型数据库,最终在操作时,都是使用SQL语言来进行统一操
作, 因为我们前面讲到SQL语言,是操作关系型数据库的 统一标准 。所以即使我们现在学习的是
MySQL, 假如我们以后到了公司,使用的是别的关系型数据库,如:Oracle、DB2、
SQLServer,也完全不用 担心,因为操作的方式都是一致的。
5. 如何理解数据是有组织的存储
例如:一对一,一对多,多对多,这样设置,就是让我们的数据进行有组织的存储
6. 现在的数据库
而我们的数据库主要分为关系型数据库和非关系型数据库
- 对于关系型数据库的话,我比较熟悉的是MySQL、其次就是Oracle、然后听闻过SQLServer!
- 对于非关系数据库的话,我比较熟悉的是Redis、其次就是MongoDB、然后了解过EleasticSearch!
二、关系型数据系统
1. 什么是关系型数据库
关系型数据库指的是多张相互连接的二维表组成的数据库,所谓二维表指的就是由行和列组成的
表,如下图(就类似于Excel表格数据,有表头、有列、有行, 还可以通过一列关联另外一个表格
中的某一列数据)。还有MySQL、Oracle、DB2、SQLServer这些都属于关系型数据库,里面都
是基于二维表存储数据的。
简单来说:基于二维表存储数据的数据库就是关系型数据库,不是基于二维表存储数据的数据库就
是非关系型数据库
如下典型的二维表结构:
2. 关系型数据库特点
- 使用表存储数据,格式统一,便于维护
- 使用SQL语言操作,标准统一,使用方便
3. 关系型数据库的通用性
正如前面所说,无论使用哪一种关系型数据库,操作时,都是使用SQL语言来进行统一操作
SQL语言是操作关系型数据库的统一标准,即使到了公司,使用别的关系型数据库,如:Oracle、
DB2、SQLServer,操作方式基本一致性的,就相当于学了MySQL的SQL语法,其他关系型数据
库上手也很快,只是不同关系型数据库可能存在细小差别的SQL方言!
4. 关系型数据库模型
MySQL是关系型数据库,是基于二维表进行数据存储的,具体的结构图下:
上图可知
- MySQL客户端连接数据库管理系统DBMS,然后通过DBMS操作数据库
- SQL语句通过数据库管理系统操作数据库,以及操作数据库中的表结构及数据
- 一个数据库服务器中可以创建多个数据库,
- 一个数据库中也可以包含多张表,而一张表中又可以包含多行记录,一行记录包含多列
三、MySQL 简介
在这里,我们主要针对MySQL数据库的介绍、下载、安装、启动及连接。
1. 简介
MySQL是属于关系型数据库的一类,它是开源免费的中小型数据库,后来Sun公司收购了
MySQL,而Oracle又收购了Sun公司,现在,MySQL属于Oracle,目前,MySQL主流的两个版本
是MySQL5.7和MySQL8,MySQL5.7占用磁盘空间相比较MySQL8要少,基本上,现在MySQL也
开始迈向MySQL8。
学习网址:MySQL 创建数据库 | 菜鸟教程
参考:MySQL(关系型数据库管理系统)_百度百科
官网: MySQL
下载地址:MySQL :: Download MySQL Installer (Archived Versions)
官网文档参考:MySQL :: MySQL Documentation
MySQL函数文档:MySQL :: MySQL 8.0 Reference Manual :: 14 Functions and Operators
2. 版本
官方: MySQL
针对不同用户,MySQL提供三个不同的版本。
- MySQL Enterprise Server(企业版)能够以更高的性价比为企业提供数据仓库应用,该版本需要付费使用,官方提供电话技术支持。
- MySQL Cluster(集群版)MySQL 集群是 MySQL 适合于分布式计算环境的高可用、高冗余版本它采用了 NDB Cluster 存储引擎,允许在 1 个集群中运行多个 MySQL 服务器它不能单独使用,需要在社区版或企业版基础上使用
- MySQL Community Server(社区版)在开源GPL许可证之下可以自由的使用。该版本完全免费,但是官方不提供技术支持MySQL5.7(RC)是当前稳定的发布系列(本人以前使用过,现在已经不再使用)MySQL8.0.26(GA)是最新开发的稳定发布系列(本人使用的就是 MySQL 8 版本)
3. 优势
- 可移植性:MySQL数据库几乎支持所有的操作系统,如Linux、Solaris、FreeBSD、Mac和Windows
- 开源免费(6版本之前开源免费)
- 关系型数据库:MySQL可以利用标准SQL语法进行查询和操作。
- 速度快、体积小、容易使用:与其他大型数据库的设置和管理相比,其复杂程度较低,易于学习MySQL的早期版本(主要使用的是MyISAM引擎)在高并发下显得有些力不从心随着版本的升级优化(主要使用的是InnoDB引擎)
- 安全性和连接性:十分灵活和安全的权限和密码系统,允许基于主机的验证连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码安全
- 丰富的接口:提供了用于C、C++、Java、PHP、Python、Ruby和Eiffel、Perl等语言的API
- 灵活:MySQL并不完美,但是却足够灵活,能够适应高要求的环境同时,MySQL既可以嵌入到应用程序中,也可以支持数据仓库、内容索引和部署软件、高可用的冗余系统、在线事务处理系统等各种应用类型
- MySQL最重要、最与众不同的特性是它的存储引擎架构:这种架构的设计将查询处理(Query Processing)及其他系统任务的这种处理和存储分离的设计可以在使用时根据性能、特性,以及其他需求来选择数据存储的方式,MySQL中同一个数据库,不同的表格可以选择不同的存储引擎其中使用最多的是 InnoDB 和MyISAM,MySQL5.5之后InnoDB是默认的存储引擎
4. 安装/卸载/配置
5. MySQL服务启动/停止
5.1. MySQL 服务启动(命令行方式,管理员身份)
MySQL安装完成之后,在系统启动时,会自动启动MySQL服务,我们无需手动启动了。
当然,也可以手动的通过指令启动停止,以管理员身份运行cmd,进入命令行执行如下指令:
语法:
net start mysql服务
注意:忘了服务名的可以去系统服务列表查看,打开DOS窗口输入命令:
services.msc
例如:
net start mysql80
5.2. mysql 服务停止(命令行方式,管理员身份)
语法:
net stop mysql服务名
注意:忘了服务名的可以去系统服务列表查看,打开DOS窗口输入命令:
services.msc
例如:
net stop mysql80
5.3. 知识小结
注意 : 上述的 mysql80 是我们在安装MySQL时,默认指定的mysql的系统服务名,不是固 定的,
如果未改动,默认就是mysql80
当然除了命令行方式,还可以直接去服务列表进行启动/停止
6. 客户端连接
方式一:使用MySQL提供的客户端命令行工具
方式二:使用系统自带的命令行工具执行指令
mysql [-h 127.0.0.1] [-P 3306] -u root -p
参数:
-h : MySQL服务所在的主机IP
-P: MySQL服务端口号, 默认3306
-u: MySQL数据库用户名
-p:MySQL数据库用户名对应的密码
[] 内为可选参数,如果需要连接远程的MySQL,需要加上这两个参数来指定远程主机IP、端口,
如果连接本地的MySQL,则无需指定这两个参数。
注意: 使用这种方式进行连接时,需要安装完毕后配置PATH环境变量。
版权归原作者 W哥教你学后端 所有, 如有侵权,请联系我们删除。