跳至主要內容
一、概述

1.1 RDBMS 和 非 RDBMS

关系型数据库绝对是 DBMS 的主流,其中使用最多的 DBMS 分别是 Oracle、 MySQL 和 SQL Server。

这些都是关系型数据库(RDBMS)。

1.1.1 关系型数据库(RDBMS)

这种类型的数据库是 最古老 的数据库类型,关系型数据库模型是把复杂的数据结构归结为简单的 二元关系 (即二维表格形式)。

image-20240107131342618.png

鲨瓜...大约 4 分钟数据库数据库MySQL
二、SQL

SQL(Structured Query Language,结构化查询语言)是使用关系模型的数据库应用语言, 与数据直 接打交道 ,由 IBM 上世纪70年代开发出来。后由美国国家标准局(ANSI)开始着手制定SQL标准, 先后有 SQL-86 , SQL-89 , SQL-92 , SQL-99 等标准。

2.1 SQL的分类

  • DDL(Data Definition Languages、数据定义语言)

    • 这些语句定义了不同的数据库、表、视图、索 引等数据库对象,还可以用来创建、删除、修改数据库和数据表的结构
    • 主要的语句关键字包括 CREATE 、 DROP 、 ALTER、TRUNCATE 等。
  • DML(Data Manipulation Language、数据操作语言)

    • 用于添加、删除、更新和查询数据库记 录,并检查数据完整性。
    • 主要的语句关键字包括 INSERT 、 DELETE 、 UPDATE 、 SELECT 等。
    • DML 是SQL中最基础的,也是最为重要的
  • DCL(Data Control Language、数据控制语言)

    • 用于定义数据库、表、字段、用户的访问权限和 安全级别。
    • 主要的语句关键字包括 GRANT 、 REVOKE 、 COMMIT 、 ROLLBACK 、 SAVEPOINT 等。

鲨瓜...大约 12 分钟数据库数据库MySQL
三、函数

函数的分类

image-20240120180848000
  • 操作数据对象
  • 接受参数返回一个结果
  • 只对一行进行变换
  • 每行返回一个结果
  • 可以嵌套
  • 参数可以是一列或一个值

3.1 单行函数

3.1.1 数值函数

(1)基本函数


鲨瓜...大约 12 分钟数据库数据库函数MySQL
四、子查询

子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQL 4.1开始引入。

SQL 中子查询的使用大大增强了 SELECT 查询的能力,因为很多时候查询需要从结果集中获取数据,或者 需要从同一个表中先计算得出一个数据结果,然后与这个数据结果(可能是某个标量,也可能是某个集 合)进行比较。

子查询其实就相当于变成语言中的嵌套FOR循环

4.1 提出需求并解决

image-20240121190639539

鲨瓜...大约 6 分钟数据库数据库MySQL
五、 创建和管理表

一个完整的数据存储过程总共有 4 步,分别是创建数据库、确认字段、创建数据表、插入数据。

image-20240225160621281

5.1 标识符命名规则

数据库名、表名不得超过30个字符,变量名限制为29个

必须只能包含 A–Z, a–z, 0–9, _共63个字符

数据库名、表名、字段名等对象名中间不要包含空格

同一个MySQL软件中,数据库不能同名;同一个库中,表不能重名;同一个表中,字段不能重名

必须保证你的字段没有和保留字、数据库系统或常用方法冲突。如果坚持使用,请在SQL语句中使 用`(着重号)引起来


鲨瓜...大约 3 分钟数据库数据库MySQL
六、 MYSQL中的数据类型

常见数据类型的属性,如下:

image-20240302134320608

6.1 整型

整数类型一共有 5 种,包括 TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)和 BIGINT。

它们的区别如下表所示

image-20240302133735988

6.1.1 可选属性

(1) M

M : 表示显示宽度,M的取值范围是(0, 255)。例如,int(5):当数据宽度小于5位的时候在数字前面需要用 字符填满宽度。该项功能需要配合“ ZEROFILL ”使用,表示用“0”填满宽度,否则指定显示宽度无效。


鲨瓜...大约 13 分钟数据库数据库MySQL
七、 约束

7.1 约束概念

为什么需要约束?

数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。它是防止数据库中 存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。

为了保证数据的完整性,SQL规范以约束的方式对表数据进行额外的条件限制。从以下四个方面考虑:

  • 实体完整性(Entity Integrity) :例如,同一个表中,不能存在两条完全相同无法区分的记录
  • 域完整性(Domain Integrity) :例如:年龄范围0-120,性别范围“男/女
  • 引用完整性(Referential Integrity) :例如:员工所在部门,在部门表中要能找到这个部门
  • 用户自定义完整性(User-defined Integrity) :例如:用户名唯一、密码不能为空等,本部门 经理的工资不得高于本部门职工的平均工资的5倍

鲨瓜...大约 12 分钟数据库数据库MySQL
八、 MYSQL架构

8.1 逻辑架构剖析

首先 MySQL 是典型的 C/s 架构,即 client/Server 架构,服务器端程序使用的 mysqld

不论客户端进程和服务器进程是采用哪种方式进行通信,最后实现的效果都是:客户端进程向服务器进程发送一段文本(SOL语句)段文本,服务器进程处理后在向客户端进程发送一段文本(处理结果),

image-20240303143605705

8.1.1 第一层:连接层

系统(客户端)访问 MySQL 服务器前,做的第一件事就是建立TCP 连接 , 经过三次握手建立连接成功后, MySQL 服务器对 TCP 传输过来的账号密码做身份认证、权限获取。


鲨瓜...大约 8 分钟数据库数据库MySQL
九、 索引

9.1 为什么要使用索引

索引是存储引擎用于快速找到数据记录的一种数据结构,就好比一本教课书的目录部分,通过目录中找到对应文章的页码,便可快速定位到需要的文章。MySQL中也是一样的道理,进行数据查找时,首先查看查询条件是否命中某条索引,符合则 通过索引査找 相关数据,如果不符合则需要 全表扫描 ,即需要一条一条地查找记录,直到找到与条件符合的记录。

使用索引的目的就是为了减少磁盘IO的次数,加快查询效率

9.2 索引的特点及优缺点


鲨瓜...大约 19 分钟数据库数据库MySQL
十、 InnoDB数据存储结构

10.1 磁盘与内存交互的基本单位: 页

InnoDB 将数据划分为若干个页,InnoDB中页的大小默认为 16KB

作为磁盘和内存之间交豆的 基本单位,也就是一次最少从磁盘中读取16KB的内容到内存中,一次最少把内存中的16KB内容刷新到磁盘中。也就是说,在数据库中,不论读一行,还是读多行,都是将这些行所在的页进行加载。也就是说,数据库管理存储空间的基本单位是页(Page),数据库 I/0 操作的最小单位是页。一个页中可以存储多个行记录,


鲨瓜...大约 10 分钟数据库数据库MySQL