博客
关于我
mysql中的四大运算符种类汇总20多项,用了三天三夜来整理的,还不赶快收藏
阅读量:792 次
发布时间:2023-02-11

本文共 18118 字,大约阅读时间需要 60 分钟。

运算符连接表达式中的各个操作数,他的作用是用来指明对数据表中的操作数所进行的运算。

运用运算法有什么好处呢?

运用运算符可以更加灵活的使用表中的数据,我们可以通过使用运算符来解决我们的很多问题,大大提高效率。

什么是运算符:

运算符是告诉mysql执行特定算术或者逻辑操作的符号。

mysql的内部运算符很丰富,主要有四大类,分别是:

  • 算术运算符:用于各类数值运算

  • 加(+)

  • 减(-)

  • 乘(*)

  • 除(/)

  • 求余(或者称模运算)(%)

  • 比较运算符:用于比较运算

  • 大于(>)

  • 小于(<)

  • 等于(=)

  • 大于等于(>=)

  • 小于等于(<=)

  • 不等于(!=)

  • IN、BETWEEN AND、IS NULL、GREATEST、LEAST、LIKE、REGEXP

  • 逻辑运算符:求值所得结果均为1(TRUE)、0(FALSE),这类运算符有:

  • 逻辑非(NOT或者!)

  • 逻辑与(AND或者&&)

  • 逻辑或(OR或者||)

  • 逻辑异或(XOR)

  • 位运算符:参与运算的操作数按二进制位进行运算

  • 位与(&)

  • 位或(|)

  • 位非(~)

  • 位异或(^)

  • 左移(<<)

  • 右移(>>)

可以看到上面有多达20多种运算符,我们接下来就根据这个来一一进行整理。

算术运算符

算术运算符是sql中最基本的运算符;

图片

老规矩,一切都在操作中;

举个例子:

创建表一个名为yunweijia_1的数据表;

mysql> create table yunweijia_1 (num int);Query OK, 0 rows affected (0.04 sec)mysql> show tables;+-------------------+| Tables_in_test_db |+-------------------+| yunweijia_1       |+-------------------+1 row in set (0.00 sec)mysql>

yunweijia_1的数据表中插入数据;

mysql> insert into yunweijia_1 values (66);Query OK, 1 row affected (0.01 sec)mysql>

加法和减法运算

mysql> select num, num+10, num-10, num+10-5, num-5+10 from yunweijia_1;+------+--------+--------+----------+----------+| num  | num+10 | num-10 | num+10-5 | num-5+10 |+------+--------+--------+----------+----------+|   66 |     76 |     56 |       71 |       71 |+------+--------+--------+----------+----------+1 row in set (0.00 sec)mysql>

从上面可以看到,我们可以对num字段的值进行加法和减法的运算,而且+- 的优先级相同,先加后减或者先减后加的结果是相同的哈。

乘法、除法和求余运算

mysql> select num, num*2, num/2, num%22, num%30 from yunweijia_1;+------+-------+---------+--------+--------+| num  | num*2 | num/2   | num%22 | num%30 |+------+-------+---------+--------+--------+|   66 |   132 | 33.0000 |      0 |      6 |+------+-------+---------+--------+--------+1 row in set (0.00 sec)mysql>

从上面可以看到,对num进行除除法运算的时间,66被2整除之后,小数位也是保留了4位小数的。求余运算的时候,由于66被22整除了,所以余数是0,但是66无法被30整除,所以余数就是6了。

注意点:

在数学运算时,除数为0的除法是没有意义的,因此除法运算中的除数不能为0,如果被0除的话,结果会返回NULL

如下:

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

比较运算符

一个比较运算符的结果总是1、0或者null。比较运算符经常在select的查询条件子句中使用,用来查询满足指定条件的记录。

图片

等于运算符(=)

如果相等,返