Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  General Information  /  MySQL Standards Compliance

1.6 MySQL 标准符合性

本节描述了 MySQL 与 ANSI/ISO SQL 标准的关系。MySQL 服务器有许多对 SQL 标准的扩展,在这里您可以找到它们是什么以及如何使用它们。您还可以找到关于 MySQL 服务器缺少的功能信息,以及如何绕过一些差异。

SQL 标准自 1986 年以来一直在演进,多个版本存在。在本手册中,SQL-92 指的是 1992 年发布的标准。SQL:1999SQL:2003SQL:2008SQL:2011 指的是相应年份发布的版本,最后一个是最新版本。我们使用短语 SQL 标准标准 SQL 来表示当前的 SQL 标准版本。

我们的主要目标之一是继续朝着 SQL 标准的符合性发展,但不牺牲速度或可靠性。我们不怕添加 SQL 扩展或支持非 SQL 功能,如果这大大提高了 MySQL 服务器的可用性对于我们的大多数用户。 HANDLER 接口是一个例子,见 第 15.2.5 节,“HANDLER 语句”

我们继续支持事务和非事务数据库,以满足 mission-critical 24/7 使用和重度 Web 或日志使用。

MySQL 服务器最初设计用于中型数据库(10-100 million 行,或者每个表约 100MB)的小型计算机系统。今天 MySQL 服务器处理 terabyte 大小的数据库。

我们不目标实时支持,尽管 MySQL 复制功能提供了显著的功能。

MySQL 支持 ODBC 级别 0 到 3.51。

MySQL 支持使用 NDBCLUSTER 存储引擎实现高可用性数据库集群。请参阅 第 25 章,MySQL NDB 集群 8.3

我们实现了支持大多数 W3C XPath 标准的 XML 功能。请参阅 第 14.11 节,“XML 函数”

MySQL 支持根据 RFC 7159 定义的原生 JSON 数据类型,并基于 ECMAScript 标准(ECMA-262)。请参阅 第 13.5 节,“JSON 数据类型”。MySQL 还实现了 SQL/JSON 函数的子集,按照预发布的 SQL:2016 标准草案;请参阅 第 14.17 节,“JSON 函数”,以获取更多信息。

选择 SQL 模式

MySQL 服务器可以在不同的 SQL 模式下运行,并且可以根据 sql_mode 系统变量的值为不同的客户端应用不同的模式。DBA 可以将全局 SQL 模式设置为匹配站点服务器操作要求,每个应用程序可以将其会话 SQL 模式设置为其自己的要求。

模式影响 MySQL 支持的 SQL 语法和执行的数据验证检查。这使得在不同的环境中使用 MySQL变得更容易,并且可以与其他数据库服务器一起使用。

有关设置 SQL 模式的更多信息,请参阅 第 7.1.11 节,“服务器 SQL 模式”

在 ANSI 模式下运行 MySQL

要在 ANSI 模式下运行 MySQL 服务器,请使用 mysqld 选项 --ansi。在运行时实现相同的效果,执行以下两个语句:

--transaction-isolation=SERIALIZABLE --sql-mode=ANSI

要实现相同的效果,在运行时执行以下两个语句:

SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SET GLOBAL sql_mode = 'ANSI';

您可以看到,设置 sql_mode 系统变量为 'ANSI',启用了所有相关的 SQL 模式选项,如下所示:

mysql> SET GLOBAL sql_mode='ANSI';
mysql> SELECT @@GLOBAL.sql_mode;
        -> 'REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI'

在 ANSI 模式下运行服务器与设置 SQL 模式为 'ANSI' 不同,因为 --ansi 选项还设置了事务隔离级别。

请参阅 第 7.1.7 节,“服务器命令选项”