SQL(Structured Query Language,结构化查询语言)是与关系数据库交互的标准语言 — 存储、查询和管理组织成表的数据(行和列)。它是声明式的:你描述想要什么数据,数据库引擎负责计算出如何高效地获取它。
一个简单的查询
sql
name, email
users
active
name;
你说明想要的结果;数据库的查询规划器决定执行策略(使用哪些索引、如何连接等)。
DQL (Data Query) → SELECT — read data (the most-used)
DML (Data Manipulation)→ INSERT, UPDATE, DELETE — change rows
DDL (Data Definition) → CREATE, ALTER, DROP — define/change schema (tables, indexes)
DCL (Data Control) → GRANT, REVOKE — permissions
TCL (Transaction) → COMMIT, ROLLBACK — transaction control
Data lives in TABLES (relations): rows (records) × columns (fields).
Tables relate via KEYS (primary key identifies a row; foreign key references another table).
→ SQL queries combine and filter this structured, related data.
SQL is an ANSI/ISO standard, but each database has its own DIALECT:
PostgreSQL, MySQL, SQL Server, Oracle, SQLite — mostly compatible, with extras.
→ Core SQL transfers across databases; specific features/functions vary.
SQL是软件中最重要和最持久的技术之一 — 关系数据库为绝大多数应用提供支撑,SQL是与它们交互的通用语言,因此理解SQL对于几乎任何后端或数据工作都是必要的。
它的声明式本质(描述想要什么,而不是如何获得)是一个关键概念:你编写查询,数据库引擎优化执行,这很强大但也解释了为什么理解索引和查询优化很重要(引擎的选择会影响性能)。
了解命令分类(DQL/DML/DDL/DCL/TCL — 特别是用于读取的SELECT和用于修改数据的INSERT/UPDATE/DELETE)、关系模型(表、行、列、键)以及SQL是带有特定数据库方言的标准,这些构成了关于数据库工作的所有其他内容的框架。
由于数据持久化对大多数应用都是基础性的,而SQL是与关系数据交互的标准接口(被开发者、数据分析师和许多其他角色使用),SQL是基础的、必须掌握的知识 — 它已经是几十年来的必备技能,如今仍然如此,使其成为软件开发中最高价值的技能之一。