首页 >数据库 >mysql教程 >深入理解MySQL进阶漂流记(二)

深入理解MySQL进阶漂流记(二)

黄舟
黄舟原创
2017-03-08 13:52:121451浏览

运算符

算数运算符

MySQL支持大多数通用的、允许我们执行计算的的算数运算符。
“+(加法)、-(减法)、*(乘法)、/(除法,返回商)、%(除法,返回余数)”,如下例:

select 1+2;//加法运算,结果为3 
select 2-1;//减法运算,结果为1 
select 3*2;//乘法运算,结果为6 
select 6/2;//除法运算,结果为3 
select 25%7;//除法运算,结果为4 
select 5/0;//除法运算,结果为null,MySQL除法的除数为0是不允许的

请注意,所有涉及整数的数学运算都是用64位的精度进行计算。

用字符串表示的数字在任何可能便于计算的地方都被自动的转换为字符串。遵循两个转换原则:
1:如果第一位是数字的字符串被用于算数运算中,那么它被转换为这个数字的值
2:如果一个包含字符和数字混合的字符串不能被正确的转换为数字,将被转换成0

select ‘100’+’004’;//结果为104 
select ‘90AA’+’0’;//结果为90 
select ‘10x’*’qwe’;//结果0
比较运算符

比较运算符,允许我们对表达式的左边和右边进行比较,一个比较运算的结果总是1(真),0(假)或为null(不确定)。

select 6=6,3.4=4.5,’a’=’b’;//判断两边是否相等 
select 7<>7,7<>8,’a’<>’b’;//判断两边是否不相等 
select 100>100,10<100;//判断左边是否大于右边,左边是否小于右边 
select 10>=100,10<=1;//判断左边是否大于等于右边,左边是否小于等于右边 
select 10 between 0 and 100;//检验一个值是否存在于一个指定的范围内 
select 10 not between 11 and 100;//检验一个值是否不存在于一个指定的范围内 
select 7 in (1,2,3,4,5,6,7,8,9);//检验一个值是否包含在一个指定的值集合中 
select 7 not in (1,2,3,4,5,6,7,8,9);//检验一个值是否不包含在一个指定的值集合中

默认情况下,比较是不区分大小写的。我们可以用binary关键字来执行区分大小写的运算
select binary ‘ross’ in (‘Chandler’,’Joey’,’Ross’);
这里写图片描述

逻辑运算符

逻辑运算符可以测试1个或者多个表达式(或表达式集合)的逻辑有效性。含有这些运算符的运算结果总是1(真),0(假)或null(不能确定)

逻辑运算符中最简单的运算符是not运算符,它对跟在它后面的逻辑测试判断取反,把真变为假,把假变为真
select not 1,not 0,not (2=2),not (100>20);//结果为0,1,0,1
这里写图片描述
and 运算符可以测试两个或更多的值(或表达式求值)的有效性,如果它的所有成分为真并且不是null,它返回真值,否则返回假值
select (2=2) and (9000712d82f0e68b6f1554e02ca895dbe3e>运算符向左和向右移动位。
select 1da4c08952bfa7b13ead4cc6d7aa85452>1;//结果为128,32
这里写图片描述
^运算符执行位xor操作
select 1^0,0^1,17^9,143^66;//结果为1,1,24,205
这里写图片描述
~运算符执行位取反操作,并返回64位整型结果
select ~18446744073709551614,~1;
//结果为1,18446744073709551614

这里写图片描述


以上是深入理解MySQL进阶漂流记(二)的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn