数据库基础
本节目标
- 掌握关系型数据库,数据库的作用
- 掌握在Windows和Linux系统下安装MySQL数据库
- 了解客户端工具的基本使用和SQL分类
- 了解MySQL架构和存储引擎
1. 数据库的安装与配置
1.1 确认MYSQL版本
处理无法在 cmd 中使用 mysql 命令的情况,就需要去配置环境:
(2) 官网下载相应的版本
MySQL官网
下载历史版本
停止之后,原来版本的MySQL占用的资源和端口就会释放,就可以让新下载的MySQL来使用资源和端口;
1.2 安装数据库服务
window环境下各种环境安装及使用
- 1. 安装包:
确认之后,可以根据相应的安装路径去查看是否有文件
设置密码之后,来到下面的页面:
在配置第一个错误日志路径时,可以在本机上创建一个文件夹,来存放日志
运行数据库后,有对应操作,就会在这些设置好的路径生成日志;
1.3 检查数据库服务
安装和配置都完成之后,我们需要到服务列表中检查一下:
在服务中,刷新之后,可以看到MYSQL80(刚刚配置时的serverID)是一个正在运行的状态
也可以先打开文件位置
一般使用 UniCode 编码的快捷方式打开MYSQL
1.4 通过配置文件修改默认配置
如果以后要修改其他大版本,强烈建议修改;
- 我们之前配置数据目录的时候,默认的路径是在C盘;
- 数据目录是MYSQL工作的主要目录,非常重要,所有的数据都会在这个目录中存储,如果它在系统盘,我们就需要手动指定它到其他的目录;
- 刚刚没有修改,是因为它会在这个目录中,自动生成一个配置文件,我们需要找到这个配置文件,先打开文件看看目录结构是什么;
MYSQL全局配置文件
我们可以使用文本编辑器/记事本打开这个配置文件:
当MYSQL启动的时候,会读取这个文件的内容,作为启动的默认值,默认值要在这个文件中配置,所以每次改动默认配置,都需要重启一下MYSQL服务,以便配置生效;
如果是以#开头,就表示注释,所有客户端相关的配置
什么是客户端程序呢?我们打开安装目录:
这些以exe为后缀的程序,除了极个别的,都是客户端程序,它们有不同的作用,要连接服务器,要备份服务器,要导出,要查看日志,都是通过这些客户端程序
我们查看快捷方式中的属性,可以发现快捷方式的目标:
只要mysql.exe程序运行,就会读取配置文件[client]节点下的这些相应的配置,如果要指定不同的端口号,也需要加不同的选项,因为MYSQL服务器默认开启的是3306端口,所以默认的端口号是3306
[client]针对所有客户端程序,所有客户端程序,都会读取[client]节点下的配置
可执行程序 mysqld 是服务端程序,跟其他客户端程序不一样,运行就意味着MYSQL服务启动了;
mysqld 节点下面的所有配置,都是服务于MYSQL的配置;d的意思是daemon,就是“守护”的意思,服务器启动,[mysqld]也跟着启动,和服务器的生命周期是一样的,只在后台运行,服务器关闭, mysqld 也会跟着关闭;
接下来,我们需要修改一些配置文件;这些配置修改的时候,我们需要备份一份my.ini 的原始文件:
通常我们会配置一些常用的选项,在修改配置文件之前,一定要把原来的配置文件备份一份,防止改错了导致服务器启动失败,如果改错了可以快速回退到修改前的版本;
我们来看一下,配置文件中的哪一些配置需要我们去修改:
1. 如果要修改端口号,直接在这里修改即可(1025—65535,因为1024之前是系统占用的一些端口),开发机应该是不需要修改的,但是在线上部署的时候,有些对外网公布端口号的时候,一般都是需要修改的,因为3306是默认端口,在网络扫描的时候会扫描这个端口,扫描会给系统带来一些安全的隐患;
2. 配置数据目录的路径(强烈建议改,否则一些大数据会占用大量内存空间)
如果出现没有权限修改的问题,可以把文件拖拽到桌面进行修改,修改完成并保存后,再拖拽回原文件;
跟配置文件目录有一个同级目录Data:
复制Data,然后粘贴到刚刚修改的目标目录中
复制好后,修改目录的名字为刚刚数据目录的目录名
因为我们设置了一些用户名和密码,这些密码都会存储在系统库中,就是在默认的数据目录中,所以整体拷贝刚刚的Data到目标路径中,就不会出错
- 存储引擎用于处理数据,MYSQL怎么解析,怎么存储,用什么数据结构来存储,都是由存储引擎决定的,每一个存储引擎对数据的增删改查是不一样的;
- 存储引擎是MYSQL的核心;
不同版本的字符集是不一样的,如果配置不好,可能无法将中文写入数据库中,默认在 8.0版本是 utf8mb4 这个字符编码集,涉及到解码编码的,都会指定编码集,类似于协议
强烈建议手动指定编码集,MYSQL5.7默认编码集是latin1,意味着不支持中文,无法写入中文,如果要写入中文,一定要在配置文件中手动指定编码集为utf8mb4;在MYSQL8.0默认编码集是utf8mb4,不过不管是哪个版本的MYSQL,都建议手动指定
修改好配置后,重新启动MYSQL
重新启动后,也会在我们指定的数据目录中,找到相应的Data目录,就可以完成相应读取了
我们重新登录一下:
访问成功,就说明没有问题了;这就是整个安装过程;
2.数据库简介
2.1 什么是数据库
数据库是20世纪60年代末发展起来的一项重要技术,已经成为计算机科学与技术的一个重要分支。数据库技术主要是用来解决数据处理的非数值计算问题,数据处理的主要内容是数据的存储、查询、修改、排序和统计等。
2.2 为什么要使用数据库
1.数据持久化 | 数据库可以将数据保存在存储介质中,即使应用程序关闭或服务器重启,数据也不会丢失。 |
2.数据结构化 | 数据库能够以结构化的方式存储数据,使得数据易于管理和查询。 |
3.数据完整性 | 数据库管理系统(DBMS)提供了数据完整性的保障,确保数据的准确性和一致性。 |
4.并发控制 | 数据库可以处理多个用户或进程同时访问和修改数据,同时确保数据的一致性。 |
5.安全性 | 数据库提供了多种安全机制,如访问控制、加密等,保护数据不被未授权访问。 |
6.可扩展性 | 随着数据量的增长,数据库可以水平或垂直扩展,以适应不断增长的数据需求。 |
7.备份和恢复 | 数据库支持数据的备份和恢复,以防数据丢失或损坏。 |
8.查询优化 | 数据库系统提供了高效的查询优化器,可以快速执行复杂的查询操作。 |
9.事务管理 | 大部分关系型数据库都支持事务,确保一系列操作要么完全成功,要么完全失败,提高了操作的可靠性。 |
10.多用户支持 | 数据库允许多个用户同时访问和操作数据,适合多用户环境。 |
2.3 主流数据库
2.3.1 关系型数据库
什么是关系型数据库
- 关系型数据库是指采用了关系模型(就是一个二维表格模型)来组织数据的数据库,以行和列的形式存储数据。
- 关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表,及其之间的关系组成的一个数据组织。
每个表中的每一条记录称为一行数据,每一个数据行由一个或多个列组成;
- 上图,左边表的班级编号列,对应到右边表的编号列,对于这种情况,就叫两个二维表之间建立了联系;
- 两张二维表建立了关联关系,把数据组织在了一起,那么这两张表,在一个数据库中就称它们为关系型数据库;
那能不能把左边表中的班级编号列,替换成班级名称呢?可以,但是这样不好修改,在后面学数据库设计,会详细讲解这样改带来的一些问题;
关系型数据库种类
2.3.2 非关系型数据库
数据库引擎排名