什么是 SQL?完整形式及基础知识教程

⚡ 智能摘要

什么是 SQL?结构化查询语言 (SQL) 是用于操作关系数据库的标准语言。它允许您创建模式、查询记录、更新行、管理权限,以及将现代应用程序连接到诸如 SQL Server 之类的引擎。 PostgreSQL, MySQL和 SQL Server。

  • 📘 定义: SQL 代表结构化查询语言,是 ANSI 和 ISO 标准,用于定义、查询和控制关系数据库中的数据。
  • 🧩 语句类型: DDL、DML、DCL、TCL 和 DQL 组命令,例如 CREATE、INSERT、UPDATE、DELETE、SELECT 和 DROP。
  • 🏛️ 标准版: ANSI SQL:2023 增加了原生 JSON 支持,并且 PostgreSQL-style 标准属性图查询(SQL/PGQ)。
  • ⚙️ 引擎: PostgreSQL MySQL 8, Oracle SQL Server 23ai 和 SQL Server 2022 都实现了现代 SQL 标准的大部分内容。
  • ???? SQL 与 NoSQL: SQL 强制执行模式、连接和 ACID 事务,而 NoSQL 则以横向扩展和灵活的文档为代价,牺牲了严格的结构。
  • 🤖 人工智能视角: GitHub Copilot 和 Vanna AI 等文本转 SQL 助手现在可以将纯英文问题翻译成可执行的 SQL 查询。

什么是 SQL?

什么是 SQL?

SQL SQL 是用于操作关系数据库的标准语言。它用于插入、搜索、更新和删除记录,还可以优化和维护数据库。SQL 是 ANSI 和 ISO 标准,因此相同的核心语法适用于各种数据库引擎,例如 SQL Server 和 SQL Server。 PostgreSQL, MySQL, Oracle和 SQL Server。

SQL 全称

SQL 代表 结构化查询语言发音为“SQL”或“See-Quel”。 IBM 它于 20 世纪 70 年代开发,关系型数据库,例如 MySQL, Oracle Database, Microsoft SQL Server, PostgreSQL和 SAP Sybase 使用 ANSI SQL 作为其基础。

如何使用 SQL

您可以通过编写语句来执行 SQL,语句中需要指定操作、目标表以及任何筛选条件。例如,返回年龄大于 30 岁成员的 SELECT 查询语句如下所示:

SELECT * FROM Members WHERE Age > 30;

数据库之间的语法大体相似,因为所有主流引擎都实现了 ANSI 标准。少数关系数据库管理系统 (RDBMS) 产品添加了专有方言,例如 SQL Server 中的 T-SQL 和 SQL Server 中的 PL/SQL。 Oracle.

点击 开始 如果视频无法访问

SQL 的用途是什么?

以下是使用 SQL 的重要原因:

  • 它帮助用户访问数据。 RDBMS 系统.
  • 它可以帮助你描述数据。
  • 它允许您定义数据库中的数据并操作特定的数据。
  • 借助 SQL,您可以创建和删除数据库和表。
  • SQL 允许你在数据库中使用函数、创建视图和编写存储过程。
  • 您可以设置表、过程和视图的权限。
  • SQL 支持分析任务,例如报表生成、商业智能以及向机器学习管道提供数据。

SQL简史

以下是 SQL 历史上的重要里程碑:

  • 1970 年——Edgar F.“Ted”Codd 博士描述了数据库的关系模型。
  • 1974年——结构化查询语言(SQL)问世 IBM 研究。
  • 1978 - IBM 发布 System/R。
  • 1986 年——ANSI 将 SQL 标准化为 SQL-86。
  • 1989 年——SQL 标准的第一个商业版本发布。
  • 1999 年 – SQL:1999 增加了触发器和面向对象特性。
  • SQL:2003 – 窗口函数和 XML 功能。
  • SQL:2006 – 支持 XML 查询语言。
  • SQL:2011 – 时态数据库支持。
  • SQL:2016 – JSON、行模式识别、多态表函数。
  • SQL:2023 – 属性图查询 (SQL/PGQ) 和更严格的 JSON 处理。

SQL 语句的类型

以下是五种常用的 SQL 语句:

  • 数据定义语言(DDL)
  • 数据操纵语言(DML)
  • 数据控制语言(DCL)
  • 事务控制语言 (TCL)
  • 数据查询语言 (DQL)

SQL 命令列表

