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

MYSQL
MySQL 实用命令
Mysql 默认字符集设置方法(免安装版)
MySQL 数据库对服务器端光标的限制
MySQL UPDATE更新语句精解
Table ‘xxx’ is marked as crashed and should be repaired 错误解决方法参考
mysql 读写分离(基础篇)
mysql 读写分离(实战篇)
processlist命令 查看mysql 线程
MySQL 数据类型 大全
MySQL 密码设置
MYSQL代码 定期备份Mysql数据库
汇总整理MYSQL相关操作命令
MySQL 数据库两台主机同步实战(linux)
MSSQL 添加字段说明
MySQL 查询某个字段不重复的所有记录
mysql 设置默认的时间值
mysqlreport显示Com_中change_db占用比例高的问题的解决方法
解决mysql不能插入中文Incorrect string value
mysql从执行.sql文件时处理\n换行的问题
mysql 主从服务器的简单配置

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 64 ::
收藏到网摘: 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会提示警告信息,我们可捕获该信息以进行相应的处理。