Skip to content

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

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