探索MySQL中的SQL_MODE数据模式

在MySQL中,SQL_MODE是一个用于控制数据库服务器行为的配置选项。它定义了MySQL在执行查询时应该遵循的规则和限制。通过设置不同的SQL_MODE值,我们可以改变MySQL的行为,以满足不同的需求。本文将对MySQL中的SQL_MODE进行详细解析,帮助大家更好地理解和使用这个功能。

  1. 默认模式

当我们安装MySQL时,会有一个默认的SQL_MODE设置。这个设置可能因操作系统和MySQL版本的不同而有所差异。默认模式下,MySQL会尽量遵循ANSI SQL标准,同时也会启用一些非标准的扩展功能。

  1. 严格模式

严格模式(Strict Mode)是MySQL中一种常用的模式。在这个模式下,MySQL会对输入的数据进行严格的检查,如果发现不符合规范的数据,就会拒绝插入或更新。这样可以帮助我们避免因为数据类型不匹配、字符集问题等原因导致的错误。要启用严格模式,可以设置SQL_MODE为:

        
SET SQL_MODE = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER';   
  1. 宽松模式

与严格模式相反的是宽松模式(Loose Mode)。在这个模式下,MySQL会对输入的数据进行宽松的检查,即使数据不符合规范,也会尽量进行插入或更新。这样可以提高数据的兼容性,但可能会导致一些潜在的问题。要启用宽松模式,可以设置SQL_MODE为:

SET SQL_MODE = 'NO_ENGINE_SUBSTITUTION';

4.所有模式梳理

  1. ALLOW_INVALID_DATES:允许插入无效的日期值,例如’0000-00-00’。
  2. ANSI_QUOTES:不能用双引号来引用字符串,因为它会被解释为识别符。
  3. ERROR_FOR_DIVISION_BY_ZERO:除数为0时抛出错误。
  4. HIGH_NOT_PRECEDENCE:将NOT运算符的优先级提高。
  5. IGNORE_SPACE:忽略mysql系统函数与之后的括号之间的空格。
  6. NO_AUTO_VALUE_ON_ZERO:禁止将0作为自动递增字段的值。
  7. NO_AUTO_CREATE_USER:禁止在连接时自动创建用户。
  8. NO_BACKSLASH_ESCAPES:禁止反斜杠转义字符。
  9. NO_ENGINE_SUBSTITUTION:禁止存储引擎替换。
  10. NO_DIR_IN_CREATE:禁止在创建表时使用DATA DIRECTORY选项。
  11. NO_FIELD_OPTIONS:禁止使用FIELD子句中的SQL模式。
  12. NO_KEY_OPTIONS:禁止使用KEY子句中的SQL模式。
  13. NO_UNSIGNED_SUBTRACTION:禁止无符号整数相减导致的溢出。
  14. NO_TABLE_OPTIONS:禁止使用TABLE子句中的SQL模式。
  15. ONLY_FULL_GROUP_BY:只允许在SELECT语句中使用GROUP BY子句中的列和聚合函数。
  16. NO_ZERO_DATE:禁止使用0作为日期,例如’0000-00-00’。
  17. NO_ZERO_IN_DATE:禁止在日期中使用0,例如’0000-00-00’。
  18. PAD_CHAR_TO_FULL_LENGTH:将CHAR字段存储为固定长度。
  19. PIPES_AS_CONCAT:将“||”作为字符串的链接字符操作,而不是作为或运算符,与“concat”相类似。
  20. REAL_AS_FLOAT:将REAL类型视为FLOAT类型。
  21. STRICT_ALL_TABLES:严格模式,对所操作数据进行严格校验,如果不符合校验规则,报error错误。
  22. STRICT_TRANS_TABLES:严格模式,对所操作数据进行严格校验,如果不符合校验规则,报error错误。

总的来说,SQL_MODE在MySQL中扮演着重要的角色,通过灵活设置SQL_MODE可以有效地控制数据库系统的行为,提高数据处理的准确性和可靠性。希望通过本文的介绍,读者能够更好地理解MySQL中的SQL_MODE数据模式,并在实际应用中灵活运用,提升数据库系统的性能和可维护性。

如有任何疑问或想要深入探讨SQL_MODE相关内容,欢迎在下方留言,我们一起交流讨论

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/765895.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pyecharts 模块(创建简单的折线图和柱状图)

1.pyecharts 是个数据可视化,产生图标; 2.构建一个基础的折线图: from pyecharts.charts import Line lineLine() # 创建一个折线图对象 line.add_xaxis(["数据库","计算机组成原理","算法设计"]) # 给折线图对象添加x轴…

MATLAB:函数与数值积分

