【MySQL数据库】数据库基础

目录

一、数据库简介

[1.1 什么是数据库?](#1.1 什么是数据库?)

[1.2 为什么要使用数据库?](#1.2 为什么要使用数据库?)

[1.3 主流数据库](#1.3 主流数据库)

[1.3.1 关系型数据库](#1.3.1 关系型数据库)

[1.3.2 非关系型数据库](#1.3.2 非关系型数据库)

[1.4 什么是关系型数据库?](#1.4 什么是关系型数据库?)

二、MySQL的安装与配置

[2.1 MySQL程序的安装](#2.1 MySQL程序的安装)

[2.2 数据库服务器](#2.2 数据库服务器)

[2.3 选项(配置)文件](#2.3 选项(配置)文件)

三、客户端与服务器的通讯方式

[3.1 C/S 架构](#3.1 C/S 架构)

[3.2 B/S 架构](#3.2 B/S 架构)

四、SQL

[4.1 什么是SQL?](#4.1 什么是SQL?)

[4.2 SQL 分类](#4.2 SQL 分类)

五、存储引擎

[5.1 查看存储引擎](#5.1 查看存储引擎)


一、数据库简介

1.1 什么是数据库?

数据库技术主要是用来解决数据处理的非数值计算问题。
数据处理的主要内容是数据的存储、查询、修改、排序和统计等。

1.2 为什么要使用数据库?

  1. 数据库可以将数据保存在存储介质(如磁盘)中,即使应用程序关闭或服务器重启,数据也不会丢失,实现数据持久化存储。
  2. 数据库能够以结构化的方式存储数据,使得数据易于管理和查询。
  3. 数据库管理系统(DBMS)提供了数据完整性的保障,确保数据的准确性和一致性。
  4. 数据库可以在处理多个用户或进程的同时访问和修改数据,并且确保数据的一致性。(并发控制)
  5. 数据库提供了多种安全机制,如访问控制、加密等,保护数据不被未授权访问。
  6. 随着数据量的增长,数据库可以水平或垂直扩展,以适应不断增长的数据需求。
  7. 数据库支持数据的备份和恢复,以防数据丢失或损坏。
  8. 数据库系统提供了高效的查询优化器,可以快速执行复杂的查询操作。
  9. 大部分关系型数据库都支持事务,确保一系列操作要么完全成功,要么完全失败,提高了操作的可靠性。
  10. 数据库允许多个用户同时访问和操作数据,适合多用户环境。

1.3 主流数据库

1.3.1 关系型数据库

  • ACCESS:是微软于OFFICE中集成的一个小型数据库
  • SQLite:是一款轻型的数据库,占用资源非常少,常用于手机APP、桌面程序,处理简单的数据存储
  • SQL Server:微软推出的一款专业级的数据库适用于中大型项目
  • MySQL:使用频率最高的数据库软件之一,开源且免费,在中小企业中普及率非常高,主要用在电商、论坛等
  • PostgreSQL:加州大学伯克利分校计算机系开发的关系型数据库,可以免费使用,修改和分发
  • Oracle:适合大型项目,需要收费,业内最强

1.3.2 非关系型数据库

  • Redis:流行的基于键值对的内存数据库,常用作缓存,支持数据持久化,支持多种数据结构
  • MongoDB:基于NoSQL的文档型数据库,易扩展,高性能,高可用性,支持丰富的查询和聚合操作。

1.4 什么是关系型数据库?

关系型数据库是指采用了关系模型来组织数据的数据库,以行和列的形式存储数据。
关系模型可以简单理解为 二维表格模型 ,而⼀个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。

每个表中的每一条记录称为一行数据,每⼀个数据行由一个或多个列组成

二、MySQL的安装与配置

2.1 MySQL程序的安装

MySQL下载地址

我们现在使用的通常是 8.0.x 版本的,.x 的具体版本号不需要在意,都是 8.0 的小版本,大版本一致即可。

安装完成之后,我们查看一下数据库服务是否正常

在自己电脑中找到这个图标

或者在你安装MySQL的文件中找到 bin 目录,可以找到下面这两个可执行程序

运行 mysqld 程序之后,MySQL服务也就启动了,此时MySQL程序会不断地对外提供网络服务。

初次安装MySQL服务配置默认是自动的,当操作系统运行就会自动运行mysqld程序,从而启动mysql服务。

当然我们也可以将其改成手动,如果你的电脑上安装了多个mysql服务,可以将其中的一个保持自动,其余的改为手动即可。

当我们启动mysqld程序(客户端程序)、输入设定的密码之后,就成功连接到mysql服务器了:

2.2 数据库服务器

  • 数据库服务器是指在电脑上安装的 数据库管理系统程序 ,这个管理程序可以同时管理多个数据库,一般开发人员会针对每一个应用创建一个对应的数据库。
  • 为保存应用中实体的数据,一般在数据库中创建多个表,用于保存程序中实体的数据。

MySQL数据库服务器、数据库和表之间的关系如图表示:

即:

一台计算机提供的MySQL数据库服务中,

可以创建多个数据库,

每一个数据库中可以创建多张表,

每一张表中有多个数据行,

每一个数据行由很多列组成。

2.3 选项(配置)文件

如果想要修改默认配置如修改端口号、数据目录位置、默认使用的存储引擎、默认字符编码集和排序规则、日志路径等,可以通过编辑选项文件来实现。

选项文件的默认路径在 C: \ProgramData \MySQL \MySQL Server 8.0 \my.ini

使用支持UTF8编码的编辑器打开,在相应的节点下修改选项的值即可。

虽然 MySQL 8.0 的默认编码集是 uft8mb4,但是还是建议读者手动指定一下,并且把排序规则也指定一下。

  • 如果重新指定数据目录路径,需要把原数据目录整体复制到目标位置。
  • 修改配置文件之后需要重新启动 MySQL服务。

三、客户端与服务器的通讯方式

3.1 C/S 架构

C/S 架构全程是 客户端/服务器(Client / Server)架构,是常用的两层架构。

客户端需要安装客户端软件,服务端程序运行在服务器上,提供数据库服务。

我们使用客户端与MySQL服务器之间的通讯就是属于 C/S 架构。

需要安装客户端并且与服务器进行网络通信这类软件通常都属于 C/S架构。

  • 优点:大部分业务都可以在客户端完成,充分利用本地的计算机资源;响应速度快;个性化定制能力强;面对相对固定的用户群,对信息安全的控制能力强。
  • 缺点:去要安装客户端才能使用;维护成本高。

3.2 B/S 架构

B/S 架构全称是 浏览器/服务器(Browser / Server)架构,分为 Web浏览器、服务器程序和数据库服务三个部分。是一种对 C/S 架构的改进。

由于所有的业务逻辑都是由服务器程序来处理的,因此客户端只需要使用浏览器就可以完成所有操作,大大降低了客户端的维护成本。

常用于对公开用户提供的网络服务中,比如常见的大型网站。

  • 优点:不需要维护客户端,只需安装一个浏览器;维护成本低,只需要维护服务器端即可;所有业务都集中在服务器端,业务扩展方便。
  • 缺点:服务器安全与业务处理能力需要花费很大精力和成本;不同浏览器支持不尽人意。

四、SQL

4.1 什么是SQL?

SQL(Structured Query Language)是 结构化查询语言 的简称,是一种数据库查询和程序设计语言,用于存储数据以及查询、更新和管理关系型数据库。

4.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数据库处理数据的核心组件,不同存储引擎对数据的存储、索引、更新和查询的方式各有不同,在不同的业务场景可以选择适合的存储引擎。

MySQL服务器采用可插拔的存储引擎架构,在服务器运行时可以动态的加载和卸载数据。

5.1 查看存储引擎

在MySQL客户端程序输入语句:show engines;

即可查询到存储引擎。

我们可以看到,当前MySQL默认使用的存储引擎是 InnoDB。


相关推荐
百***81272 小时前
【HTML+CSS】使用HTML与后端技术连接数据库
css·数据库·html
6***3493 小时前
MySQL项目
数据库·mysql
Wang's Blog3 小时前
MySQL: 查询全流程深度解析与性能优化实践指南
数据库·mysql·性能优化
一 乐3 小时前
宠物管理|宠物共享|基于Java+vue的宠物共享管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·springboot·宠物
Wang's Blog3 小时前
MongoDB小课堂: 高级查询操作符与游标管理综合指南之深度整合逻辑操作符、字段处理、数组查询与游标控制的最佳实践
数据库·mongodb
垂金烟柳3 小时前
MongoDB GridFS 历史数据自动化清理实践
数据库·mongodb·自动化
白露与泡影3 小时前
MySQL中的12个良好SQL编写习惯
java·数据库·面试
foundbug9994 小时前
配置Spring框架以连接SQL Server数据库
java·数据库·spring
q***31894 小时前
mysql 迁移达梦数据库出现的 sql 语法问题 以及迁移方案
数据库·sql·mysql