目录

  1. 概述
  2. 数据库与数据库管理系统
  3. 数据库的分类
    1. RDBMS
    2. NoSQL
    3. NewSQL
  4. Mysql 安装(Windows 为主)
    1. Windows 下 Mysql 安装
      1. 安装前卸载
      2. 安装
      3. MySQL 配置
    2. Ubuntu 下 Mysql 安装
  5. Mysql 服务启动
    1. Windows 下服务启动
    2. 登陆 MySQL
  6. SQL 概述

概述

❓ 为什么要使用数据库?

  • 持久化(persistence): 把数据保存到可掉电式存储设备中以供之后使用 。大多数情况下,特别是企 业级应用, 数据持久化意味着将内存中的数据保存到硬盘上加以「 固化 」 ,而持久化的实现过程大多 通过各种关系数据库来完成

  • 持久化的主要作用是 将内存中的数据存储在关系型数据库中 ,当然也可以存储在磁盘文件、XML 数 据文件中

✨ 通过数据库可以将数据持久化存储到本地、实现结构化查询、冗余度较小,节省存储空间等特点

数据库与数据库管理系统

刚开始学习时,总是对以下几个概念掂量不清楚,使用下列表格进行总结

名次含义
DB:数据库(DataBase)即存储数据的「 仓库 」,其本质是一个文件系统。它保存了一系列有组织的数据
DBMS:数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控 制。用户通过数据库管理系统访问数据库中表内的数据
SQL:结构化查询语言(Structured Query Language)专门用来与数据库通信的语言
DBA:数据库管理员(DataBase Administrator)负责全面管理和控制数据库系统

✨ 数据库与数据库管理系统的关系

数据库管理系统(DBMS)可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体用户的数据。数据库管理系统、数据库和表的关系图如下所示:

用户通过数据库管理系统与数据库的交互流程如下:

数据库的分类

目前根据数据库存储数据的方式,大致可以将数据库分为三类:关系型数据库、非关系型数据库以及新型的分布式数据库,当然后两种都不是本文的重点,本文的重点还是在于关系型数据库

RDBMS

RDBMS(Relational Database Management System)是关系型数据库管理系统的简称目前,常用的管理系统为OracleMySQLPostgreSQLSQLServer等,2021 最具影响力的依旧是OracleMySQL,2021 年数据库排名如下:

然而,Oralcle学习曲线较长、过程复杂不易入门,因此选择 MySQL 数据库进行入门

  • 关系型数据库(RDBMS)是最古老的数据库类型,关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式);
  • 关系型数据库以行(row)列(column) 的形式存储数据,以便于用户理解。这一系列的行和列被称为表(table) ,一组表组成了一个库(database)
  • 表与表之间的数据记录有关系(relationship),现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示,关系型数据库,就是建立在关系模型基础上的数据库
  • SQL 就是关系型数据库的查询语言

👍 使用关系型数据库对于复杂查询可以用 SQL 语句方便的在一个表以及多个表之间做非常复杂的数据查询;另一大特点就是对事务的支持,使得对于安全性能很高的数据访问要求得以实现。

NoSQL

非关系型数据库,可以堪称传统关系型数据库的功能阉割版本,基于健值对存储数据,不需要经过 SQL 层的解析,性能非常高。同时,通过减少不常用的功能,进一步提供性能。相比于 SQL,NoSQL 泛指非关系型数据库,包括了榜单上的键值型数据库文档型数据库搜索引擎列存储等,除此以外还包括图形数据库。也只有用 NoSQL 一词才能将这些技术囊括进来

NoSQL(No,SQL/Not only SQL)主要指带那种非关系型数据库,目前产业界主要使用的产品有:MongoDBRedisElaticSearch

NewSQL

NewSQL 新型数据库,是下一代数据库的趋势,这是一种分布式数据库的解决方案,目前业界聚焦的产品有:TiDBSpannerAliSQL(RDS+DRDS)PolarDB

Mysql 安装(Windows 为主)

Mysql 是目前常用的免费的关系性数据库,所以本系列将主要记录 MySQL 学习过程中遇到的问题,针对不同系统,mysql 软件安装方法也不 ˝˝ 同,主要分为通常使用的 Windows 安装和 Ubuntu 安装

Windows 下 Mysql 安装

如果系统一开始安装过 MySQL 则需要先进行卸载

安装前卸载

🎶 如果之前安装过 MySQL 软件,需要重装就要先卸载

  1. 清除安装残余文件
  2. 清除数据残余文件(卸载前最好做到数据备份)
  3. 清理注册表
