zoukankan      html  css  js  c++  java
  • MySQL 5.6学习笔记(运算符)

    MySQL运算符包括四类:算术运算符、比较运算符、逻辑运算符和位运算符。

    1. 算术运算符

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

    除法除数为零时,执行结果为null。取余同样如此。

    mysql> select 10,10/0,10%0;
    +----+------+------+
    | 10 | 10/0 | 10%0 |
    +----+------+------+
    | 10 | NULL | NULL |
    +----+------+------+
    1 row in set (0.00 sec)

    2. 比较运算符

    用于比较运算。包括:大于(>)、小于(<)、等于(=)、大于等于(>=)、小于等于(<=)、不等于(!=)、以及IN、BETWEEN AND、IS NULL、GREATEST、LEAST、LIKE、REGEXP等。

    LEAST,在有两个或多个参数时,返回最小值;

    GREATEST,在有两个或多个参数时,返回最大值;

    mysql> select least(2,0),greatest(10,12,11);
    +------------+--------------------+
    | least(2,0) | greatest(10,12,11) |
    +------------+--------------------+
    |          0 |                 12 |
    +------------+--------------------+
    1 row in set (0.09 sec)

    BETWEEN AND,格式为a between min and max;

    mysql> select 10 between 20 and 2,10 between 2 and 20;
    +---------------------+---------------------+
    | 10 between 20 and 2 | 10 between 2 and 20 |
    +---------------------+---------------------+
    |                   0 |                   1 |
    +---------------------+---------------------+
    1 row in set (0.05 sec)

    REGEXP,正则式匹配。

    mysql> select 'ssky' regexp '^s','ssky' regexp 'y$', 'ssky' regexp '.sky','ssly' regexp '[ab]';
    +--------------------+--------------------+----------------------+----------------------+
    | 'ssky' regexp '^s' | 'ssky' regexp 'y$' | 'ssky' regexp '.sky' | 'ssly' regexp '[ab]' |
    +--------------------+--------------------+----------------------+----------------------+
    |                  1 |                  1 |                    1 |                    0 |
    +--------------------+--------------------+----------------------+----------------------+
    1 row in set (0.03 sec)

    3. 逻辑运算符

    逻辑运算符的求值所得结果均为1(true)或0(false),这类运算行有逻辑非(NOT 或 !)、逻辑与(AND 或 &&)、逻辑或(OR 或 ||)、逻辑异或(XOR)。

    not null的返回值为NULL;

    mysql> select not 0, not 1, not null;
    +-------+-------+----------+
    | not 0 | not 1 | not null |
    +-------+-------+----------+
    |     1 |     0 |     NULL |
    +-------+-------+----------+
    1 row in set (0.00 sec)

    and运算中一个操作数为null,另一操作数非零值,则返回值为NULL;or运算中当有一个操作数为null,另一个操作数非零值,则返回1,否则返回0,当两个数都为null时,返回NULL;

    mysql> select 1 or 0, 1 or 2, null or 0,null or 2, null || null;
    +--------+--------+-----------+-----------+--------------+
    | 1 or 0 | 1 or 2 | null or 0 | null or 2 | null || null |
    +--------+--------+-----------+-----------+--------------+
    |      1 |      1 |      NULL |         1 |         NULL |
    +--------+--------+-----------+-----------+--------------+
    1 row in set (0.00 sec)

    xor运算中任一个操作数为null则返回值为NULL。 

    4. 位操作运算符

    参与运算的操作数,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)等6种。

    mysql> select 1<<2,4<<2,1>>1,16>>2,bin(~4);
    +------+------+------+-------+------------------------------------------------------------------+
    | 1<<2 | 4<<2 | 1>>1 | 16>>2 | bin(~4)                                                          |
    +------+------+------+-------+------------------------------------------------------------------+
    |    4 |   16 |    0 |     4 | 1111111111111111111111111111111111111111111111111111111111111011 |
    +------+------+------+-------+------------------------------------------------------------------+
    1 row in set (0.00 sec)

    上面使用了bin()函数查看4取反之后的结果。

  • 相关阅读:
    iOS10权限声明国际化
    用"僵尸对象"调试内存管理问题
    windows系统下的两个批处理命令
    解决windows系统下打开应用弹出丢失libmysql.dll的问题
    简单的cocos2dx笔试题
    解决cocos2dx 3.x 导入cocostudio的ui界面出现错位问题
    mac 使用homebrew 安装mysql
    cocos2dx for lua 简单的翻牌动画
    cocos2dx for lua A*寻路算法实现2
    解决升级mac os X EI Capitan后遇到LibclangError: dlopen(libclang.dylib, 6): image not found.的问题
  • 原文地址:https://www.cnblogs.com/nayitian/p/3419146.html
Copyright © 2011-2022 走看看