加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

MySQL运算符

发布时间:2023-01-08 14:01:16 所属栏目:MsSql教程 来源:互联网
导读: MySQL常用运算符概述
在 MySQL 中,可以通过运算符来获取表结构以外的另一种数据。
MySQL 所提供的运算符可以直接对表中数据或字段进行运算,进而实现用户的新需求,增强了 MySQL 的功能。

MySQL常用运算符概述

在 MySQL 中,可以通过运算符来获取表结构以外的另一种数据。

MySQL 所提供的运算符可以直接对表中数据或字段进行运算,进而实现用户的新需求,增强了 MySQL 的功能。

每种数据库都支持 SQL 语句mssql 运算符,但是它们也都有各自支持的运算符。我们除了需要学会使用 SQL 语句外,还需要掌握各种运算符。

MySQL 支持 4 种运算符,分别是:

算术运算符

算术运算符是 SQL 中最基本的运算符,MySQL 支持的运算符包括加、减、乘、除和取余运算,它们是最常用、最简单的一类运算符。

下表列出了这些运算符的作用和使用方法:

(1) + :加法运算

(2) - :减法运算

(3) * :乘法运算

(4) / :除法运算,返回商

(5) % :求余运算,返回余数

比较运算符

当使用 SELECT 语句进行查询时,MYSQL 允许用户对表达式的左边操作数和右边操作数进行比较,比较结果为真,则返回 1,为假则返回 0,比较结果不确定则返回 NULL。MySQL 支持的比较运算符如下表所示

比较运算符可以用于比较数字、字符串和表达式的值。注意,字符串的比较是不区分大小写的。

等于运算(=)

= 运算符用来比较两边的操作数是否相等,相等的话返回 1,不相等的话返回 0。具体的语法规则如下:

注意:NULL 不能用于 = 比较。

安全等于运算符()

操作符和 = 操作符类似,不过 可以用来判断 NULL 值,具体语法规则为:

不等于运算符( 或者 !=)

与 = 的作用相反, 和 != 用于判断数字、字符串、表达式是否不相等。对于 和 !=,如果两侧操作数不相等,返回值为 1,否则返回值为 0;如果两侧操作数有一个是 NULL,那么返回值也是 NULL。

两个不等于运算符作用相同mssql 空值,都可以进行数字、字符串、表达式的比较判断。

小于等于运算符()

> 是大于运算符,用来判断左边的操作数是否大于右边的操作数;如果大于,返回值为 1,否则返回值为 0;如果两侧操作数有一个是 NULL,那么返回值也是 NULL。

由结果可以看到:

IS NULL(ISNULL) 和 IS NOT NULL 运算符

IS NULL 或 ISNULL 运算符用来检测一个值是否为 NULL,如果为 NULL,返回值为 1,否则返回值为 0。ISNULL 可以认为是 IS NULL 的简写,去掉了一个空格而已,两者的作用和用法都是完全相同的。

IS NOT NULL 运算符用来检测一个值是否为非 NULL,如果是非 NULL,返回值为 1,否则返回值为 0。

IS NULL 和 ISNULL 的作用相同,只是写法略有不同。ISNULL 和 IS NOT NULL 的返回值正好相反。

BETWEEN AND 运算符

BETWEEN AND 运算符用来判断表达式的值是否位于两个数之间,或者说是否位于某个范围内,它的语法格式如下:

expr BETWEEN min AND max

expr 表示要判断的表达式,min 表示最小值,max 表示最大值。如果 expr 大于等于 min 并且小于等于 max,那么返回值为 1,否则返回值为 0。

总结

使用比较运算符时需要注意空值 NULL,大部分比较运算符遇到 NULL 时也会返回 NULL。

逻辑运算符

逻辑运算符又称为布尔运算符,用来确定表达式的真和假。包括与、或、非和异或、等逻辑运算符。其返回值为布尔型,真值(1 或 true)和假值(0 或 false)。MySQL中支持的逻辑运算符如下表所示

NOT 或 ! 逻辑非

AND 逻辑与

OR 逻辑或

XOR 逻辑异或

逻辑非运算(NOT 或者 !)

NOT和!都是逻辑非运算符,返回和操作数相反的结果,具体语法规则为:

NOT 1+1和! 1+1的返回值不同,这是因为 NOT 与 ! 的优先级不同:

