本文共 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
的查询条件子句中使用,用来查询满足指定条件的记录。
如果相等,返