以下是一些最常用的词汇列表。 SQL命令:

  • CREATE – 定义数据库结构或模式。
  • 插入 – 将数据插入到表格的行中。
  • 更新 – 更新数据库中的现有数据。
  • 删除 – 从表中删除一行或多行。
  • 选择 – 选择符合 WHERE 子句所描述的条件的属性。
  • 下降 – 删除表和数据库。
  • 合并 – 根据匹配条件,在单个语句中执行 INSERT 或 UPDATE 操作。

SQL进程

执行 SQL 命令时,数据库引擎会解析语句,选择一个执行计划,并将其应用于存储层。

该过程中的重要组成部分包括:

  • SQL 查询引擎
  • 优化引擎
  • 查询调度器
  • 经典查询引擎

经典查询引擎处理非 SQL 查询,而 SQL 查询引擎处理结构化工作负载。

SQL进程
SQL进程

SQL 标准

SQL涵盖数据库的创建、删除、数据提取和修改以及访问控制。它是ANSI(美国国家标准协会)和ISO标准,当前版本为: ISO / IEC 9075:2023通常称为 SQL:2023。该标准分为几个部分:

Part 描述
第 1 部分 – SQL/框架 提供了支撑其他所有部分的逻辑概念。
第 2 部分 - SQL/Foundation 定义了 SQL 的核心语法和语义。
第 3 部分 - SQL/CLI 指定 ODBC 及类似驱动程序使用的调用级接口。
第 4 部分 - 持久存储模块 存储例程、外部例程和 SQL 的过程语言扩展。
第 9 部分 – 外部数据管理 添加了允许 SQL 访问非 SQL 数据源(例如文件)的语法和定义。
第 10 部分 - 对象语言绑定 指定嵌入 SQL 的语法和语义 Java.
第 11 部分 - SQL/Schema 信息和定义模式。
第 13 部分 – SQL/JRT 使用 SQL 例程和类型 Java 编程语言。
第 14 部分 – SQL/XML SQL 和 XML,包括 XMLTYPE 和 XQuery 集成。
第 15 部分 – SQL/MDA 提供对多维数组的 SQL 支持。
第 16 部分 – SQL/PGQ SQL:2023 新增功能,用于在关系表之上定义属性图查询。

现代 SQL 引擎

每个引擎都实现了大部分 ANSI 核心功能,并添加了自己的扩展:

  • PostgreSQL 17年: 开源,严格遵守标准,并支持丰富的JSON格式。
  • MySQL 8: 受 Web 应用欢迎;支持窗口函数、CTE 和文档存储模式。
  • Microsoft SQL Server 2022年: 企业引擎具备查询智能功能 Azure 突触镜像。
  • Oracle Database 23ai: 结合了 SQL、向量搜索和 JSON 关系对偶视图。
  • SQLite: 轻量级的基于文件的引擎,可嵌入移动应用和浏览器中。

云仓库,例如 Amazon 红移, Google BigQuery 和 Snowflake 也公开了 ANSI SQL 方言,使得该语言可以从笔记本电脑移植到 PB 级分析。

SQL语言元素

以下是 SQL 语言的重要组成部分:

  • 关键词: SELECT、FROM 或 WHERE 等保留字构成每个语句。
  • 标识符: 数据库对象的名称,例如用户 ID、表和列的名称。
  • 字串: 字面字符串或数据类型为 VARCHAR 或 CHAR 的表达式。
  • 表达式: 由常量、SQL 运算符、列名和子查询组成。
  • 搜索条件: 筛选行或控制流语句,例如 IF 语句。
  • 特殊值: 表达式和列默认值中使用的值,例如 CURRENT_TIMESTAMP。
  • 变量: 大多数引擎都支持存储过程中的局部变量、全局变量和连接级变量。
  • 管理员评论: 单行(-)和块(/* */)注释用于记录 SQL,但不会被执行。
  • NULL 值: NULL 表示值未知、缺失或不适用。

SQL中的数据库是什么?

A 数据库 表是存储结构化数据的表的集合。表包含行(记录或元组)和列(属性)。

每列存储特定类型的信息,例如姓名、日期、金额或数字。表之间的关系通过主键和外键来强制执行,这正是数据库“关系型”的本质所在。

什么是 NoSQL?

NoSQL的 是以下类别之一 数据库管理系统 其主要特点是不遵循关系型概念。NoSQL 的意思是“不仅仅是 SQL”。该类别随着互联网巨头的发展而壮大,例如…… Google,Facebook和 Amazon处理海量数据的人。

