算术运算符

加减运算符

1. 整数加减整数还是整数2. 整数加减浮点数还是浮点数3. 加减优先级相同4. Mysql中+只是表示数值相加.如果遇到非数值类型.先尝试转换成数值类型.如果转换失败按0来计算5. 含有null参加的加减运算结果还是null

mysql> SELECT 100, 100 + 0, 100 - 0, 100 + 50, 100 + 50 -30, 100 + 35.5, 100 - 35.5 FROM dual;
+-----+---------+---------+----------+--------------+------------+------------+
| 100 | 100 + 0 | 100 - 0 | 100 + 50 | 100 + 50 -30 | 100 + 35.5 | 100 - 35.5 |
+-----+---------+---------+----------+--------------+------------+------------+
| 100 | 100     | 100     | 150      | 120          | 135.5      | 64.5       |
+-----+---------+---------+----------+--------------+------------+------------+
1 row in set (0.00 sec)
乘除运算符

1. 一个数乘除一还是原来数2. 一个数乘除浮点数1和除以浮点数1结果是浮点数.数值与原来相同3. 一个数除以整数不管是否除尽.结果都是浮点数4. 一个数除以另一个数. 除不尽时. 结果为一个浮点数. 并保留到小数点后4位5. 乘法和除法的优先级相同. 进行先乘后除操作与先除后乘操作. 得出的结果相同6. 在数学运算中. 0不能用作除数. 在MySQL中. 一个数除以0为NULL7. 含有 NULL 参加的乘除结果还是NULL

SELECT 100, 100 * 1, 100 * 1.0, 100 / 1.0, 100 / 2,100 + 2 * 5 / 2,100 /3, 100 DIV 0 FROM dual;
+-----+---------+-----------+-----------+---------+-----------------+---------+-----------+
| 100 | 100 * 1 | 100 * 1.0 | 100 / 1.0 | 100 / 2 | 100 + 2 * 5 / 2 | 100 /3  | 100 DIV 0 |
+-----+---------+-----------+-----------+---------+-----------------+---------+-----------+
| 100 |     100 |     100.0 |  100.0000 | 50.0000 |        105.0000 | 33.3333 |      NULL |
+-----+---------+-----------+-----------+---------+-----------------+---------+-----------+
求模运算符

1. 含有null参加的求模运算结果还是null2. 求模结果的正负号和被模数相同

SELECT 12 % 3, 12 MOD 5 FROM dual;
+--------+----------+
| 12 % 3 | 12 MOD 5 |
+--------+----------+
| 0      | 2        |
+--------+----------+

比较运算符

having mysql 加法 mysql 加减法_数据库


比较运算符用来对表达式左边的操作数和右边的操作数进行比较. 比较的结果为真则返回1. 比较的结果为假则返回0. 其他情况则返回NULL.比较运算符经常被用来作为SELECT查询语句的条件来使用. 返回符合条件的结果记录

having mysql 加法 mysql 加减法_mysql_02

等于运算符

1. 判断= 两边的值. 是否相同. 相等返回1 不等返回0
2. 等号两边都是字符串比较字符串3. 等号两边都是整数比较整数4. 等号两边有整数有字符串. 则MySQL会将字符串转化为数字进行比较
5. 等号两边有整数有字符串. 如果字符串不能转换成数值. 那么就会将字符串转换成整数 0
6. 如果等号两边的值. 字符串或表达式中存在NULL. 比较的结果就是NULL7. MySQL中的赋值运算符是 :=

mysql> SELECT 1 = 1, 1 = '1', 1 = 0, 'a' = 'a', (5 + 3) = (2 + 6), '' = NULL , NULL =
NULL;
+-------+---------+-------+-----------+-------------------+-----------+-------------+
| 1 = 1 | 1 = '1' | 1 = 0 | 'a' = 'a' | (5 + 3) = (2 + 6) | '' = NULL | NULL = NULL |
+-------+---------+-------+-----------+-------------------+-----------+-------------+
| 1     | 1       | 0     | 1         | 1                 | NULL      | NULL        |
+-------+---------+-------+-----------+-------------------+-----------+-------------+
1 row in set (0.00 sec)

mysql> SELECT 1 = 2, 0 = 'abc', 1 = 'abc' FROM dual;
+-------+-----------+-----------+
| 1 = 2 | 0 = 'abc' | 1 = 'abc' |
+-------+-----------+-----------+
| 0     | 1         | 0         |
+-------+-----------+-----------+
1 row in set, 2 warnings (0.00 sec)
安全等于运算符

安全等于运算符 <=> 与等于运算符 = 的作用是相似的. 唯一的区别 是 <=> 可 以用来对NULL进行判断. 在两个操作数均为NULL时. 其返回值为1. 而不为NULL;当一个操作数为NULL 时. 其返回值为0 而不为NULL

mysql> SELECT null <=> null,null <=> 1,null <=> 0 from dual;
+---------------+------------+------------+
| null <=> null | null <=> 1 | null <=> 0 |
+---------------+------------+------------+
|             1 |          0 |          0 |
+---------------+------------+------------+
不等于运算符

不等于运算符<>和!=用于判断两边的数字. 字符串或者表达式的值是否不相等. 如果不相等则返回1 相等则返回0 不等于运算符不能判断NULL值. 如果两边的值存在NULL.结果就是NULL

非符号类型运算符

having mysql 加法 mysql 加减法_having mysql 加法_03

逻辑运算符

having mysql 加法 mysql 加减法_运算符_04


逻辑非:0变1 1变0 NULL还是NULL

逻辑与:运算符是给定的值都是非0并且都不为NULL的时候才会返回1. 当以其中有一个或者多个0的时候返回值是 0. 否则返回的都是 NULL逻辑异或: 运算符是当给定的值中任意一个值为NULL时 .则返回NULL 如果两个非NULL的值都是0或者都不等于0时.则返回0 . 如果一个值为0.另一个值不为0时.则返回1