1
2
3
4
5
6
7
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL服务 目录删除
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MySQL服务 目录删除
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL服务 目录删除
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\MySQL服务 目录删除
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL服务目录删除
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL服务删除
注册表中的ControlSet001,ControlSet002,不一定是001和002,可能是ControlSet005、006之类

安装

  1. 点击 MySQL 数据软件,无脑下一步,直到进入如下页面
  • Typical:表示一般常用的组件都会被安装,默认情况下安装到 C:\Program Files\MySQL\MySQL Server 5.5\
  • Complete:表示会安装所有的组件。此套件会占用比较大的磁盘空间
  • Custom:表示用户可以选择要安装的组件,可以更改默认按照的路径,这种按照类型最灵活,适用于高级用户

单击 Finish 按钮完成安装过程。如果想马上配置数据库连接,选择 Launch the MySQL Instance Configuration Wizard 复选框。如果现在没有配置,以后想要配置或重新配置都可以在 MySQL Server 的安装目录的 bin 目录下(例如:D:\ProgramFiles\MySQL5.5\MySQL Server 5.5\bin)找到 MySQLInstanceConfig.exe 打开 MySQL Instance Configuration Wizard 向导。

MySQL 配置

  1. MySQLInstanceConfig.exe
  1. 选择配置类型

选择配置方式,Detailed Configuration(手动精确配置)Standard Configuration(标准配置),我们选择Detailed Configuration,方便熟悉配置过程。

  1. 选择 MySQL 的应用模式
  • Develop Machine(开发机),使用最小数量的内存
  • Server Machine(服务器),使用中等大小的内存
  • Dedicated MySQL Server Machine(专用服务器),使用当前可用的最大内存
  1. 选择数据库用途选择界面

选择 mysql 数据库的大致用途:

  • Multifunctional Database(通用多功能型,好):此选项对事务性存储引擎(InnoDB)和非事务性(MyISAM)存储引擎的存取速度都很快。
  • Transactional Database Only(服务器类型,专注于事务处理,一般):此选项主要优化了事务性存储引擎(InnoDB),但是非事务性(MyISAM)存储引擎也能用。
  • Non-Transactional Database Only(非事务处理型,较简单)主要做一些监控、记数用,对 MyISAM 数据类型的支持仅限于 non-transactional,注意事务性存储引擎(InnoDB)不能用
  1. 配置 InnoDB 数据文件目录

InnoDB 的数据文件会在数据库第一次启动的时候创建,默认会创建在 MySQL 的安装目录下,用户可以根据实际的空间状况进行路径的选择。

  1. 并发连接设置
  2. 网络选项设置
  3. 选择字符集

🎶 如果要用原来数据库的数据,最好能确定原来数据库用的是什么编码,如果这里设置的编码和原来数据库数据的编码不一致,在使用的时候可能会出现乱码。

这个比较重要,就是对 mysql 默认数据库语言编码进行设置,第一个是西文编码,第二个是多字节的通用 utf8 编码,第三个,手工选择字符集。

🎶 如果安装时选择了字符集和 utf8,通过命令行客户端来操作数据库时,有时候会出现乱码,这是因为命令行客户端默认是 GBK 字符集,因此客户端与服务器端就出现了不一致的情况,会出现乱码,可以在 mysql 客户端执行下列命令解决

1
mysql> set names gbk;

可以通过以下命令查看:

1
mysql> show variables like 'character_set_%';
  1. 安全选择
  1. 设置密码

Ubuntu 下 Mysql 安装

这里仅介绍简单的通过软件包安装

1
2
3
dpkg -l |grep mysql			#检查MySQL是否已经安装
apt install mysql-server #下载MySQL软件
netstat -tap | grep mysql #检查MySQL是否已经启动

Mysql 服务启动

通过软件安装之后,此时并不能直接使用 mysql ,需要将下载的软件 「 打开 」,也就是要将下载的 mysql 服务启动才能够让我们使用

Windows 下服务启动

1
2
net start mysql
net stop mysql

登陆 MySQL

1
2
mysql -h localhost -uroot -p	## 连接Mysql
mysql> \q #退出Mysql

SQL 概述

结构化查询语言( Structure Query Language ):专门用来与数据库通信的语言,SQL 语言可以分为如下几类:DDL,DML,DCL,DQL,具体各种语言如何书写,博客都会记录。

  • DDL:数据定义语言,用来定义数据库对象:库、表、列等
  • DML:数据操作语言,用来定义数据库记录(数据)
  • DCL:数据控制语言,用来定义访问权限和安全级别
  • DQL:数据查询语言,用来查询记录