扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
如何合理利用MySQL数据库中的比较运算符
为克州等地区用户提供了全套网页设计制作服务,及克州网站建设行业解决方案。主营业务为成都做网站、网站制作、成都外贸网站建设、克州网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
因为在ascii码中:
数字 是排在 字母前面的:
0--9 的ASCII 是 48--57
A-Z的ASCII 是 65--90
a-z的ASCII 是 97--122
所以字符:
'6' 'A'
然后:
'6A' 'A6'
不支持
SELECT if(0,'yes','NO') ; 这样
IF(expr1,expr2,expr3)
如果 expr1是TRUE (expr1
0 and expr1 NULL),则
IF()的返回值为expr2; 否则返回值则为
expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。
算术运算符中的加(+),用于获取两个或两个以上数据的和,可以两个数相加或多个数据相加,如下图所示:
算术运算符的减(+),是用于一个数据减去另外一个数据,或者一个数据减去多个数据,如下图所示:
算术运算符的乘(*),是用于一个数据乘以另外一个数据或多个数据,获取乘的结果,如下图所示:
算术运算符的除(/),是一个数除以另外一个数据或多个,获取返回的商,如下图所示:
另外,算术运算符还有一种取模运算,就是一个数除以另外一个数获取余数,如下图所示:
6
算术运算符中除和取模运算,都是一个数除以另一个数,这时如果被除数为0,这时就会出现问题,返回结果为null,如下图所示:
方法如下:
我们先建一个DEMO表,来做我们今天的实现,建表语句如下:
CREATE TABLE
DEMO
(
NAME VARCHAR(50) COMMENT '姓名',
SEX CHAR(1) COMMENT '性别',
PRIMARY KEY (NAME)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='例子表';
并且select查询一下,如下图
增加一个AGE字段,
ALTER TABLE DEMO ADD AGE CHAR(3);
select查询一下,如下图
请对比上下图,可以发现 多出了一个AGE字段,此处是CHAR类型的。
那么如何删除我们刚加的字段呢,
ALTER TABLE DEMODROP COLUMN AGE;
select查询一下,如下图
请对比上下图,可以发现 AGE字段被删除掉了
我们在把这个字段加回来
ALTER TABLE DEMO ADD AGE CHAR(3);,
我们用视图工具DBVISUAL看下表机构,这时AGE字段是CHAR类型的
我们如果需要把这个字段修改为VARCHAR类型的怎么办呢,
ALTER TABLE DEMO MODIFY AGE VARCHAR(20),
然后我们在用视图工具DBVISUAL看下表机构,这时AGE字段是VARCHAR类型的
1、等于运算符:=
“=”是用来判断数字、字符串和表达式是否相等,如果相等,返回值为,否则返回值为0。
如:select 5=6,'9'=9,668=668,'luo'='luo',(2*3)=(4*5),NULL=NULL,0=NULL;
结论】
1)若有一个两个操作数为NULL,比较运算的结果就是NULL;
2)同一个比较运算符中两个操作数都是字符串,则按照字符串进行比较;
3)若同一个比较运算符中两个操作数都是数值,则按照数值进行比较;
4)若是一个数值和一个字符串进行比较,则MySQL自动将字符串转化为数值;
5)不管何种情况,“=”比较返回的确实只有1、0与NULL三类值。
2、安全等于运算符:=
“=”运算符在具备“=”所有功能的基础上增加了判断NULL值的功能。
【结论】
1)“=”运算符确实具备“=”所有功能,返回值也是1、0与NULL;
2)当两个操作数均为NULL时,“=”运算符返回的结果为1,而不是NULL;
3)当只有一个操作数为NULL时,“=”运算符返回的结果也不是NULL而是0。
3、不等于运算符:或!=
1)“”或“!=”运算符也是可以用于数字、字符串与表达式的判断;
2)其比较逻辑与“=”相反,但返回值也是1、0与NULL。
4、小于或等于运算符:=
1)“=”运算符也是可以用于数字、字符串与表达式的判断;
2)其逻辑:判断左边的操作数是否小于右边的操作数,如果是则返回1,否则返回0;
3)针对含有NULL的操作数则好不犹豫地返回NULL。
5、小于运算符:
6、大于或等于运算符:=
7、大于运算符:
这三类运算符与上面的“=”逻辑一致,大家可以自己去分析其过程并得到结论。
8、IS NULL(ISNULL)、IS NOT NULL运算符
1)这类比较运算符是用来判断数字、字符、表达式结果是否为NULL;
2)返回的结果值有1、0,没有NULL;
3)IS NULL(ISNULL)与IS NOT NULL返回的值相反。
9、BETWEEN AND运算符
其语法格式为“expr BETWEEN min AND max”。
1)这类比较运算符是用来判断数字、字符、表达式结果是否为NULL;
2)返回的结果值有1、0与NULL;
3)等同于:min = expr =max,即包含上下限的值。
10、IN与NOT IN运算符
1)这类比较运算符是用来判断数字、字符、表达式结果是否为NULL;
2)返回的结果值有1、0与NULL;
3)IN用来判断操作数是否为IN列表中的一个值,如果是则返回1,否则返回0,对于NULL则返回NULL。NOT IN则于IN相反。
11、LIKE运算符
其语法格式为“expr LIKE 匹配条件”。
1)LIKE运算符用于匹配字符串;
2)返回的结果值有1、0与NULL;
3)包含两种通配符。“%”匹配任何字符,甚至包括零字符;“_”只能匹配一个字符。
12、REGEXP运算符
REGEXP是LIKE的逆运算。语法格式类似:“expr REGEXP 匹配条件”。只是其包含的通配符更多。
1)^:匹配以该字符后面的字符开头的字符串;
2)$:匹配以该字符后面的字符结尾的字符串;
3).:匹配任何一个单字符;
4)[···]:匹配方括号内的任何字符;
5)*:匹配零个或多个在它前面的字符。
总结:
1、MySQL支持的比较运算符有12类;
2、一个比较运算符的结果总是1、0或NULL;
3、只有“=”才支持NULL的比较,其他对有NULL操作数时返回的结果就是NULL。
mysql中有4类运算符,它们是:
算术运算符
比较运算符
逻辑运算符
位操作运算符
算术操作符
算术操作符是SQL中最基本的操作运算符,主要有一下几种运算符:
+(加)、 -(减)、 *(乘)、 /(除)、 %(求余或者模)
比较运算符
一个比较运算符的结果总是1,0或者是NULL。MySQL中的比较运算符有:
=、=、 (!=)、=、=、、IS NULL、IS NOT NULL、LEAST、GREATEST、BETWEEN . . . AND. . . 、ISNULL、IN、NOT IN、LIKE、REGEXP
逻辑运算符
逻辑运算符的求值所得结果均为TRUE、FALSE或NULL。
逻辑运算符有:
NOT 或者 !
AND 或者
OR 或者 ||
XOR(异或)
位运算符
位运算符是用来对二进制字节中的位进行测试、移位或者测试处理。位运算符有:
位或(|)
位与()
位异或(^ )
位左移()
位右移()
位取反(~)
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流