《Oracle数据库编程指南》之11-01:算数运算符(Arithmetic Operators)

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;

-------------------------------------------------------------------------------



收费部分

发布了23 篇原创文章 · 获赞 17 · 访问量 2556

猜你喜欢

转载自blog.csdn.net/goldentec/article/details/104727127