MYSQL教程:表达式操作符和数据类型转换

来源:asp之家 时间:2009-02-27 15:51:00 

 

1.表达式操作符


Table 1 算术操作符

操作符 语法 含义+ a + b 相加 - a - b 相减 - - a 求负 * a * b 乘法 / a / b 除法 % a % b 求余

Table 2. 逻辑操作符

操作符 语法 含义AND 或 && a AND b 或 a && b 逻辑与,若两个操作数同时为真,则为真 OR 或 || a OR b 或 a || b 逻辑或,只要有一个操作数为真,则为真 XOR a XOR b 逻辑异或,若有且仅有一个操作数为真,则为真 NOT 或 ! NOT a 或 !a 逻辑非,若操作数为假,则为真

Table 3. 位操作符

操作符 语法 含义& a & b 按位与,若操作数同位同为1,则该位为1 | a | b 按位或,若操作数同位有一位为1,则该位为1 ^ a ^ b 按拉异或,若操作数同一位分别为1和0,则该位为1 << a << b 把a中的各个位左移b个位置 >> a >> b 把a中的各个位右移b个位置

Table 4. 比较操作符

操作符 语法 含义= a = b 若两个操作数相等,则为真 <=> a <=> b 若两个操作数相等,则为真,可用于NULL值比较 != 或 <> a != b 或 a <> b 若两个操用数不等,则为真 < a < b 若a小于b,则为真 <= a <= b 若a小于或等于b,则为真 > a > b 若a大于b,则为真 >= a > b 若a大于或等于b,则为真 IN a IN (b1,b2,...) 若a等于b1,b2,...中的某一个,则为真 BETWEEN a BETWEEN b AND c 若a在b和c之间(包括b和c),则为真 NOT BETWEEN a NOT BETWEEN b AND c 若a不在b和c之间(包括b和c),则为真 LIKE a LIKE b SQL模式匹配,若a匹配b,则为真 NOT LIKE a NOT LIKE b SQL模式匹配,若a不匹配b,则为真 REGEXP a REGEXP b 正则表达式匹配,若a匹配b,则为真 NOT REGEXP a NOT REGEXP b 正则表达式匹配,若a不匹配b,则为真 IS NULL a IS NULL 若a为NULL,则为真 IS NOT NULL a IS NOT NULL 若a不为NULL,则为真

    LIKE模式匹配中的“%”匹配任意个字符,“_”匹配一个字符。匹配不区分大小写字符。

Table 5. 操作符优先级(由高至低排列)

操作符BINARY,COLLATE NOT、! ^ XOR -(一元求负操作符)、~(一元取反操作符) *、/、% +、- <<、>> & | <、<=、=、<=>、!=、<>、>=、>、IN、IS、LIKE、REGEXP、RLIKE BETWEEN、CASE、WHEN、THEN、ELSE AND、&& OR、|| :=

2. 类型转换


在MySQL的表达式中,如果某个数据值的类型与上下文所要求的类型不相符,MySQL则会根据将要进行的操作自动地对数据值进行类型转换。如:

1 + '2'      会转换成1 + 2 = 31+ 'abc'     会转换成1 + 0 = 1 由于abc不能转换成任何的值,所以默认为0

MySQL会根据表达式上下文的要求,把字符串和数值自动转换为日期和时间值

对于超范围或非法的值,MySQL也会进行转换,但转换出来的结果是错误的。出现该情况时,MySQL会提示警告信息,我们可捕获该信息以进行相应的处理。


标签:表达式,操作符,数据,mysql
0
投稿

猜你喜欢

  • AJAX打造博客无刷新搜索

    2007-08-23 08:48:00
  • ASP编写完整的一个IP所在地搜索类

    2007-10-18 10:43:00
  • SQL Server中单引号的两种处理技巧

    2008-05-23 13:30:00
  • 轻松掌握SQL Server存储过程的命名标准

    2009-01-15 13:14:00
  • 如何把数据从SQL Server导出到Access或Excel中去?

    2009-11-02 20:26:00
  • HTTP Headers 傻瓜教程[译]

    2010-01-25 12:48:00
  • Oracle数据库的空间管理技巧

    2010-07-26 13:16:00
  • asp自动采集程序

    2009-02-04 10:11:00
  • asp是的日期转换为星座的函数

    2011-02-26 11:11:00
  • Monster for Chrome

    2010-05-04 16:30:00
  • 轻松解决Mysql“信息包过大”的处理方法

    2008-06-07 16:50:00
  • 看ASP程序源码的方法及工具

    2009-01-21 19:58:00
  • 用户体验 保守的使用下拉菜单

    2008-01-15 20:00:00
  • CSS Border使用小分享

    2010-08-12 14:34:00
  • IE8 在元素尺寸大于(2048px/4096px)时 alpha滤镜渲染失败

    2010-01-05 16:39:00
  • javascript面向对象技术基础(二)

    2010-02-07 13:09:00
  • accept-charset与Header P3P

    2009-04-01 18:43:00
  • asp如何让服务器延时执行更改后的数据?

    2010-05-13 16:35:00
  • ASP.NET教程第一讲 ASP.NET简介

    2007-08-07 11:50:00
  • 搜索结果页(SERP):前言

    2009-07-22 20:56:00
  • asp之家 网络编程 m.aspxhome.com