什么是 SQL?

结构化查询语言 (SQL) 是一种编程语言,用于在关系数据库中存储和处理信息。关系数据库以表格形式存储信息,行和列分别表示不同的数据属性和数据值之间的各种关系。您可以使用 SQL 语句从数据库中存储、更新、删除、搜索和检索信息。您还可以使用 SQL 来维护和优化数据库性能。

为什么 SQL 很重要?

结构化查询语言 (SQL) 是一种常用的查询语言,经常用于所有类型的应用程序。数据分析师和开发人员学习和使用 SQL 的原因在于可以与不同的编程语言很好地集成。例如,他们可以使用 Java 编程语言嵌入 SQL 查询,以使用 Oracle 或 MS SQL Server 等主要 SQL 数据库系统构建高性能数据处理应用程序。SQL 也很容易学习,因为它的语句中使用的是常见的英语关键字

SQL 的历史

SQL 是在 1970 年代基于关系数据模型发明出来的。SQL 最初被称为结构化英语查询语言 (SEQUEL)。这个术语后来被缩短为 SQL。Oracle(原名 Relational Software)成为了第一个提供商用 SQL 关系数据库管理系统的供应商。

SQL 系统有哪些组成部分?

关系数据库管理系统使用结构化查询语言 (SQL) 来存储和管理数据。该系统存储了多个相互关联的数据库表。MS SQL Server、MySQL 或 MS Access 都是关系数据库管理系统的示例。以下是此类系统的组成部分。 

SQL 表

SQL 表是关系数据库的基本元素。SQL 数据库表由行和列组成。数据库工程师在多个数据库表之间创建关系,以优化数据存储空间。

例如,数据库工程师可以为商店中的产品创建 SQL 表: 

产品 ID

产品名称

颜色 ID

0001

床垫

颜色 1

0002

枕头

颜色 2

然后,数据库工程师可以将产品表链接到带有颜色 ID 的颜色表:

颜色 ID

颜色名称

颜色 1

蓝色

颜色 2

红光

SQL 语句

SQL 语句或 SQL 查询是指关系数据库管理系统可以理解的有效指令。软件开发人员使用不同的 SQL 语言元素构建 SQL 语句。SQL 语言元素是组成正确 SQL 语句的组件,如标识符、变量和搜索条件。

例如,以下 SQL 语句使用 SQL INSERT 命令将定价为 499 美元床垫品牌 A 存储到名为 Mattress_table 的表中,列名为 brand_namecost:

INSERT INTO Mattress_table (brand_name, cost)

VALUES(‘A’,’499’);

存储过程

存储过程是指存储在关系数据库中的一个或多个 SQL 语句的集合。软件开发人员使用存储过程来提高效率和性能。例如,他们可以创建存储过程用于更新销售表,而不必在不同的应用程序中编写相同的 SQL 语句。 

SQL 如何工作?

结构化查询语言 (SQL) 的实现涉及处理数据库查询并返回结果的服务器机器。SQL 过程需要经过几个软件组件,包括以下组件。 

解析器

解析器首先将 SQL 语句中的一些单词单词化,或用特殊符号替换。然后,解析器会检查语句是否存在以下情况:

正确性

解析器会验证 SQL 语句是否符合 SQL 语义或规则,以确保查询语句正确性。例如,解析器会检查 SQL 命令是否以分号结尾。如果缺少分号,解析器将返回错误。

授权

解析器还会验证运行查询的用户是否具有操作相应数据的必要授权。例如,只有管理员用户才有权删除数据。 

关系引擎

关系引擎或查询处理器会创建一个计划,以最有效的方式检索、写入或更新相应数据。例如,关系引擎会检查类似的查询,重用以前的数据操作方法,或创建新的方法。关系引擎以 SQL 语句的中间级表示形式(称为字节码)编写计划。关系数据库使用字节码高效地执行数据库搜索和修改。 

存储引擎

存储引擎或数据库引擎是指处理字节码并运行预期 SQL 语句的软件组件。存储引擎会读取并存储物理磁盘存储上的数据库文件中的数据。完成后,存储引擎会将结果返回给请求应用程序。

什么是 SQL 命令?

