SQL 全称为 Structured Query Language,即为结构化查询语言

目前很多数据库(关系型数据库),都是建立在 SQL 上的。

如果把数据库比作盘子,那数据就是盘子里的SQL 则是你的筷子

有一些比较流行的数据库比如 SQLiteMySQLPostgresOracleMicrosoft SQL Server.

所有这些数据库都支持标准的 SQL,换句话说,你学会了 SQL 就可以对这些数据库做数据操作了!

当然上面的每一种数据库都有自己的特性和适用范围(想象一下你家有不同尺寸的盘子).

因此,在接触实际的数据库之前,我们需要先掌握基础 SQL 的使用方式。

# 关系型数据库

RDBMS 全称为 Relational database management system,关系型数据库,简单理解的话,就是表格结构的数据联系

关系型数据库的数据是以表格的形式存储的,每一行代表一条数据,每一列代表一种数据类型。

关系型数据库遵循 ACID 原则,即 Atomicity(原子性)、Consistency(一致性)、Isolation(隔离性)和 Durability(持久性)。

# Atomicity

原子性,即事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。

只要有一个事务操作失败,整个事务就会回滚,所有的操作都不会生效。

比如银行转账,从 A 账户转账 100 美元至 B 账户,分为两个步骤:

  1. A 账户扣除 100 美元
  2. B 账户增加 100 美元

这两步操作要么同时完成,要么同时不完成。

如果只完成了第一步,而第二步没有完成,那么 A 账户就少了 100 美元,而 B 账户却没有增加 100 美元,这就是一个不可分割的工作单位。

# Consistency

一致性,即事务必须使数据库从一个一致性状态变换到另外一个一致性状态。

例如现有完整性约束 a+b=10,如果一个事务改变了 a,那么必须得改变 b,使得事务结束后依然满足 a+b=10,否则事务失败。

# Isolation

独立性,即多个事务并发执行时,事务之间相互隔离,一个事务的执行不应该影响其他事务的执行。

比如银行转账,从 A 账户转账 100 美元至 B 账户。在这个交易还未完成的情况下,如果此时 B 查询自己的账户,是看不到新增加的100 美元的。

# Durability

持久性,即一旦事务提交,它对数据库中数据的改变就应该是永久性的。

Last Updated: 4/8/2023, 5:54:40 PM