SQL(Structured Query Language,结构化查询语言)是MySQL服务器能够听懂的语言,是我们用来告诉MySQL服务器如何完成各种数据管理操作的手段。因此,要想有效地与MySQL服务器交流,就必须熟练掌握SQL语言。当你使用某个程序(如mysql客户工具)的时候,它在本质上只是一种能够让你把想要执行的SQL语句发送到服务器去的工具而已。如果你使用某种具备MySQL编程接口(如Perl DBI模块或PHP PDO扩展)的语言编写程序,你将能够通过发出SQL语句去与服务器进行交流。
MySQL服务器有一个名为sql_mode的系统变量可以让你调控其SQL模式,SQL模式对SQL语句的执行情况有多方面的影响。对这个变量可以作出全局性的设置,而各个客户可以通过改变这个模式来影响它们自己对MySQL服务器的连接。这意味着任何一个客户都可以在不影响其他客户的前提下改变MySQL服务器对自己的反应。
受SQL模式影响的行为包括在数据录入阶段如何处理非法数据、如何引用各种标识符,等等。下面的列表描述了几种可能的SQL模式设置值。
STRICT_ALL_TABLES和STRICT_TRANS_TABLES将启用严格模式。在严格模式下,MySQL服务器在接受"坏"数据值方面将更加严格。(具体地说,它将拒绝"坏"数据值而不是把它们转换为最接近的合法值。)
TRADITIONAL是另一种复合模式。它类似于严格模式,但启用了其他几种引入额外限制条件的模式以进行更加严格的数据检查。TRADITIONAL模式将导致MySQL服务器在处理"坏"数据值时更接近于传统的SQL服务器。
ANSI_QUOTES告诉MySQL服务器把双引号识别为一个标识符引用字符。
PIPES_AS_CONCAT将导致"||"字符串被视为一个标准的SQL字符串合并操作符,而不是"OR"操作符的一个同义词。
ANSI是一种复合模式。它将同时启用ANSI_QUOTES、PIPES_AS_CONCAT和另外几种模式值,其结果是让MySQL服务器的行为比它的默认运行状态更接近于标准的SQL。
在设置SQL模式时,需要给出一个由单个模式值或多个以逗号分隔的模式值构成的值;或者,给出一个空字符串以清除该值。模式值不区分字母的大小写。
如果想在启动MySQL服务器的时候设置SQL模式,可以在mysqld命令行上或是在某个选项文件里使用sql_mode选项。在命令行上,可以使用一个如下所示的设置项:
--sql-mode="TRADITIONAL"
--sql-mode="ANSI_QUOTES,PIPES_AS_CONCAT"
如果想在运行时改变SQL模式,可以使用一条SET语句来设置sql_mode系统变量。
任何一个客户都可以给它自己设置一个本次会话专用的SQL模式:
SET sql_mode = 'TRADITIONAL';
如果需要对SQL模式作全局性设置,需要加上GLOBAL关键字:
SET GLOBAL sql_mode = 'TRADITIONAL';
设置全局变量需要具备SUPER管理权限,新设置值将成为此后连接的所有客户的默认SQL模式。
如果想知道会话级或全局级SQL模式的当前值,可以使用如下所示的语句:
SELECT @@SESSION.sql_mode;
SELECT @@GLOBAL.sql_mode;
上述语句的返回值是由当前启用的所有模式以逗号分隔而构成的一列值。如果当前没有启用任何模式,则返回一个空值。
本站为大家提供了MySQL for Windows 的所有软件,包括MySQL 数据库安装教程,欢迎各位有需要的赶快下载体验吧!
数据库类 / 25.02 MB
数据库类 / 25.02 MB
数据库类 / 70.81 MB
数据库类 / 283 KB
数据库类 / 37.87 MB
软件评论
请自觉遵守互联网相关政策法规,评论内容只代表网友观点,与本站立场无关!