注意:在使用运算符运算时,一定要注意运算符的优先级,如果不能确定计算顺序,最好使用括号,以保证运算结果的正确。

逻辑与运算符(AND 或者 &&)

AND 和 && 都是逻辑与运算符,具体语法规则为:

AND 和 && 的作用相同。1 AND-1中没有 0 或者 NULL,所以返回值为 1;1 AND 0中有操作数 0,所以返回值为 0;1 AND NULL虽然有 NULL,所以返回值为 NULL。

注意:AND 运算符可以有多个操作数,但要注意多个操作数运算时,AND 两边一定要使用空格隔开,不然会影响结果的正确性。

逻辑或运算符(OR 或者 ||)

OR 和 || 都是逻辑或运算符,具体语法规则为:

OR 和 || 的作用相同。下面是对各个结果的解析:

异或运算(XOR 运算符)

XOR 表示逻辑异或,具体语法规则为:

1 XOR 1和0 XOR 0中运算符两边的操作数都为非零值,或者都是零值,因此返回 0;

1 XOR 0中两边的操作数,一个为 0 值,另一个为非 0 值,所以返回值为 1;

1 XOR NULL中有一个操作数为 NULL,所以返回值为 NULL;

1 XOR 1 XOR 1中有多个操作数,运算符相同,因此运算顺序从左到右依次计算,1 XOR 1的结果为 0,再与 1 进行异或运算,所以返回值为 1。

提示:a XOR b 的计算等同于 (a AND (NOT b))或者 ((NOT a) AND b)。

位运算符

所谓位运算,就是按照内存中的比特位(Bit)进行操作,这是计算机能够支持的最小单位的运算。程序中所有的数据在内存中都是以二进制形式存储的,位运算就是对这些二进制数据进行操作。

位运算一般用于操作整数,对整数进行位运算才有实际的意义。整数在内存中是以补码形式存储的,正数的补码形式和原码形式相同,而负数的补码形式和它的原码形式是不一样的,这一点大家要特别注意;这意味着,对负数进行位运算时,操作的是它的补码,而不是它的原码。

MySQL 中的整数字面量(常量整数,也就是直接书写出来的整数)默认以 8 个字节(Byte)来表示,也就是 64 位(Bit)

| 位或

& 位与

^ 位异或

SELECT 10 | 15 , 9 | 4 | 2 ;

±--------±----------+

| 10 | 15 | 9 | 4 | 2 | # 10的二进制为1010,15的二进制为1111,按位或运算之后结果为1111,即15

±--------±----------+ # 9的二进制为1001,4的热禁止为0100,2的二进制为0010,按位或运算之后结果为1111,即15

| 15 | 15 |

±--------±----------+

2、位与运算符 ( & ) :对应的二进制位都为 1 ,则该位的运算结果为 1 ,否则为 0

mysql> SELECT 10 & 15 , 9 & 4 & 2 ;

±--------±----------+

| 10 & 15 | 9 & 4 & 2 |

±--------±----------+

| 10 | 0 |

±--------±----------+

3、位异或运算符 ( ^ ) :对应的二进制位不相同时,结果为 1 ,否则为 0

mysql> SELECT 10 ^ 15 , 1 ^ 0 , 1 ^ 1 ;

±--------±------±------+

| 10 ^ 15 | 1 ^ 0 | 1 ^ 1 |

±--------±------±------+

| 5 | 1 | 0 |

±--------±------±------+

4、位左移运算符 ( SELECT 1 ) :使指定的二进制位都右移指定的位数,右移指定位之后,右边低位的数值将被移出并丢弃,左边高位空出的职位用 0 补齐

mysql> SELECT 1>>1 , 16>>2 ;

±-----±------+

| 1>>1 | 16>>2 |

±-----±------+

| 0 | 4 |

±-----±------+

6、位取反运算符 ( ~ ) :将对应的二进制数逐位反转,即 1 取反后变 0 , 0 取反后变 1

mysql> SELECT 5 & ~1 ;

±-------+

| 5 & ~1 |

±-------+

| 4 |

±-------+

MySQL运算符的优先级

运算符的优先级决定了不同的运算符在表达式中计算的先后顺序,下表列出了 MySQL 中的各类运算符及其优先级。

=(赋值运算)、:=II、ORXOR&&、ANDNOTBETWEEN、CASE、WHEN、THEN、ELSE=(比较运算)、、>=、>、

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!