之的用法和意义归纳总结(之的十种用法)

lxf2023-12-21 01:10:02

一、Mysql SQL模式介绍

一般来说,MySQL服务器可以在不同的SQL模式下工作,并且可以针对不同的客户端以不同的方式应用这些模式。通过这种方式,应用程序可以定制服务器操作来满足自己的需求。这种模式定义了MySQL应该支持的SQL语法,以及应该对数据执行哪些验证检查。这样,MySQL可以更容易地与许多不同环境中的其他数据库服务器一起使用。您可以使用"-SQL-mode =" modes " "选项通过启动mysqld来设置默认的SQL模式。从MySQL 4.1开始,您还可以使用set[session | global]sql_mode = ' modes '语句,通过在启动后设置SQL _ mode变量来更改其模式。

通常,mysql安装在linux下后,其默认的sql-mode值是空。在这种情况下,mysql执行松散的检查。例如,可以在日期字段中插入一个类似' 0000-00-00 00: 00 '的值,如果要插入的字段长度超过了列定义的长度,mysql不会终止操作,而是会自动截断后面。

mysql> create table t5 (c1 char(3));mysql> insert into t5 values('abcd');mysql> select * from t5;+------+| c1 |+------+| abc |+------+1 row in set (0.00 sec)

我们发现插入的字符被自动截断,但是如果我们打算在长度超过限制时报告错误,那么我们可以将sql_mode设置为STRICT_TRANS_TABLES,如下所示:

mysql> set session sql_mode='STRICT_TRANS_TABLES'

如果我们再次进行同样的操作,mysql会告诉我们插入的值太长,操作终止,如下所示:

mysql> insert into t5 values('abcd');ERROR 1406 (22001): Data too long for column 'c1' at row 1

常用sql_mode值:

Sql_mode值 形容 美国国家标准学会 更改语法和行为,使其更符合标准SQL。 严格_转换_表格 如果给定值不能插入到事务表中,则放弃该语句。对于非事务性表,如果值出现在单行语句或多行语句的第一行,则该语句将被丢弃。本节稍后将给出更详细的描述。 传统的 使MySQL表现得像一个“传统的”SQL数据库系统。对这种模式的简单描述是,当向列中插入不正确的值时,“给出错误而不是警告”。注意:一发现错误就放弃插入/更新。如果使用非事务性存储引擎,这种方法不是您想要的,因为在错误发生之前所做的数据更改不会“滚动”,结果是更新“只是部分进行”。

注意:如果sql_mode的值设置为后两个值(即严格模式),mysql在列中插入或更新不正确的值时会出错,并放弃插入/更新操作。在我们的一般应用中,建议使用这两种模式,而不是默认的空或ANSI模式。但是,应该注意,如果数据库以严格模式运行,并且您的存储引擎不支持事务,则存在数据不一致的风险。例如,在一组sql中有两个dml语句。如果后一个有问题,但是前一个已经操作成功,mysql无法回滚前一个操作。所以设置sql_mode需要应用人员权衡各种得失,才能得到一个合适的选择。

Sql_mode的值有很多,这里就不赘述了。请参考相关手册。

第二,SQL模式和可移植性

如果需要在mysql和其他异构数据库之间进行数据迁移,sql_mode的以下组合设置可以达到相应的效果:

数据库 Sql_mode值 DB2 PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、NO_TABLE_OPTIONS、NO_FIELD_OPTIONS MAXDB 管道_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、NO_TABLE_OPTIONS、NO_FIELD_OPTIONS、NO_AUTO_CREATE_USER MSSQL PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、NO_TABLE_OPTIONS、NO_FIELD_OPTIONS 神谕 管道_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、NO_TABLE_OPTIONS、NO_FIELD_OPTIONS、NO_AUTO_CREATE_USER 一种数据库系统 PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、NO_TABLE_OPTIONS、NO_FIELD_OPTIONS

第三,SQL模式和数据验证

SQL模式还可以实现数据验证和传递的功能,比如

1。验证日期数据的有效性。
2。如果在插入或更新期间被零(或MOD(X,0))除,将会出现错误
3。启用NO _ BACKSLASH _ ESCAPES模式,反斜杠变成普通字符。

5。将||视为字符串串联运算符(+)(与concat()相同),而不是or。

adminjs.cn是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 Adminjs.cn还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 在Adminjs.cn中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!