第36章 MySQL 运算符教程

本章节咱们主要介绍 MySQL 的运算符及运算符的优先级。 MySQL 主要有以下几种运算符:

  • 算术运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符

算术运算符

MySQL 支持的算术运算符包括:

运算符作用
+加法
-减法
*乘法
/ 或 DIV除法
% 或 MOD取余

在除法运算和模运算中,如果除数为0,将是非法除数,return 结果为NULL。

1、加


    mysql> select 1+2;
    +-----+
    | 1+2 |
    +-----+
    |   3 |
    +-----+

2、减


    mysql> select 1-2;
    +-----+
    | 1-2 |
    +-----+
    |  -1 |
    +-----+

3、乘


    mysql> select 2*3;
    +-----+
    | 2*3 |
    +-----+
    |   6 |
    +-----+

4、除


    mysql> select 2/3;
    +--------+
    | 2/3    |
    +--------+
    | 0.6667 |
    +--------+

5、商


    mysql> select 10 DIV 4;
    +----------+
    | 10 DIV 4 |
    +----------+
    |        2 |
    +----------+

6、取余


    mysql> select 10 MOD 4;
    +----------+
    | 10 MOD 4 |
    +----------+
    |        2 |
    +----------+


比较运算符

SELECT 语句中的条件语句经常要使用比较运算符。通过这些比较运算符,可以判断表中的哪些记录是符合条件的。比较结果为真,则return 1,为假则return 0,比较结果不确定则return NULL。

符号描述备注
=等于
<>, !=不等于
>大于
<小于
<=小于等于
>=大于等于
BETWEEN在两值之间>=min&&<=max
NOT BETWEEN不在两值之间
IN在集合中
NOT IN不在集合中
<=>严格比较两个NULL值是否相等两个操作码均为NULL时,其所得值为1;而当一个操作码为NULL时,其所得值为0
LIKE模糊匹配
REGEXP 或 RLIKE正则式匹配
IS NULL为空
IS NOT NULL不为空

1、等于


    mysql> select 2=3;
    +-----+
    | 2=3 |
    +-----+
    |   0 |
    +-----+
    
    
    mysql> select NULL = NULL;
    +-------------+
    | NULL = NULL |
    +-------------+
    |        NULL |
    +-------------+

2、不等于


    mysql> select 2<>3;
    +------+
    | 2<>3 |
    +------+
    |    1 |
    +------+

3、安全等于

与 = 的区别在于当两个操作码均为 NULL 时,其所得值为 1 而不为 NULL,而当一个操作码为 NULL 时,其所得值为 0而不为 NULL。


    mysql> select 2<=>3;
    +-------+
    | 2<=>3 |
    +-------+
    |     0 |
    +-------+
    
    
    mysql> select null=null;
    +-----------+
    | null=null |
    +-----------+
    |      NULL |
    +-----------+
    
            
    mysql> select null<=>null;
    +-------------+
    | null<=>null |
    +-------------+
    |           1 |
    +-------------+

4、小于


    mysql> select 2<3;
    +-----+
    | 2<3 |
    +-----+
    |   1 |
    +-----+

5、小于等于


    mysql> select 2<=3;
    +------+
    | 2<=3 |
    +------+
    |    1 |
    +------+

6、大于


    mysql> select 2>3;
    +-----+
    | 2>3 |
    +-----+
    |   0 |
    +-----+

7、大于等于


    mysql> select 2>=3;
    +------+
    | 2>=3 |
    +------+
    |    0 |
    +------+

8、BETWEEN


    mysql> select 5 between 1 and 10;
    +--------------------+
    | 5 between 1 and 10 |
    +--------------------+
    |                  1 |
    +--------------------+

9、IN


    mysql> select 5 in (1,2,3,4,5);
    +------------------+
    | 5 in (1,2,3,4,5) |
    +------------------+
    |                1 |
    +------------------+

10、NOT IN


    mysql> select 5 not in (1,2,3,4,5);
    +----------------------+
    | 5 not in (1,2,3,4,5) |
    +----------------------+
    |                    0 |
    +----------------------+

11、IS NULL


    mysql> select null is NULL;
    +--------------+
    | null is NULL |
    +--------------+
    |            1 |
    +--------------+
    
    mysql> select 'a' is NULL;
    +-------------+
    | 'a' is NULL |
    +-------------+
    |           0 |
    +-------------+

12、IS NOT NULL


    mysql> select null IS NOT NULL;
    +------------------+
    | null IS NOT NULL |
    +------------------+
    |                0 |
    +------------------+
    
            
    mysql> select 'a' IS NOT NULL;
    +-----------------+
    | 'a' IS NOT NULL |
    +-----------------+
    |               1 |
    +-----------------+

13、LIKE


    mysql> select '12345' like '12%';
    +--------------------+
    | '12345' like '12%' |
    +--------------------+
    |                  1 |
    +--------------------+
    
    mysql> select '12345' like '12_';
    +--------------------+
    | '12345' like '12_' |
    +--------------------+
    |                  0 |
    +--------------------+

14、REGEXP


    mysql> select 'beijing' REGEXP 'jing';
    +-------------------------+
    | 'beijing' REGEXP 'jing' |
    +-------------------------+
    |                       1 |
    +-------------------------+
    
    mysql> select 'beijing' REGEXP 'xi';
    +-----------------------+
    | 'beijing' REGEXP 'xi' |
    +-----------------------+
    |                     0 |
    +-----------------------+


