千家信息网

MySQL服务器的SQL模式是什么

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,本篇文章为大家展示了MySQL服务器的SQL模式是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。与其它数据库不同,MySQL 服务器可以在不同的 SQL
千家信息网最后更新 2025年01月20日MySQL服务器的SQL模式是什么

本篇文章为大家展示了MySQL服务器的SQL模式是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

与其它数据库不同,MySQL 服务器可以在不同的 SQL 模式下运行,并且可以针对不同的客户端以不同的方式应用这些模式,具体取决于 sql_mode 系统变量的值。

SQL 模式定义了 MySQL 数据库所支持的 SQL 语法和数据校验(数据验证检查),这样可以更容易的在不同环境下使用 MySQL。

在 MySQL 中,SQL 模式常用来解决下面几类问题:

通过设置 SQL Mode,可以完成不同严格程度的数据校验,有效地保障了数据的准确性。

通过设置 SQL Mode 为 ANSI 模式,可以保证大多数 SQL 符合标准的 SQL 语法,使不同数据库之间进行迁移时,不需要进行较大的修改。

在不同数据库之间进行数据迁移之前,设置 SQL Mode 可以使 MySQL 中的数据更方便地迁移到目标数据库中。

sql_mode 系统变量的常用值

下面列出了几种 SQL 模式常用的值。

TRICT_ ALL_TABLES 和 STRICT_ TRANS_TABLES

如果将 sql_mode 的值设置为 TRICT_ALL_TABLES 和 STRICT_TRANS_TABLES,那么 MySQL将启用"严格"模式。在严格模式下,MySQL 服务器会更加严格地对待接收到的不合格数据,它不会把这些不合格的数据转换为最为接近的有效值,而是会拒绝接收它们。

简单来说 MySQL 的严格模式就是 MySQL 自身对数据进行的严格校验,例如格式、长度和类型等。

TRADITIONAL

类似于严格模式,但是对于插入的不合格值会给出错误而不是警告。可以应用在事务表和非事务表,用于事务表时,只要出现错误就会立即回滚。

如果你使用的是非事务存储引擎,建议不要把 SQL Mode 值设置为 TRADITIONAL,因为出现错误前进行的操作不会回滚,这样会导致操作只进行了一部分。

ANSI_QUOTES

MySQL 服务器会把双引号识别为一个标识符引用字符,而不是字符串的引号字符。所以在启用 ANSI_QUOTES 时,不能用双引号来引用字符串。

PIPES_ AS_ CONCAT

会让 MySQL 服务器把||当成一个标准的 SQL 字符串连接运算符,而不会把它当成是 OR 运算符的同义词。

在 Oracle 等数据库中,||被视为字符串的连接操作符,所以在其它数据库中含有||操作符的 SQL 在 MySQL 中将无法执行,为了解决这个问题,MySQL 提供了这个值。

ANSI

会同时启用 ANSI_QUOTES、PIPES_ AS_CONCAT 和其它的几个模式值,使 MySQL 服务器的行为比它的默认运行状态更接近于标准 SQL。

如何设置sql_mode

在设置 SQL 模式时,需要指定一个由单个模式值或多个模式值(多个模式值用逗号分隔)构成的值,或者指定一个空字符串,用以清除该值。模式值不区分大小写。

如果想在启动服务器时设置 SQL 模式,那么可以在 mysqld 命令行,或者在某个选项文件里设置系统变量 sql_mode。可以使用下面语句:

sql_mode= "TRADITIONAL "sql_mode= "ANSI_ QUOTES, PIPES_ AS_ CONCAT"

如果只是想在运行时更改 SQL 模式,那么可以使用 SET 语句来设置 sql_mode 系统变量。

SET sql_mode = ' TRADITIONAL' ;

如果想设置全局性的 SQL 模式,则需要加上 GLOBAL 关键字:

SET GLOBAL sql_mode = ' TRADITIONAL';

设置全局变量需要具备 SUPER 管理权限。新设置的全局变量值将成为此后连入客户端的默认 SQL 模式。

如果想获取当前会话或全局的 SQL 模式值,则可以使用如下语句:

SELECT @@SESSION.sql_mode;SELECT @@GLOBAL. sql_mode;

其返回值由当前启用的所有模式构成,两个模式之间以逗号隔开。如果当前没有启用任何模式,则返回一个空值。

上述内容就是MySQL服务器的SQL模式是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

模式 数据 服务器 服务 不同 数据库 字符 变量 事务 全局 字符串 系统 之间 引号 标准 语句 错误 运行 有效 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中国科技论文引文数据库 cnki数据库的特色功能 通企业网络安全应急响应二级资质 高德地图 地图服务器 数据库外码是什么意思 杨浦区推广软件开发供应商价位 停车场数据库是什么意思 工程项目另外软件开发费 教育学应该看什么外文数据库 长垣网络安全宣传片 软件开发编码分工 旋律互联网科技 中兴上海网络技术工程师 教育培训软件开发龙头企业 戴尔服务器管理 波兰关于网络安全的立场 计算机三级网络技术视频资源 武汉靠谱的软件开发方案 网络安全的部署方向 深圳蓝天网络技术有限公司 怀旧服最新服务器开门情况 癌基因表达数据库 网络安全教育进校园日 网络安全法大众传播媒介 重庆维普期刊数据库论文查询 公安局网络安全管理待遇 r星官网服务器查询 服务器的管理说法错误 两类常见的软件开发模型 网络安全的五禁止是什么
0