SQL
SQL 是关系型数据库的通用语言,覆盖模式定义、数据操作、查询、事务控制和权限控制。
#type / concept
#status / growing
#tech / dev / backend
#resource / sql
#resource / database
[!info] related notes
- 所属 MOC: 数据库 MOC
- 前置概念: 关系型数据库
- 并列概念: 对象关系映射 ORM
- 易混淆概念:
- 关系笔记: MySQL 与 PostgreSQL 的数据类型差异
SQL
一句话定义
SQL 是关系型数据库用来描述结构、读写数据、控制事务和管理权限的标准语言。
核心机制 / 工作原理
SQL 常被分成几类:
- DDL(Data Definition Language):定义结构,如 CREATE、ALTER、DROP
- DML(Data Manipulation Language):修改数据,如 INSERT、UPDATE、DELETE
- DQL(Data Query Language):查询数据,核心是 SELECT
- TCL(Transaction Control Language):事务控制,如 BEGIN、COMMIT、ROLLBACK
- DCL(Data Control Language):权限控制,如 GRANT、REVOKE
它的关键价值在于:
- 用声明式方式描述“想要什么”,而不是逐步命令式地写“怎么拿到”
- 与关系模型天然对应
- 允许数据库优化器自己选择执行计划
最小例子 / 最小场景
CREATE TABLE users (
id BIGINT PRIMARY KEY,
name VARCHAR(100) NOT NULL
);
INSERT INTO users (id, name) VALUES (1, 'Alice');
SELECT id, name
FROM users
WHERE id = 1;
边界与易混淆点
- SQL 是一门语言,不等于某一个数据库产品。MySQL、PostgreSQL、SQLite 都支持 SQL,但具体语法和特性并不完全相同。
- SQL 不只等于查询。很多初学者只记
SELECT,但建模、事务和权限同样依赖 SQL。 - ORM 不会替代 SQL。ORM 只是生成或封装 SQL 的一层抽象,遇到复杂查询、执行计划和性能问题时仍要回到 SQL 本身。