MySQL知识(四)——运算符

1 常见运算符

1.1 算术运算符

  用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(%)。

mysql> SELECT 9+4,9-4,9*4,9/4,9%4;
+-----+-----+-----+------+-----+
| 9+4 | 9-4 | 9*4 | 9/4  | 9%4 |
+-----+-----+-----+------+-----+
|  13 |   5 |  36 | 2.25 |   1 |
+-----+-----+-----+------+-----+
1 row in set

1.2 比较运算符

  一个比较运算符的结果总是1、0或者NULL,比较运算符经常在SELECT的查询条件子句中使用,用来查询满足制定条件的记录。

运算符作用
=等于
<=>安全的等于
<>(!=)不等于
<=小于等于
>=大于等于
>大于
IS [NOT] NULL判断一个值是否(不)为NULL
[NOT] IN判断一个值(不)是IN列表中的任意一个值
BETWEEN AND判断一个值是否落在两个值之间
LIKE通配符匹配
REGEXP正则表达式匹配
LEAST两个或多个参数时,返回最小值
GREATEST两个或多个参数时,返回最大值

1.2.1 =和<=>

  两者的作用相同,唯一区别是<=>可以用来对NULL进行判断,两者都为NULL时返回值为1。

mysql> SELECT 5=5,5<=>9,NULL=NULL,NULL<=>NULL;
+-----+-------+-----------+-------------+
| 5=5 | 5<=>9 | NULL=NULL | NULL<=>NULL |
+-----+-------+-----------+-------------+
|   1 |     0 | NULL      |           1 |
+-----+-------+-----------+-------------+
1 row in set

1.2.2 BETWEEN AND运算符

mysql> SELECT 5 BETWEEN 3 AND 9,5 BETWEEN 6 AND 9;
+-------------------+-------------------+
| 5 BETWEEN 3 AND 9 | 5 BETWEEN 6 AND 9 |
+-------------------+-------------------+
|                 1 |                 0 |
+-------------------+-------------------+
1 row in set

1.2.3 IN、NOT IN运算符

mysql> SELECT 5 IN(1,3,5,'jtzen9') as col1,
    -> 'jtzen9' NOT IN (1,3,5,'jtzen9') as col2;
+------+------+
| col1 | col2 |
+------+------+
|    1 |    0 |
+------+------+
1 row in set

1.2.4 LEAST、GREATEST

   (1)LEAST(值1,值2,……,值n),返回最小值
   (2)GREATEST(值1,值2,……,值n),返回最大值;任一变量为NULL,返回NULL。

mysql> SELECT LEAST(20.0,5,9) as col1,
    -> LEAST(10,NULL) as col2,
    -> GREATEST(20.0,5,9) as col3,
    -> GREATEST(20.0,NULL) as col4;
+------+------+------+------+
| col1 | col2 | col3 | col4 |
+------+------+------+------+
| 5    | NULL | 20   | NULL |
+------+------+------+------+
1 row in set

1.2.5 LIKE通配符匹配

  LIKE运算符在进行匹配时,可以使用下面两种通配符:
  (1)‘ % ’,匹配任何数目的字符,甚至包括零字符。
  (2)‘ _ ’,只匹配一个字符。

mysql> SELECT 'jtzen9' LIKE 'jtzen9' as col1,
    -> 'jtzen9' LIKE 'jtzen_' as col2,
    -> 'jtzen9' LIKE 'j%n9' as col3,
    -> 'jtzen9' LIKE 'jt____' as col4,
    -> 'jtzen9' LIKE NULL as col5;
+------+------+------+------+------+
| col1 | col2 | col3 | col4 | col5 |
+------+------+------+------+------+
|    1 |    1 |    1 |    1 | NULL |
+------+------+------+------+------+
1 row in set

1.2.6 REGEXP正则表达式匹配

  REGEXP运算符在进行匹配时,常用的几种通配符:
  (1)‘ ^ ’匹配以该字符后面的字符开头的字符串;
  (2)‘ $ ’匹配以该字符后面的字符结尾的字符串;
  (3)‘ . ’匹配任何一个单字节;
  (4)“[…]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。为了命名字符的范围,使用一个‘ - ’。“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字;
  (5)‘ * ’匹配零个或多个在它前面的字符。例如,“x*”匹配任何数量的‘x’字符,“[0-9]”匹配任何数量的数字,而“.”匹配任何数量的任何字符。

mysql> SELECT 'ssky' REGEXP '^s' as col1,
    -> 'ssky' REGEXP 'y$' as col2,
    -> 'ssky' REGEXP '.sky' as col3,
    -> 'ssky' REGEXP '[ab]' as col4;
+------+------+------+------+
| col1 | col2 | col3 | col4 |
+------+------+------+------+
|    1 |    1 |    1 |    0 |
+------+------+------+------+
1 row in set

1.3 逻辑运算符

  在SQL中,所有逻辑运算符的求值所得结果均为TRUE、FALSE或NULL。在MySQL中,为1、0和NULL。

运算符作用
NOT 或者 !逻辑非
AND 或者 &&逻辑与
OR 或者 ||逻辑或
XOR逻辑异或

  注意:AND两边一定要使用空格隔开,不然会影响结果的正确性。

1.4 位运算符

  位运算符是用来对二进制字节中的位进行测试、移位或者测试处理。

运算符作用
|位或
&位与
^位异或
<<位左移
>>位右移
~位取反,反转所有比特

1.5 运算符的优先级

这里写图片描述
  在无法确定优先级的情况下,可以使用圆括号()来改变优先级,并且这样会使计算过程更加清晰。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值