逻辑运算符

逻辑运算符用来判断表达式的真假。如果表达式是真,结果return 1。如果表达式是假,结果return 0。

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

1、与


    mysql> select 2 and 0;
    +---------+
    | 2 and 0 |
    +---------+
    |       0 |
    +---------+
    
            
    mysql> select 2 and 1;   
    +---------+     
    | 2 and 1 |      
    +---------+      
    |       1 |      
    +---------+

2、或


    mysql> select 2 or 0;
    +--------+
    | 2 or 0 |
    +--------+
    |      1 |
    +--------+
    
    mysql> select 2 or 1;
    +--------+
    | 2 or 1 |
    +--------+
    |      1 |
    +--------+
    
    mysql> select 0 or 0;
    +--------+
    | 0 or 0 |
    +--------+
    |      0 |
    +--------+
    
    mysql> select 1 || 0;
    +--------+
    | 1 || 0 |
    +--------+
    |      1 |
    +--------+

3、非


    mysql> select not 1;
    +-------+
    | not 1 |
    +-------+
    |     0 |
    +-------+
    
    mysql> select !0;
    +----+
    | !0 |
    +----+
    |  1 |
    +----+

4、异或


    mysql> select 1 xor 1;
    +---------+
    | 1 xor 1 |
    +---------+
    |       0 |
    +---------+
    
    mysql> select 0 xor 0;
    +---------+
    | 0 xor 0 |
    +---------+
    |       0 |
    +---------+
    
    mysql> select 1 xor 0;
    +---------+
    | 1 xor 0 |
    +---------+
    |       1 |
    +---------+
    
    mysql> select null or 1;
    +-----------+
    | null or 1 |
    +-----------+
    |         1 |
    +-----------+
    
    mysql> select 1 ^ 0;
    +-------+
    | 1 ^ 0 |
    +-------+
    |     1 |
    +-------+


位运算符

位运算符是在二进制数上进行计算的运算符。位运算会先将操作数变成二进制数,进行位运算。然后再将计算结果从二进制数变回十进制数。

运算符号作用
&按位与
|按位或
^按位异或
!取反
<<左移
>>右移

1、按位与


    mysql> select 3&5;
    +-----+
    | 3&5 |
    +-----+
    |   1 |
    +-----+

2、按位或


    mysql> select 3|5;
    +-----+
    | 3|5 |
    +-----+
    |   7 |
    +-----+

3、按位异或


    mysql> select 3^5;
    +-----+
    | 3^5 |
    +-----+
    |   6 |
    +-----+

4、按位取反


    mysql> select ~18446744073709551612;
    +-----------------------+
    | ~18446744073709551612 |
    +-----------------------+
    |                     3 |
    +-----------------------+

5、按位右移


    mysql> select 3>>1;
    +------+
    | 3>>1 |
    +------+
    |    1 |
    +------+

6、按位左移


    mysql> select 3<<1;
    +------+
    | 3<<1 |
    +------+
    |    6 |
    +------+


运算符优先级

最低优先级为: :=。

最高优先级为: !、BINARY、 COLLATE。

本专栏所有文章

第1章 MySQL 教程第2章 MySQL 安装教程
第3章 MySQL 管理教程第4章 MySQL PHP 语法教程
第5章 MySQL 连接教程第6章 MySQL 创建数据库教程
第7章 MySQL 删除数据库教程第8章 MySQL 选择数据库教程
第9章 MySQL 数据类型教程第10章 MySQL 创建数据表教程
第11章 MySQL 删除数据表教程第12章 MySQL 插入数据教程
第13章 MySQL 查询数据教程第14章 MySQL WHERE 子句教程
第15章 MySQL UPDATE 更新教程第16章 MySQL DELETE 语句教程
第17章 MySQL LIKE 子句教程第18章 MySQL UNION教程
第19章 MySQL 排序教程第20章 MySQL 分组教程
第21章 MySQL 连接的使用教程第22章 MySQL NULL 值处理教程
第23章 MySQL 正则表达式教程第24章 MySQL 事务教程
第25章 MySQL ALTER命令教程第26章 MySQL 索引教程
第27章 MySQL 临时表教程第28章 MySQL 复制表教程
第29章 MySQL 元数据教程第30章 MySQL 序列使用教程
第31章 MySQL 处理重复数据教程第32章 MySQL 及 SQL 注入教程
第33章 MySQL 导出数据教程第34章 MySQL 导入数据教程
第35章 MySQL 函数教程第36章 MySQL 运算符教程

寄语

本文有榴莲酱CSDN原创,欢迎点赞、转载,博客地址:https://blog.csdn.net/qq441540598

  • 一日无书,百事荒芜。译文:读书要持之以恒,一天也不能间断。
  • 藏在心底的话并不是故意要去隐瞒,只是并不是所有的疼痛都能呐喊。
  • 有人说男人一旦变心,九头牛也拉不回来,难到女人变心,九头牛就拉的回来吗?男女之间只在生理差异,心理方面大同小异。
  • 在重视劳动和尊重劳动者的基础上,我们有可能来创造自己的新的道德。劳动和科学是世界上最伟大的两种力量。
  • 梦是心灵的思想,是我们的秘密真情(杜鲁门·卡波特)
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

榴莲酱csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值