当前位置:   article > 正文

mysql 位运算_MySQL数据运算

mysql 按位计算

数据查询不只是简单地返回数据库中存储的数据,还要根据业务需求对数据进行运算和筛选,以及确定以什么样的形式显示查询结果。

计算字段

通常情况下数据库中的原始数据并不是我们所需要的,一般需要我们在查询数据的同时对数据进行运算和转换。语法

select <表达式1>[,<表达式2>...<表达式n>] from <表名>;

示例:将每位员工的底薪增加500元

  1. mysql> select empno,ename,sal,sal+500 from emp;
  2. +-------+--------+------+---------+
  3. | empno | ename | sal | sal+500 |
  4. +-------+--------+------+---------+
  5. | 7369 | smith | 800 | 1300 |
  6. | 7499 | allen | 1600 | 2100 |
  7. | 7521 | ward | 1250 | 1750 |
  8. | 7566 | jones | 2975 | 3475 |
  9. | 7654 | martin | 1250 | 1750 |
  10. | 7698 | blake | 2850 | 3350 |
  11. | 7782 | clark | 2450 | 2950 |
  12. | 7788 | scott | 3000 | 3500 |
  13. | 7839 | king | 5000 | 5500 |
  14. | 7844 | turner | 1500 | 2000 |
  15. | 7876 | adams | 1100 | 1600 |
  16. | 7900 | james | 950 | 1450 |
  17. | 7902 | ford | 3000 | 3500 |
  18. | 7934 | miller | 1300 | 1800 |
  19. +-------+--------+------+---------+

运算符

在MySQL中使用运算符进行运算,MySQL支持四种运算符,分别是算术运算符、比较运算符、逻辑运算符、位运算符。

算术运算符

SQL中最基本的运算符,对数值型数据执行算术运算。

4960a8d1a7071b396a9ac380174838d9.png

比较运算符

SQL中最常用的运算符,用于比较或判断。

654b28b428c94ce2a65471145336b71d.png

等于运算符“=”

等号“=”用来判断数字、字符串和表达式是否相等。如果相等,返回值为 1,否则返回值为 0。

  • 若有一个或两个参数为NULL,则比较运算的结果为NULL。
  • 若一个字符串和数字进行相等判断,则 MySQL 可以自动将字符串转换成数字。

安全等于运算符“<=>”

用于比较两个表达式的值。当两个表达式彼此相等或都等于空值时,比较结果为1;若其中一个是空值或者都是非空值但不相等时,则为0,不会出现NULL 的情况。

不等于运算符“<>”或者“!=”

用于数字、字符串、表达式不相等的判断。如果不相等,返回值为1;否则返回值为0,不能用于判断空值(NULL)。

IS NULL(或者 ISNULL)

用于检验一个值是否为NULL,如果为NULL,返回值为1;否则返回值为0。

IS NOT NULL

用于检验一个值是否为非NULL,如果为非NULL,返回值为1;否则返回值为0。

BETWWEN AND

语法:

<表达式> BETWEEN <最小值> AND <最大值>

若<表达式>大于或等于<最小值>,且小于或等于<最大值>,则 BETWEEN 的返回值为 1;否则返回值为 0。

LEAST

语法

LEAST(<1>,<2>,…,<值n>)

存在两个或多个参数的情况下,返回最小值。若任意一个自变量为 NULL,则 LEAST() 的返回值为 NULL。

GREATEST

语法

GREATEST (<1>,<2>,…,<值n>)

存在两个或多个参数的情况下,返回最大值。若任意一个自变量为 NULL,则 GREATEST() 的返回值为 NULL。

IN

用来判断操作数是否为 IN 列表中的一个值。如果是,返回值为 1;否则返回值为 0,不能用于判断空值(NULL)。

NOT IN

用来判断表达式是否为 IN 列表中的一个值。如果不是,返回值为 1;否则返回值为 0,不能用于判断空值(NULL)。

逻辑运算符

在SQL中,所有逻辑运算符求值结果均为1(TRUE)、0(FALSE)和 NULL。

307194231f288dc9872c738587ec3e53.png

NOT 或者 !

当操作数为 0 时,返回值为 1;当操作数为非零值时,返回值为 0;当操作数为 NULL 时,返回值为 NULL。

AND 或者 &&

当所有操作数均为非零值并且不为 NULL 时,返回值为 1;当一个或多个操作数为 0 时,返回值为 0;其余情况返回值为 NULL。

OR 或者 ||

当两个操作数均为非 NULL 值且任意一个操作数为非零值时,结果为 1,否则结果为 0;当有一个操作数为 NULL 且另一个操作数为非零值时,结果为 1,否则结果为 NULL;当两个操作数均为 NULL 时,所得结果为 NULL。

XOR

当任意一个操作数为 NULL 时,返回值为 NULL;对于非 NULL 的操作数,若两个操作数都不是 0 或者都是 0 值,则返回结果为 0;若一个为 0,另一个不为非 0,则返回结果为 1。

位运算符

用来对二进制字节中的位进行移位或者测试。

24293a8ae194118e94051b2b5fbce316.png

位或运算符“|”

将参与运算的两个数据按对应的二进制数逐位进行逻辑或运算。若对应的二进制位有一个或两个为 1,则该位的运算结果为 1,否则为 0。

位与运算符“&”

将参与运算的两个数据按对应的二进制数逐位进行逻辑与运算。若对应的二进制位都为 1,则该位的运算结果为 1,否则为 0。

位异或运算符“^”

将参与运算的两个数据按对应的二进制数逐位进行逻辑异或运算。对应的二进制位不同时,对应位的结果才为 1。如果两个对应位都为 0 或者都为 1,则对应位的结果为 0。

位左移运算符“<<”

使指定的二进制值的所有位都左移指定的位数。左移指定位数之后,左边高位的数值将被移出并丢弃,右边低位空出的位置用 0 补齐。

语法:

表达式<<n
  • n 指定值要移位的位数

位右移运算符“>>”

使指定的二进制值的所有位都右移指定的位数。右移指定位数之后,右边高位的数值将被移出并丢弃,左边低位空出的位置用 0 补齐。语法

表达式>>n
  • n 指定值要移位的位数

位取反运算符“~”

将参与运算的数据按对应的二进制数逐位反转,即 1 取反后变 0,0 取反后变为 1。

运算符的优先级

运算符的优先级决定了不同的运算符在表达式中计算的先后顺序。

ef28d9639b8eada95991a3d17b954b27.png
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号