zoukankan      html  css  js  c++  java
  • 4.Mysql中的运算符

    4.Mysql中的运算符
    运算符用来连接表达式。
    运算符包括:算术运算符、比较运算符、逻辑运算符、位运算符。

    4.1 算术运算符
    算术运算符包括加(+)、减(-)、乘(*)、除(/)、取模(%,MOD) 5种。
    例子:
    select 2+3,5-3,2*3,7/3,7%3,MOD(7,3);
    select 7/0,7%0,MOD(7,0); -- ok 除数为0时不报错,但结果为null

    4.2 比较运算符
    比较运算符用于表达式左边操作数和右边操作数的比较操作,比较结果取值可能为真(1)、假(0)、未知(null)。
    比较运算符可以比较数字、字符串和表达式,
    数字作为浮点数比较,字符串不区分大小写,表达式比较运算结果。
    除is nullis not null<=>外, null和其它运算符的运算结果仍为null。
    = 等于
    <>或!= 不等于
    <=> null安全的等于(Null-safe)
    < 小于
    <= 小于等于
    > 大于
    >= 大于等于
    between and 大于等于 并且 小于等于
    in 在集合内
    is null 是否为null
    is not null 是否不为null
    like 模糊匹配
    regexp或rlike 正则表达式匹配
    例子:
    select 1.00=1,'A'='a',2*2=2+2,null=null;-- 数字作为浮点数比较,字符串不区分大小写,表达式比较运算结果。
    select 1.00<>1,'A'<>'a',2*2<>2+2,null<>null;
    select 1.00<1,1.00<=1,1.00>1,1.00>=1;
    select null is null,null is not null,null<=>null; -- 除is nullis not null<=>外, null和其它运算符的运算结果仍为null。
    select 5 between 1 and 10,1 between 5 and 10;
    select 5 in (1,2,3,4,5),10 in (1,2,3,4,5);
    select 'abc' like 'a%','abc' not like '_a%';
    select 'abcd' regexp 'bc','abcd' regexp '1';

    4.3 逻辑运算符
    逻辑运算符(布尔运算符)用来确认表达式的真和假。
    逻辑运算符分为4种:
    NOT或! 逻辑非 取反
    AND或&& 逻辑与 两个都为真时为真,否则为假
    OR或|| 逻辑或 两个都为假时为假,否则为真
    XOR 逻辑异或 两个不同时为真,相同时为假
    例子:
    select not 0,!1,! null;
    select 0 and 0,0 and 1,1&&0,1&&1;
    select 0 or 0,0 or 1,1||0,1||1;
    select 0 xor 0,0 xor 1,1 xor 0,1 xor 1;

    4.4 位运算符
    位运算是将给定的操作数转化为二进制后,对各个操作数每一位都进行指定的逻辑运算,得到的二进制结果转换为十进制后就是位运算的结果。
    位运算符分为6种:
    & 按位与
    | 按位或
    ^ 按位异或
    ~ 按位取反
    >> 按位右移
    << 按位左移
    例子:
    十进制转二进制
    1-->1,2-->10,3-->11,8-->1000 16-->10000
    常量数字默认以8B存储,18446744073709551614-->11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111110
    select 2&3,2|3,2^3,~1,~18446744073709551614,2<<3,8>>3;

    4.5 运算符的优先级
    所有运算符由低到高排列,同一行运算符具有相同的优先级:
    优先顺序 运算符列表
    1 :=赋值符
    2 OR或||(逻辑或)、XOR逻辑异或
    3 AND或&&逻辑与
    4 NOT逻辑非
    5 between and(大于等于并且小于等于)、case when then else 条件分支
    6 =等于、<=> null安全的等于(Null-safe)、<>或!=不等于、<小于、<=小于等于、>大于、>=大于等于、is null是否为null、is not null是否不为null、in在集合内、like模糊匹配、regexp或rlike正则表达式匹配
    7 |按位或
    8 &按位与
    9 >>按位右移、<<按位左移
    10 +加、-减
    11 *乘、/除、(%,MOD)取模
    12 ^按位异或
    13 ~按位取反、++一元加号、--一元减号
    14 !逻辑非
    可以用小括号()来改变操作符的优先级顺序。
    4.6 小结

  • 相关阅读:
    多线程的设计模式
    Deque 双端队列
    并发Queue
    并发类容器
    同步类容器
    java0926
    第十二次作业
    第十一次作业
    第十次
    第九次
  • 原文地址:https://www.cnblogs.com/BradMiller/p/9515807.html
Copyright © 2011-2022 走看看