1.7 MySQL标准合规性

1.7.1标准SQL的MySQL扩展

1.7.2 MySQL与标准SQL的差异

1.7.3 MySQL如何处理限制

本节将介绍MySQL如何与ANSI / ISO SQL标准相关。MySQL Server对SQL标准有很多扩展,在这里你可以找到它们是什么,以及如何使用它们。您还可以找到有关MySQL Server缺少的功能的信息,以及如何解决一些差异。

自1986年以来,SQL标准一直在发展,并且存在多个版本。在本手册中, “SQL-92”指的是在1992年发布的标准, “SQL:1999”指的是在1999年发布的标准, “SQL:2003”指的是在2003年发布的标准,和“SQL:2008”指到2008年发布的最新版本的标准。我们在任何时候使用短语“SQL标准”或“标准SQL”来表示当前版本的SQL标准。

该产品的主要目标之一是继续努力遵守SQL标准,但不会牺牲速度或可靠性。如果这大大增加了MySQL Server对我们用户群体的大部分的可用性,我们不用担心添加对SQL的扩展或支持非SQL功能。该HANDLER界面是此策略的示例。请参见第13.2.4节“手动语法”

我们继续支持交易和非事务性数据库,以满足任务关键的24/7全天候使用和大量Web或日志记录的使用。

MySQL Server最初设计用于在小型计算机系统上使用中型数据库(每台1000万行,约100MB)。今天,MySQL服务器处理数TB大小的数据库,但代码也可以以适合于手持和嵌入式设备的简化版本进行编译。MySQL服务器的紧凑设计使得两个方向的开发成为可能,而源树中却没有任何冲突。

我们不是针对实时支持,尽管MySQL复制功能提供了重要的功能。

MySQL支持ODBC级别0到3.51。

MySQL支持使用NDBCLUSTER存储引擎的高可用性数据库集群。请参见第18章,MySQL NDB Cluster 7.3和NDB Cluster 7.4

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

选择SQL模式

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

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

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

以ANSI模式运行MySQL

要以ANSI模式运行MySQL服务器,请使用该选项启动mysqld--ansi。以ANSI模式运行服务器与使用以下选项一起启动:

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

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

全球交易隔离级别可串行;

SET GLOBAL sql_mode ='ANSI';

您可以看到,将sql_mode系统变量设置为'ANSI'启用与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模式运行服务器与--ansi将SQL模式设置为不同,'ANSI'因为该--ansi选项还会设置事务隔离级别。

请参见第5.1.4节“服务器命令选项”

results matching ""

    No results matching ""