1、dual表
Oracle中的dual表能帮我们做表达式计算。
-------------------------------------------------------------------------------
--dual表
select * from dual;
desc dual;
-------------------------------------------------------------------------------
2、算数运算符
+
加法-
减法*
乘法/
除法
提示:
Oracle数据库中没有单独的取余运算符,可以用mod(n,m)单行函数实现。
-------------------------------------------------------------------------------
--"+"加法运算符
select EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,300 as 涨薪,SAL + 300 最新工资 from emp;
select 3 + 2 as c from dual;
-------------------------------------------------------------------------------
--"-"减法运算符
select EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,300 as 降薪,SAL - 300 最新工资 from emp;
select 3 - 2 as c from dual;
-------------------------------------------------------------------------------
--“*”乘法运算符
select EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,12 as 月数,SAL * 12 年薪 from emp;
select 3 * 2 as c from dual;
-------------------------------------------------------------------------------
--“/”除法运算符
select EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,30 as 天数,SAL / 30 日薪 from emp;
select 3 / 2 as c from dual;
-------------------------------------------------------------------------------
3、运算符优先级
- 乘除的优先级高于加减。
- 同一优先级运算符从左向右执行。
- 括号内的运算优先执行。
-------------------------------------------------------------------------------
--运算符优先级:乘除优先加减
select 3 * 2 / 2 + 1 -4 as val from dual;
-------------------------------------------------------------------------------
--运算符优先级:同一优先级运算符从左向右执行
select 1 - 4 + 3 * 2 / 2 as val from dual;
-------------------------------------------------------------------------------
--运算符优先级:括号内的运算先执行
select 3 * 2 / (2 + 1) -4 as val from dual;
select 1 - (4 + 3) * 2 / 2 as val from dual;
-------------------------------------------------------------------------------
4、空值null
空值null
是无效的,未指定的,未知的或不可预知的值。空值null
既不是空格也不是0,其值只为null
。
注意:
包含空值的数学表达式的值都为空值。
-------------------------------------------------------------------------------
--查询所有员工
select * from emp;
-------------------------------------------------------------------------------
--空值数学运算
select EMPNO ,COMM, COMM + 300 from EMP;
select EMPNO ,COMM, COMM - 300 from EMP;
select EMPNO ,COMM, COMM * 300 from EMP;
select EMPNO ,COMM, COMM / 300 from EMP;
-------------------------------------------------------------------------------
--测试
SELECT NULL FROM dual;
SELECT '' FROM dual;--''代表NUll,不是空字符串;
SELECT ' ' FROM dual;
SELECT 0 from dual;
-------------------------------------------------------------------------------
收费部分