留学生们在学习MYSQL数据库或者完成
MYSQL数据库作业 的时候,大多都手起刀落的从creat table到select,其中有一个MYSQL的底层基础知识点MYSQL SQL_MODE虽然用到的地方不多,但是在深入学习MYSQL数据的时候仍需要去了解,今天讲解一下MYSQL数据的SQL_MODE。
打开SQL命令编辑器,执行以下SQL:
show variables like 'sql_mode';
或者执行:
select @@sql_mode;
将会看到以下执行结果:
STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
*看到的结果根据不同的配置有所区别。
什么时SQL_MODE,顾名思义,即SQL_MODE为数据库SQL的工作模式(可以理解为设置参数),
MYSQL常用的SQL_MODE模式有 :
STRICT_TRANS_TABLES: innodb在事务处理中的严格模式
STRICT_ALL_TABLES: 与 STRICT_TRANS_TABLES 类似
ERROR_FOR_DIVISION_BY_ZERO: 是否支持除数为0
ANSI_QUOTES: 影响数据库对双引号的判断
IGNORE_SPACE: SQL命令中空格的检查
ONLY_FULL_GROUP_BY: 如果启用此模式,则在 GROUP BY 语句中必须包含所有非聚合的列,否则 MySQL 会报错。
NO_ZERO_IN_DATE: 严格模式下的日期数值不能为"0000-00-00"
NO_ZERO_DATE: 日期数值不能为零,遇到数值为0的时候MYSQL会返回错误(非警告)。
ONLY_FULL_GROUP_BY: 影响group by聚合查询的SQL格式
NO_AUTO_VALUE_ON_ZERO: 设置后影响自增(auto increasement)是否能插入"0"
NO_AUTO_CREATE_USER: GRANT创建用户相关
NO_ENGINE_SUBSTITUTION: 检查MYSQL数据库引擎。
更多的SQL_MODE模式可以查阅MYSQL官方说明文档,不过需要注意的是:
不同的MYSQL版本所支持的SQL_MODE模式是有可能有所区别的 。
不同版本的区别可以参考:
不同MYSQL版本和字符集的问题
如何设置SQL_MODE
在MSYQL的配置文件中设置:
[mysqld]
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
#根据实际需要进行设置
大家在完成数据库作业的时候,通常只会简单的增删查改是很难完成的,在学习的时候需要更加全面的学习,更多的MYSQL SQL_MODE问题可以联系
全A学霸™ 。
用户评论 char(m)表示的是最大长度时间M个字符,存储空间要求M*W个字节*(W代表的是某个字符集编码一个字符最多需要的字节,不同的字符集W值有所不同)
评论日期: 2023-04-15 20:53:20 讲的很好,把MySQL大部分知识都讲了个遍。
评论日期: 2023-04-14 18:50:56 用truncate把这个表删除后,再次select查看还能看到之前的数据啊。。。怎么才能删干净
评论日期: 2023-04-14 00:04:51 idx_age_name_addr('age','name','address'),select * from table_01 where age= 20 and name like '张%' and address like '广东省%' 这条sql语句中,从执行计划可以看到key_len中这三个索引都利用上了的。但是like应该是和范围查询>、< 一样呀,如果name有张一、张二、张三等情况下,address在name值不同情况下,address字段是无序的(因为只有name值相同时,addresųᯬ 唯瓸셌Ũ 墟藙럺鬱婖ﺂ Item alue + S +o+n ॰A 㗒瓺# Ȗ +
评论日期: 2023-04-13 01:11:06 不得不说这个是我看过MySQL最细致的教程
评论日期: 2023-04-12 00:33:39 学完基础的大家要去看mysql的游标,触发器和异常处理。
评论日期: 2023-04-09 10:12:32 我把相关的md笔记放在github了,添加了一些自己学习的补充,精简了原讲义的一些冗余,大家有需要自取就好,欢迎issue交流讨论
评论日期: 2023-04-08 23:43:15 只是做个管理系统的毕业设计,数据库要看到什么程度啊
评论日期: 2023-04-08 04:08:13 四种隔离级别都解决了脏写的问题,能具体说说怎么解决的吗?(我在chatGPT上问了,说是在serializable级别才解决了脏写的问题)
评论日期: 2023-04-07 01:39:54 学了数据库就可以学基础框架乐就可以开始着手试着跟项目了
评论日期: 2023-04-06 10:06:47