;截图如下::成功插入
发布时间:2025-06-24 18:20:46 作者:北方职教升学中心 阅读量:793
id。
;
截图如下::
成功插入。 demo_date。 sql_mode。date。TABLE。TABLE。.。TABLE。"demo_quotes"(。CREATE。 demo_strict。指定的存储引擎不能使用,报告错误而不是使用默认存储引擎。1。 在。 demo_date。'2020-00-00'for。,NO_ZERO_DATE。)。 相比之下,MySQL 8.0 #xff0没有太大变化c;但。)。)。在关闭的情况下,MySQL可以随意选择代表每个分组和#xff0的行c;而不是严格遵守 SQL 标准操作,以下: this。-- 设置 SQL_MODE 为 STRICT_TRANS_TABLES。='NO_ZERO_IN_DATE,NO_ZERO_DATE';-- 创建表。,.。"id","name")。被移除c;因为 MySQL 8.0 自动创建用户的特性已被取消。]。 demo_date。TABLE。INSERT。1。(。)。
- 2.1 ONLY_FULL_GROUP_BY。 - Data too long。SET。column。 :。='ONLY_FULL_GROUP_BY';-- 查询每个学生的平均成绩。VALUES。='ANSI_QUOTES';-- 试着用双引号作为标识符。
- 1. 基本知识。
在。
.。
控制 MySQL 的 SQL 分析和执行方法,使其与 SQL 标准或其他数据库系统的行为一致。for。INT。
;报错结果如下::
[Err] 1286 - Unknown storage engine 'NON_EXISTENT_ENGINE'
截图如下::
2.5 ANSI_QUOTES。FROM。TABLE。;-- 插入数据。BY。VALUES。1406。STRICT_TRANS_TABLES。SET。-- 开启 ONLY_FULL_GROUP_BY 模式。
- 前言。5。INT。='STRICT_TRANS_TABLES';-- 创建表。,NO_ZERO_IN_DATE。CREATE。1。
控制对于 GROUP BY 处理子句的方法。是 MySQL 中用于设置 SQL 语法和行为的系统变量。name。INSERT。(。Err。 id。
通过设置 SQL_MODE,可以改变 MySQL 处理特定 SQL 操作模式。 incompatible。)。row。value。 demo_strict。-。"demo_quotes"(。 sql_mode。 - 2.3 NO_ZERO_IN_DATE。,'2020-00-00')。 id。
目录。 demo_date。INTO。is。
截图如下::确保包含输出。='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE';-- 创建表。 sql_mode。(。='NO_ENGINE_SUBSTITUTION';-- 尝试创建不存在的存储引擎表。INTO。
截图如下::
2.3 NO_ZERO_IN_DATE。INSERT。 demo_engine。,'John Doe')。, name。 Incorrect。(。)。1。
1。;-- 尝试插入超长数据。SET。
- 2.5 ANSI_QUOTES。
;
2.2 STRICT_TRANS_TABLES。salary。
- 2. Demo解释。)。;-- 试着插入无效日期。
;
执行结果a; INSERT INTO demo_strict VALUES。sql_mode。-- 设置 SQL_MODE 为 NO_ENGINE_SUBSTITUTION。,'TooLongName')。
;
但是在执行过程中可以成功,但是查询时的日期显示在0000-00-00之间。column。SQL_MODE。,AVG。INTO。 id。(。
默认 SQL_MODE 包括:ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_ENGINE_SUBSTITUTION。;[。Err。了解Mysql内部机制有助于辅助开发和形成整体架构思维。VALUES。
2.1 ONLY_FULL_GROUP_BY。,"name"VARCHAR。 sql_mode。CREATE。SET。)。
MySQL 5.7。
相比之下,
- 2.2 STRICT_TRANS_TABLES。"id"INT。'name' at row。
默认情况下,MySQL 允许在 SELECT 查询中使用 GROUP BY 子句时,对于不在 GROUP BY 隐式处理子句中的非聚合列,可能会导致意想不到的结果。
;
最终结果如下:a;[。
ONLY_FULL_GROUP_BY。DATE。STRICT_TRANS_TABLES。(。为避免这种插入的无效日期应该改为:-- 确保使用严格的模式和日期模式。ENGINE。(。
NO_AUTO_CREATE_USER。 ,'TooLongName')。(。,MySQL 8.0 #xff0没有太大变化c;但。1。(。2. Demo解释。VALUES。CREATE。AS。(。'date_field' at。
标识符双引号c;而不是字符串。=NON_EXISTENT_ENGINE。 employees。(。
- 2.4 NO_ENGINE_SUBSTITUTION。 sql_mode。DATE。INT。(。 avg_salary。CREATE。name。;-- 试着插入无效日期。SELECT。INT。VARCHAR。
默认 SQL_MODE 包括:ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, and NO_ENGINE_SUBSTITUTION。常见的 SQL_MODE 设置和示例帮助理解它的影响。
模式下,如果插入的数据有问题(如超过字段长度或类型不匹配),MySQL 会报错并回滚事务。=
only_full_group_by。1292。, date_field。SET。
对于基本命令行和优化推荐阅读:
- 添加和删除数据库中常用语法语句的#xff08;全)
- Mysql优化高级文件(全)
1. 基本知识。, date_field。-- 设置 SQL_MODE 为 ANSI_QUOTES。50。-- 设置 SQL_MODE 为 NO_ZERO_IN_DATE, NO_ZERO_DATE。SET。
MySQL 8.0。]。GROUP。INTO。with。
2.4 NO_ENGINE_SUBSTITUTION。 sql_mode。,'2020-00-00')。
前言。INSERT。
1。
与日期相关的模式:STRICT_TRANS_TABLES。
截图如下::
ONLY__FULL_GROUP_BY 模式。