当关系型数据库处理海量数据时,响应时间可能会变慢。您可以通过升级硬件来“向上扩展”,或者通过将负载分配到多个主机上来“向外扩展”。

NoSQL数据库是 非关系 专为 Web 应用程序设计的商店。它们并不总是使用 SQL 或强制执行严格的模式,并且 ACID(Atom冰性、稳定性、隔离性和耐久性等特性并非总是能够得到保证,尽管现代系统(例如……) MongoDB 和 Cassandra 现在提供可调的交易模式。



为什么在学习 NoSQL 之后学习 SQL 更有意义

鉴于 NoSQL 的横向扩展性优于关系型模型,你可能会想 为什么还有人会学习 SQLNoSQL 数据库是专门用于处理大型非结构化数据集的,并且最适合处理此类数据集,但大多数商业应用程序仍然依赖于关系数据库及其工具。

关系型数据库相比 NoSQL 数据库具有以下优势:

  • 成熟的数据存储和管理模型,对企业用户至关重要。
  • 支持视图功能,允许用户仅查看已授权的数据。
  • 支持将业务逻辑推送到数据库的存储过程。
  • 更强大的安全模型、基于角色的访问控制和审计功能。
  • SQL 是 BI、仪表盘和 AI 工具等需要结构化输入的通用语言。

对能够处理关系型数据库的专业人员的需求持续存在 成长因此,学习 SQL 基础知识仍然具有明显的价值。

SQL 和 AI:文本转 SQL 工具

SQL 现在是人工智能助手的目标语言之一。 文本到 SQL 这些工具可以将诸如“显示上季度收入排名前十的客户”之类的纯英文问题转换为可执行的 SQL 语句。常用的选项包括: GitHub 副驾驶, 凡纳艾, Microsoft 副驾驶在 Azure SQL,以及 Oracle 选择 AI。在将生成的 SQL 应用于生产数据之前,务必检查其正确性、安全性和索引情况。

学习 SQL 的最佳书籍

以下是一些顶尖的SQL书籍:

  • SQL入门教程:

    本篇 初学者的 SQL 教程 该PDF涵盖了数据库基本概念、MS-SQL命令以及SQL连接等高级主题。

  • 10分钟了解 SQL: 全彩代码示例展示了 SQL 语句的结构,以及快捷方式和现成的解决方案。 立即购买
  • SQL 手册: 例如使用 SQL 遍历字符串来解析字符或分隔元素等技术。 立即购买
  • SQL: The Complete Reference: 涵盖窗口函数、将行透视成列以及反向透视。 立即购买
  • SQL袖珍指南: 教授 SQL 函数、正则表达式语法和类型转换。 立即购买

更多 SQL 书籍 – 点击这里

常见问题

SQL 代表结构化查询语言 (Structured Query Language)。它的发音可以是三个字母“SQL”,也可以是“See-Quel”,后者是沿用自最初的 SQL 的昵称。 IBM SEQUEL 原型开发于 20 世纪 70 年代。

SQL是用于查询关系数据库的标准化语言。 MySQL 它是众多实现 SQL 的数据库管理系统之一。其他也使用 SQL 的引擎包括: PostgreSQL, Microsoft SQL Server, Oracle Database和 SQLite.

当前标准为 ISO/IEC 9075:2023,通常称为 SQL:2023。它增加了第 16 部分 SQL/PGQ,用于属性图查询,并明确了 JSON 处理,以 SQL:2016 中引入的 JSON 和行模式功能为基础。

是的。例如,文本转SQL工具。 GitHub 副驾驶,Vanna AI,以及 Microsoft 副驾驶在 Azure SQL 将纯英文提示转换为查询语句。运行 SQL 语句之前,务必检查其正确性、安全性和索引设置。

SQL 负责准备训练数据:特征工程、连接、过滤和聚合等操作都在数据仓库中完成。像 SQL 这样的引擎负责训练训练数据:特征工程、连接、过滤和聚合等操作都在数据仓库中完成。 Oracle 23ai、BigQuery ML 和 PostgreSQL 现在,pgvector 可以直接在 SQL 中运行向量相似性搜索,以进行检索增强生成。

大多数初学者经过两到三周的集中练习后,就能编写基本的 SELECT、INSERT、UPDATE 和 DELETE 语句。而要达到中级水平,掌握连接、子查询、窗口函数和查询优化等技能,通常需要几个月的持续实践。

总结一下这篇文章: