当前位置: 首页 > 图文教程 > 数据库 > MYSQL > MYSQL教程:表达式操作符和数据类型转换

MYSQL
五种MySQL数据库可靠性方案的分析和比较
怎样在Mysql中直接储存图片
mysql的本地备份和双机相互备份脚本
详细讲解Linux环境下MySQL 5.1安装步骤
实例讲解在MySQL中如何导出整个数据库
讲解MySQL索引的概念及数据库索引的应用
教你在MySQL中快速复制表格作为测试数据
删除完全重复和部分关键字段重复的记录
MySQL各存储引擎的区别及其启动方法
MySQL在网络安全方面采取的主要措施
在MySQL中执行SQL语句时的几个注意点
MySQL改善数据装载操作效率的策略
设计高效合理的MySQL查询语句讲解
MySQL用户Root密码为弱口令的攻击
MySQL数据库接口的VC具体实现与应用
在MySQL数据库增加新用户权限简介
MySQL中文模糊检索问题的解决方法
MySQL的数据类型和建库策略详解
利用图形界面从SQL导入导出到MySQL
MySQL数据库应该如何对抗解密高手

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 82 ::
收藏到网摘: n/a

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 = 3
1+ 'abc' 会转换成1 + 0 = 1 由于abc不能转换成任何的值,所以默认为0

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

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