>>与软件开发有关的知识:操作系统,数据库,网络通信等 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 20514 个阅读者 刷新本主题
 * 贴子主题:  MySQL 运算符的用法 回复文章 点赞(0)  收藏  
作者:flybird    发表时间:2020-02-02 22:42:25     消息  查看  搜索  好友  邮件  复制  引用

  

MySQL 运算符

本文我们主要介绍 MySQL 的运算符及运算符的优先级。

MySQL 主要有以下几种运算符:
  • 算术运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符

算术运算符

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

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


     在除法运算和模运算中,如果除数为0,将是非法除数,返回结果为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 语句中的条件语句经常要使用比较运算符。通过这些比较运算符,可以判断表中的哪些记录是符合条件的。比较结果为真,则返回 1,为假则返回 0,比较结果不确定则返回 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 |

+-----------------------+              

逻辑运算符

     逻辑运算符用来判断表达式的真假。如果表达式是真,结果返回 1。如果表达式是假,结果返回 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 |

+------+  

运算符优先级

     最低优先级为:  :=。

         点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

     最高优先级为:  !。








程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-02-05 16:58:27 重新编辑]
  Java面向对象编程-->异常处理
  JavaWeb开发-->JSP中使用JavaBean(Ⅰ)
  JSP与Hibernate开发-->第一个helloapp应用
  Java网络编程-->对象的序列化与反序列化
  精通Spring-->组合(Composition)API
  Vue3开发-->绑定CSS样式
  SQL查询语句练习题
  mysql 表分区、按时间函数分区、删除分区、自动添加表分区
  MySQL全面优化实战总结!
  Mysql数据库的使用总结之ERROR 1146 (42S02)
  作为一个程序员,CPU的这些硬核知识你必须会!
  MySQL 删除数据库
  MySQL 安装
  SQL ROUND() 函数
  SQL SELECT INTO 语句
  DTD中声明元素
  Mysql提升效率的神器: 索引
  连接数据库发现大量的TIME_WAIT解决办法
  Mysql备份与恢复
  消息队列、消息代理和消息中间件的区别和联系
  Java 操作系统篇
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。