当前位置: 首页 > article >正文

MySQL标准合规

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

SQL标准自1986年以来一直在演进,存在多个版本,在本文中,“SQL-92”指1992年发布的标准,“SQL: 1999”、“SQL:2003”、“SQL:2008”、“SQL:2011”详情可见相应年份发布的标准版本,最后一个为最新版本,我们使用短语“SQL标准”或“标准SQL”来表示SQL标准的当前版本。

我们产品的主要目标之一是继续努力符合SQL标准,但不牺牲速度或可靠性。如果这大大提高了MySQL服务器对我们大部分用户群的可用性,我们不怕为SQL或支持非SQL功能添加扩展。

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

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

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

MySQL支持ODBC级别0到3.51。

MySQL支持使用NDBCLUSTER存储引擎的高可用性数据库聚类。

我们实现了支持大多数W3C XPath标准的XML功能。

MySQL支持RFC 7159定义的基于ECMAScript标准(ECMA-262)的原生JSON数据类型。。MySQL还实现了SQL: 2016标准预发布草案指定的SQL/JSON函数的子集。

选择SQL模式

MySQL服务器可以在不同的SQL模式下运行,并且可以针对不同的客户端不同地应用这些模式,具体取决于sql_mode系统变量的值。DBA可以设置全局SQL模式来配合站点服务器的运行需求,每个应用程序可以根据自己的需求设置其会话SQL模式。

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

在ANSI模式下运行MySQL

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

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

要在运行时达到相同的效果,请执行以下两条语句:

SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE;
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选项也设置事务隔离性级别。


http://www.kler.cn/a/463901.html

相关文章:

  • Flutter中的网络请求图片存储为缓存,与定制删除本地缓存
  • 网关的主要作用
  • ubuntu常用快捷键和变量记录
  • 大模型 LangChain 开发框架:Runable 与 LCEL 初探
  • 虚拟机中的时统卡功能和性能调优
  • 【MATLAB第111期】基于MATLAB的sobol全局敏感性分析方法二阶指数计算
  • 【ubuntu】安装OpenSSH服务器
  • 攻防世界web第六题upload1
  • 如何使用交叉编译器调试C语言程序在安卓设备中运行
  • 计算机网络原理(谢希仁第八版)第3章课后习题答案
  • vscode ssh远程连接已配置好仍然不能自动登录问题解决
  • java的bio、nio、aio 以及操作系统的select、poll、epoll
  • 【开源免费】基于SpringBoot+Vue.JS校园社团信息管理系统(JAVA毕业设计)
  • 解决表格数据量大时ie浏览器卡顿
  • Python中PDF转Word的技术
  • web课程设计--酷鲨商城-springboot和vue
  • Solon 加入 GitCode:助力国产 Java 应用开发新飞跃
  • OpenGL入门最后一章观察矩阵(照相机)
  • 【2024年-6月-14日-开源社区openEuler实践记录】探索 test - tools:高效测试的开源宝库
  • 电子电器架构 --- 自动驾驶技术中的LiDAR
  • windows编译llama.cpp GPU版本
  • Java Web开发基础——Java Web项目中的MVC设计模式
  • Leetcode打卡:二叉树中的链表
  • C++进阶重点知识(一)|智能指针|右值|lambda|STL|正则表达式
  • 《深入浅出HTTPS​​​​​​​​​​​​​​​​​》读书笔记(23):密钥协商算法(续)
  • ChatGLM2-6B模型推理流程和模型架构详解