您现在的位置是:网站首页> 编程资料编程资料
mysql中的四大运算符种类实例汇总(20多项) _Mysql_
2023-05-26
334人已围观
简介 mysql中的四大运算符种类实例汇总(20多项) _Mysql_
运用运算法有什么好处呢?
运用运算符可以更加灵活的使用表中的数据,我们可以通过使用运算符来解决我们的很多问题,大大提高效率。
什么是运算符
运算符是告诉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的查询条件子句中使用,用来查询满足指定条件的记录。

等于运算符(=)
如果相等,返回值为1,否则返回值为0;
mysql> select 1=0, '2'=2, 2=2, '0.01'=0, 'a'='a', (1+5)=(8-2), NULL=NULL; +-----+-------+-----+----------+---------+-------------+-----------+ | 1=0 | '2'=2 | 2=2 | '0.01'=0 | 'a'='a' | (1+5)=(8-2) | NULL=NULL | +-----+-------+-----+----------+---------+-------------+-----------+ | 0 | 1 | 1 | 0 | 1 | 1 | NULL | +-----+-------+-----+----------+---------+-------------+-----------+ 1 row in set (0.00 sec) mysql>
从结果可以看到哈,在进行判断时,2=2和'2'=2的返回值是相同的,都是1,这是为啥呢,是因为在进行判断时,mysql自动进行了转换,把字符2转换成了数字2;'a'='a'是相同的字符比较,因此返回值为1;表达式的话就因为等号(=)两边计算结果一致,所以返回值是1,由于(=)不能用于空值NULL的判断,因此返回值为NULL。
所以数值比较时有以下规则:
- 若有一个或者两个参数为
NULL,则比较运算的结果为NULL; - 若容一个比较运算中的两个参数都是字符串,则按照字符串进行比较;
- 若两个参数均为整数的话,则按照整数进行比较;
- 若用字符串和数字进行相等判断,则
mysql自动可以将字符串转换为数字。
安全等于运算符(<=>)
mysql中的安全等于运算符和等于运算符类似,不过呢,安全等于运算符可以用来判断NULL值。在两个操作数均为NULL时,其返回值为1,而不是直接返回NULL;反之,当一个操作数为NULL,其返回值为0,而也不是NULL。
mysql> select 1<=>0, '2'<=>2, 2<=>2, '0.01'<=>0, 'a'<=>'a', (1+5)<=>(8-2), NULL<=>NULL, 3<=>NULL; +-------+---------+-------+------------+-----------+---------------+-------------+----------+ | 1<=>0 | '2'<=>2 | 2<=>2 | '0.01'<=>0 | 'a'<=>'a' | (1+5)<=>(8-2) | NULL<=>NULL | 3<=>NULL | +-------+---------+-------+------------+-----------+---------------+-------------+----------+ | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | +-------+---------+-------+------------+-----------+---------------+-------------+----------+ 1 row in set (0.00 sec) mysql>
不等于运算符(<>或者!=)
'<>'或者'!='用于判断数字、字符串、表达式不相等的判断;如果不相等,返回值为1;否则返回值为0;
注意:
这两个运算符不能用于判断空值
NULL。
mysql> select 'goot'<>'good', 'good'!='good', 1<>2, 4!=4, 5.5!=5, (9-3)!=(9-5), NULL<>NULL; +----------------+----------------+------+------+--------+--------------+------------+ | 'goot'<>'good' | 'good'!='good' | 1<>2 | 4!=4 | 5.5!=5 | (9-3)!=(9-5) | NULL<>NULL | +----------------+----------------+------+------+--------+--------------+------------+ | 1 | 0 | 1 | 0 | 1 | 1 | NULL | +----------------+----------------+------+------+--------+--------------+------------+ 1 row in set (0.00 sec) mysql>
小于等于运算符(<=)
用来判断左边的操作数是否小于等于右边的操作数。
如果小于等于,返回值为1,否则返回值为0。同样的,<=不能用于判断空值NULL。
mysql> select 'good'<='good', 'good'<='goood', 'good'<='god', 1<=2, 3<=2, (4+1)<=(9-8), NULL<=NULL; +----------------+-----------------+---------------+------+------+--------------+------------+ | 'good'<='good' | 'good'<='goood' | 'good'<='god' | 1<=2 | 3<=2 | (4+1)<=(9-8) | NULL<=NULL | +----------------+-----------------+---------------+------+------+--------------+------------+ | 1 | 1 | 0 | 1 | 0 | 0 | NULL | +----------------+-----------------+---------------+------+------+--------------+------------+ 1 row in set (0.00 sec) mysql>
小于运算符(<)
用来判断左边的操作数是否小于右边的操作数;
如果小于,返回值为1,否则返回值为0。<不能用于判断空值NULL。
mysql> select 'good'<'good', 'good'<'goodd', 'good'<'god', 1<2, 2<2, 5<3, NULL
大于等于运算符(>=)
用来判断左边的操作数是否大于等于右边的操作数。
如果大于等于,返回值为1;否则返回值为0。不能用于判断空值NULL。
mysql> select 'good'>='good', 'good'>='goodd', 'good'>='god', 1>=2, 2>=1, (5+5)>=(6-2), NULL>=NULL; +----------------+-----------------+---------------+------+------+--------------+------------+ | 'good'>='good' | 'good'>='goodd' | 'good'>=
点击排行
本栏推荐
