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取反之后的结果。

  • 相关阅读:
    Java多线程系列 JUC锁03 公平锁(一)
    Java多线程系列 JUC锁02 互斥锁ReentrantLock
    JDBC课程3--通过ResultSet执行查询操作
    JDBC课程2--实现Statement(用于执行SQL语句)--使用自定义的JDBCTools的工具类静态方法,包括insert/update/delete三合一
    JDBC_通过DriverManager获得数据库连接
    JDBC课程1-实现Driver接口连接mysql数据库、通用的数据库连接方法(使用文件jdbc.properties)
    [终章]进阶20-流程控制结构--if/case/while结构
    MySQL进阶19--函数的创建(举例)/设置mysql的创建函数的权限/查看(show)/删除(drop) / 举4个栗子
    MySQL进阶18- 存储过程- 创建语句-参数模式(in/out/inout-对应三个例子) -调用语法-delimiter 结束标记'$'- 删除/查看/修改-三个练习
    SQL进阶17-变量的声明/使用(输出)--全局变量/会话变量--用户变量/局部变量
  • 原文地址:https://www.cnblogs.com/nayitian/p/3419146.html
Copyright © 2011-2022 走看看