结构化查询语言 (SQL) 命令是指开发人员用来操作关系数据库中存储的数据的特定关键字或 SQL 语句。您可以按如下方式对 SQL 命令进行分类。

数据定义语言

数据定义语言 (DDL) 是指设计数据库结构的 SQL 命令。数据库工程师使用 DDL 根据业务需求创建和修改数据库对象。例如,数据库工程师可以使用 CREATE 命令创建数据库对象,如表、视图和索引。

数据查询语言

数据查询语言 (DQL) 由用于检索存储在关系数据库中的数据的指令组成。软件应用程序使用 SELECT 命令从 SQL 表中筛选并返回特定结果。 

数据操作语言

数据操作语言 (DML) 语句用于在关系数据库中写入新信息或修改现有记录。例如,应用程序使用 INSERT 命令在数据库中存储新记录。

数据控制语言

数据库管理员使用数据控制语言 (DCL) 来管理或授权其他用户的数据库访问权限。例如,数据库管理员可以使用 GRANT 命令来允许某些应用程序操作一个或多个表。 

事务控制语言

关系引擎使用事务控制语言 (TCL) 自动进行数据库更改。例如,数据库使用 ROLLBACK 命令撤消错误的事务。 

什么是 SQL 标准?

SQL 标准是结构化查询语言 (SQL) 的一组正式定义的准则。美国国家标准协会 (ANSI) 和国际标准化组织 (ISO) 于 1986 年采用了 SQL 标准。软件供应商使用 ANSI SQL 标准为开发人员构建 SQL 数据库软件。

什么是 SQL 注入?

SQL 注入是一种网络攻击,涉及使用 SQL 查询欺骗数据库。黑客可以使用 SQL 注入来检索、修改或破坏 SQL 数据库中的数据。例如,黑客可能在提交表单中填写 SQL 查询而不是人名,从而执行 SQL 注入攻击。

什么是 MySQL?

MySQL 是 Oracle 提供的一个开源关系数据库管理系统。开发人员可以下载和使用 MySQL,无需支付许可费。开发人员可以在不同的操作系统或云服务器上安装 MySQL。MySQL 是一种常用的 Web 应用程序数据库系统。 

SQL 与 MySQL

结构化查询语言 (SQL) 是数据库创建和操作的标准语言。MySQL 是一种使用 SQL 查询的关系数据库程序。虽然 SQL 命令按照国际标准定义,但 MySQL 软件仍在不断升级和改进。

什么是 NoSQL?

NoSQL 是指不使用表存储数据的非关系数据库。开发人员将信息存储在不同类型的 NoSQL 数据库中,包括图形、文档和键值。NoSQL 数据库在现代应用程序中很受欢迎,因为其具有横向可扩展性。横向扩展意味着可以通过添加更多运行 NoSQL 软件的计算机来提高处理能力。

SQL 与 NoSQL

结构化查询语言 (SQL) 提供了统一的数据操作语言,但 NoSQL 实现依赖于不同的技术。开发人员可以将 SQL 用于事务和分析应用程序,而 NoSQL 则适用于响应性强、使用量大的应用程序。 

什么是 SQL Server?

SQL Server 是 Microsoft 关系数据库管理系统的正式名称,该系统使用 SQL 处理数据。MS SQL Server 有多个版本,每个版本都针对特定的工作负载和需求而设计。

亚马逊云科技如何支持 SQL?

AWS 上的 Microsoft SQL Server 允许开发人员在 AWS 上运行 Microsoft SQL 工作负载。SQL 数据库系统使用可扩展的 AWS 计算资源实现更高性能。亚马逊云科技在 24 个地区拥有最广泛的全球基础设施,通过在 AWS 上运行 MS SQL,公司可以实现更高的服务可用性。AWS 上的 SQL Server 与 230 多个安全、合规性和治理服务集成,以保护您的数据免受外部威胁。亚马逊云科技支持 SQL 的其他方式包括:

立即注册 AWS 账户,在 AWS 上开启 SQL Server 之旅。

AWS SQL 后续步骤

查看其他与产品相关的资源
查看有关开发人员工具的免费培训 
注册免费账户

立即享受 AWS 免费套餐。 

注册 
开始在控制台中构建

在 AWS 管理控制台中开始构建。

登录