sql-overview
SQL - 现代概览
Section titled “SQL - 现代概览”欢迎来到 SQL 的世界!本章概述了 SQL 是什么、它在当今技术领域为何仍然至关重要,以及它作为数据语言如何运作。
什么是 SQL?
Section titled “什么是 SQL?”SQL,即结构化查询语言(Structured Query Language),是用于管理和操作关系型数据库管理系统(RDBMS)中数据的标准编程语言。它是一种声明式语言,这意味着您描述您想要什么数据,而数据库引擎会找出如何高效地检索它。
几乎所有关系型数据库(如 MySQL、PostgreSQL、SQL Server、Oracle 和 SQLite)都使用 SQL 作为其核心语言。它允许您执行广泛的任务,包括:
- **数据定义语言(DDL):**创建、修改和删除数据库结构,如表和索引(
CREATE TABLE、ALTER TABLE)。 - **数据操作语言(DML):**从表中插入、更新、删除和检索数据(
INSERT、UPDATE、DELETE、SELECT)。 - **数据控制语言(DCL):**管理用户权限和数据访问权限(
GRANT、REVOKE)。
虽然 SQL 是 ANSI/ISO 标准,但不同的数据库有自己的扩展或“方言”(例如,Microsoft SQL Server 的 T-SQL,PostgreSQL 的 PL/pgSQL)。然而,核心的 DDL 和 DML 命令在系统之间大多是可移植的。
为什么 SQL 仍然必不可少?
Section titled “为什么 SQL 仍然必不可少?”在 SQL 创建几十年后,它仍然是软件开发和数据分析的基石,原因如下:
- **通用标准:**它是关系型数据的通用语言。了解 SQL 可以访问庞大的强大数据库技术生态系统。
- **强大的数据操作:**SQL 为复杂的数据过滤、连接和聚合提供了强大而富有表达力的语法。
- **可靠性和一致性:**由 SQL 驱动的关系型数据库建立在 ACID(原子性、一致性、隔离性、持久性)原则之上,确保数据完整性。
- **高需求技能:**SQL 的熟练掌握在后端开发、数据科学、商业智能和数据工程等职位中备受追捧。
- **现代工具的基础:**许多现代数据工具、库和 ORM(对象关系映射)最终都在底层生成并执行 SQL 查询。
SQL 简史
Section titled “SQL 简史”- **1970 年:**IBM 研究员 Edgar F. Codd 博士发表了他的开创性论文《大型共享数据库的关系模型》(“A Relational Model of Data for Large Shared Data Banks”),为关系型数据库奠定了理论基础。
- **1974 年:**基于 Codd 的模型,IBM 的 Donald Chamberlin 和 Raymond Boyce 开发了一种名为 SEQUEL(Structured English Query Language)的查询语言,后来缩短为 SQL。
- **1979 年:**Relational Software, Inc.(后来的 Oracle)发布了第一个使用 SQL 的商业关系型数据库管理系统(RDBMS)。
- **1986-1987 年:**SQL 被美国国家标准协会(ANSI)和国际标准化组织(ISO)正式采纳为标准,巩固了其作为行业标准的地位。
SQL 查询的工作原理:生命周期
Section titled “SQL 查询的工作原理:生命周期”当您执行 SQL 查询时,数据库引擎会执行一系列步骤来返回您想要的结果:
- **1. 解析:**引擎首先检查 SQL 语句的语法是否正确。它验证所有关键字(
SELECT、FROM等)拼写是否正确,并且整体结构是否有效。 - **2. 绑定(验证):**引擎检查查询的语义有效性。它验证所提及的表和列是否实际存在,以及您是否拥有访问它们的必要权限。
- **3. 优化:**这是最关键的阶段。查询优化器(Query Optimizer)分析查询并确定执行它的最有效方式。它会考虑各种“执行计划”(execution plans),例如使用哪些索引、连接表的顺序以及数据访问的最佳算法。这就是 SQL 是声明式语言的原因——优化器处理“如何”操作。
- **4. 执行:**引擎运行选定的执行计划。它从磁盘将数据提取到内存中,执行任何过滤、连接或排序,并准备好最终结果集以发送回客户端。
这个过程确保即使是复杂的查询也能尽可能高效地执行,从而将底层数据检索逻辑从用户那里抽象出来。