赞
踩
数据查询不只是简单地返回数据库中存储的数据,还要根据业务需求对数据进行运算和筛选,以及确定以什么样的形式显示查询结果。
通常情况下数据库中的原始数据并不是我们所需要的,一般需要我们在查询数据的同时对数据进行运算和转换。语法:
select <表达式1>[,<表达式2>...<表达式n>] from <表名>;
示例:将每位员工的底薪增加500元
- mysql> select empno,ename,sal,sal+500 from emp;
- +-------+--------+------+---------+
- | empno | ename | sal | sal+500 |
- +-------+--------+------+---------+
- | 7369 | smith | 800 | 1300 |
- | 7499 | allen | 1600 | 2100 |
- | 7521 | ward | 1250 | 1750 |
- | 7566 | jones | 2975 | 3475 |
- | 7654 | martin | 1250 | 1750 |
- | 7698 | blake | 2850 | 3350 |
- | 7782 | clark | 2450 | 2950 |
- | 7788 | scott | 3000 | 3500 |
- | 7839 | king | 5000 | 5500 |
- | 7844 | turner | 1500 | 2000 |
- | 7876 | adams | 1100 | 1600 |
- | 7900 | james | 950 | 1450 |
- | 7902 | ford | 3000 | 3500 |
- | 7934 | miller | 1300 | 1800 |
- +-------+--------+------+---------+
在MySQL中使用运算符进行运算,MySQL支持四种运算符,分别是算术运算符、比较运算符、逻辑运算符、位运算符。
SQL中最基本的运算符,对数值型数据执行算术运算。
SQL中最常用的运算符,用于比较或判断。
等号“=”用来判断数字、字符串和表达式是否相等。如果相等,返回值为 1,否则返回值为 0。
用于比较两个表达式的值。当两个表达式彼此相等或都等于空值时,比较结果为1;若其中一个是空值或者都是非空值但不相等时,则为0,不会出现NULL 的情况。
用于数字、字符串、表达式不相等的判断。如果不相等,返回值为1;否则返回值为0,不能用于判断空值(NULL)。
用于检验一个值是否为NULL,如果为NULL,返回值为1;否则返回值为0。
用于检验一个值是否为非NULL,如果为非NULL,返回值为1;否则返回值为0。
语法:
<表达式> BETWEEN <最小值> AND <最大值>
若<表达式>大于或等于<最小值>,且小于或等于<最大值>,则 BETWEEN 的返回值为 1;否则返回值为 0。
语法:
LEAST(<值1>,<值2>,…,<值n>)
存在两个或多个参数的情况下,返回最小值。若任意一个自变量为 NULL,则 LEAST() 的返回值为 NULL。
语法:
GREATEST (<值1>,<值2>,…,<值n>)
存在两个或多个参数的情况下,返回最大值。若任意一个自变量为 NULL,则 GREATEST() 的返回值为 NULL。
用来判断操作数是否为 IN 列表中的一个值。如果是,返回值为 1;否则返回值为 0,不能用于判断空值(NULL)。
用来判断表达式是否为 IN 列表中的一个值。如果不是,返回值为 1;否则返回值为 0,不能用于判断空值(NULL)。
在SQL中,所有逻辑运算符求值结果均为1(TRUE)、0(FALSE)和 NULL。
当操作数为 0 时,返回值为 1;当操作数为非零值时,返回值为 0;当操作数为 NULL 时,返回值为 NULL。
当所有操作数均为非零值并且不为 NULL 时,返回值为 1;当一个或多个操作数为 0 时,返回值为 0;其余情况返回值为 NULL。
当两个操作数均为非 NULL 值且任意一个操作数为非零值时,结果为 1,否则结果为 0;当有一个操作数为 NULL 且另一个操作数为非零值时,结果为 1,否则结果为 NULL;当两个操作数均为 NULL 时,所得结果为 NULL。
当任意一个操作数为 NULL 时,返回值为 NULL;对于非 NULL 的操作数,若两个操作数都不是 0 或者都是 0 值,则返回结果为 0;若一个为 0,另一个不为非 0,则返回结果为 1。
用来对二进制字节中的位进行移位或者测试。
将参与运算的两个数据按对应的二进制数逐位进行逻辑或运算。若对应的二进制位有一个或两个为 1,则该位的运算结果为 1,否则为 0。
将参与运算的两个数据按对应的二进制数逐位进行逻辑与运算。若对应的二进制位都为 1,则该位的运算结果为 1,否则为 0。
将参与运算的两个数据按对应的二进制数逐位进行逻辑异或运算。对应的二进制位不同时,对应位的结果才为 1。如果两个对应位都为 0 或者都为 1,则对应位的结果为 0。
使指定的二进制值的所有位都左移指定的位数。左移指定位数之后,左边高位的数值将被移出并丢弃,右边低位空出的位置用 0 补齐。
语法:
表达式<<n
使指定的二进制值的所有位都右移指定的位数。右移指定位数之后,右边高位的数值将被移出并丢弃,左边低位空出的位置用 0 补齐。语法:
表达式>>n
将参与运算的数据按对应的二进制数逐位反转,即 1 取反后变 0,0 取反后变为 1。
运算符的优先级决定了不同的运算符在表达式中计算的先后顺序。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。