一、数学函数图像的绘制 clc,clear fh (x)2*exp(-x).*sin(x); Xrange [0,8]; gx (x)3*exp(-x)*0.8.*sin(x); fplot(fh,Xrange,r-*,LineWidth,1.5) hold on grid on fplot(gx,Xrange,b-o,LineWidth,1.5) axis([-0.5,8.5,-0.1,0.85]) legend(fh (x)2*exp(-x).*sin(x),gx (x…

有了 unique_ptr 和 shared_ptr,要weak_ptr 有什么用?【C++】

有了 unique_ptr 和 shared_ptr,要weak_ptr 有什么用? 说明使用场景防止循环引用临时访问共享资源 说明 weak_ptr是C中智能指针的一种,与shared_ptr配合使用,weak_ptr不对对象的生命周期进行管理,即它持有对象的引用…

Docker之docker compose!!!!

一、概述 是 Docker 官方提供的一款开源工具,主要用于简化在单个主机上定义和运行多容器 Docker 应用的过程。它的核心作用是容器编排,使得开发者能够在一个统一的环境中以声明式的方式管理多容器应用的服务及其依赖关系。 也就是说Docker Compose是一个…

高并发抢票时,防止机器人刷票的令牌大闸,减轻服务器的压力(防刷+限流)

1. 为什么要引入令牌大闸? 场景1:分布式锁和限流都不能解决机器人刷票的问题,1000个请求抢票,900个限流快速失败,另外100个有可能是同一个在刷库。 引入令牌,令牌中记录用户信息,会进行校验用户…

基于ssm的农家乐管理系统+数据库+论文+免费远程调试

开发环境 项目编号:JavaMySQL ssm231农家乐管理系统-民宿-餐饮-房间预定-vue 开发语言:Java 开发工具:IDEA /Eclipse 数据库:MYSQL5.7 应用服务:Tomcat7/Tomcat8 使用框架:ssmvue 项目介绍: ssm的农家乐管理系统。Javaee项目。采用M(model)V…

[思考记录]技术欠账

最近对某开发项目做回顾梳理,除了进一步思考整理相关概念和问题外,一个重要的任务就是清理“技术欠账”。 这个“技术欠账”是指在这个项目的初期,会有意无意偏向快速实现,想先做出来、用起来,进而在实现过程中做出…

jenkins构建完成后部署到本机,无法读取容器外文件夹

项目背景: Dockerjenkins 构建完成后,要把打包的dist文件夹内容移动到网站目录 /www/wwwroot/xxxxxx 文件夹下;但是获取不到jenkins容器外的文件夹。 解决办法: 在容器中,添加挂载/映射本机目录,把网站…

C++简单实现哈希查找

C 简单实现哈希查找 1. 哈希冲突 哈希表中可能会出现哈希冲突,即多个数据项映射到相同的桶。 常见的冲突解决方法包括链地址法(Chaining)和线性探测法(Linear Probing)。 使用链地址法时,每个桶维护一个链…

Oracle里表、索引、列的统计信息

目录 一、表的统计信息 二、索引的统计信息 1、层级(level) 2、聚簇因子的含义及重要性 3、列的统计信息 3.1直方图(histogram) 1)直方图含义 2)直方图类型 一、表的统计信息 表的统计信息用于描述表…

【保姆级教程】YOLOv8目标检测:训练自己的数据集

一、YOLOV8环境准备 1.1 下载安装最新的YOLOv8代码 仓库地址: https://github.com/ultralytics/ultralytics1.2 配置环境 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple二、数据准备 2.1 安装labelme标注软件 pip install label…

React系列 之 React进阶 含源码解读 (一)事件合成、state原理

资料来源:掘金课程 https://juejin.cn/book/6945998773818490884?enter_fromcourse_center&utm_sourcecourse_center 记录一些笔记 事件合成 React的事件其实是React重新实现的一套事件系统。目标是统一管理事件,提供一种跨浏览器一致性的事件处…

langchain4j DefaultAiServices源码解析

版本 0.28.0 源码 使用langchain4j,可以通过AiServices来封装聊天模型API,实现会话记忆,工具调用,搜索增强,内容审查等功能,并提供简单灵活的用户接口 DefaultAiServices是其默认实现类型,通…

5G智能网关助力工业铸造设备监测升级

随着物联网技术的迅猛发展和工业4.0浪潮的推进,传统工业正面临着严峻的转型升级压力。在这一背景下,铸造行业——这一典型的传统重工业领域,也必须积极探索借助5G、物联网、边缘计算等技术提升生产经营效率的新路径。 本文就基于佰马合作伙伴…

【技巧】ChatGPT Prompt 提示语大全

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 主要来自:https://github.com/f/awesome-chatgpt-prompts ChatGPT SEO提示 Contributed by: StoryChief AI Reference: 7 Powerful ChatGPT Prompts to Create SEO Content Faster 供稿人:…

MyBatis Plus笔记

1、删除 物理删除:从硬盘上直接删除掉 。好处:数据条数少了,不好的地方在于可能会影响到基于这条数据产生的记录 逻辑删除:假删除 两个区别: 删除时 之前:DELETE from sys_user …

链表oj测试题(上)

链表的申明: struct ListNode {int val;struct ListNode* next; }; 1.题1 删除指定元素 例如:链表1 2 6 3 4 5 6,然后选择删除元素6,返回的链表为1 2 3 4 5 。 代码演示: typedef struct ListNode ListNode;List…

Spark与flink计算引擎工作原理

Spark是大批量分布式计算引擎框架,scale语言开发的,核心技术是弹性分布式数据集(RDD)可以快速在内存中对数据集进行多次迭代,支持复杂的数据挖掘算法及图形计算算法,spark与Hadoop区别主要是spark多个作业之…

什么是行业垂直类媒体?有哪些?怎么邀约

传媒如春雨,润物细无声,大家好,我是51媒体胡老师。 行业垂直类媒体是聚焦于特定行业或领域的媒体平台。 行业垂直类媒体不同于主流媒体,它们专注于提供与某个特定领域相关的深入内容和服务,例如商业新闻、旅游、数字…

能拍英语的搜题软件?九个免费好用的大学生搜题工具 #经验分享#知识分享#其他

积极参加社团活动和实践项目,可以帮助大学生拓宽人脉圈和锻炼实际操作能力。 1.粉鹿搜题 这是一个公众号 搜题拥有非常强大的题库,包含IT认证、建筑工程:、会计资格、教师资格、研究生、公务员等类型的题目。 下方附上一些测试的试题及答案 1、BPR基…