Oracle简单使用【一】

来源:互联网 发布:php中的while循环 编辑:程序博客网 时间:2024/05/16 14:15
  • 列的别名:使用双引号括起来,以便在别名中包含空格或者是特殊字符并区分大小写。----As
  • 连接符||:用来连接字符或列,可以用来合成列。例:ename||'_'||job as "Employees"
  • 字符串:日期和字符只能在单引号中出现。
  • 关键字Distinct:查询时删除重复。
  • SQL语句与SQL*PLUS的区别:语言/环境(命令行)、ANSI标准/Oracle特性之一、关键字不能缩写/可以缩写
  • 操作符等于=:不是==,在oracle中赋值操作符是:=
  • between-and(包含边界)、in、like(%、_)、is null
  • 伪表DUAL的使用:可以用来测试函数和表达式
  • 函数使用:单行函数(字符函数、数值函数、转换函数、日期函数、通用函数、条件表达式)
round()、trunc()、mod()、next_day()、TO_CHAR()、、、、、、
       
 SQL> --四舍五入
SQL> select round(45.926,2) 一,round(45.926,1) 二,round(45.926,0) 三,
  2         round(45.926,-1) 四,round(45.926,-2) 五
   3  from dual;

        一         二         三         四         五                          
---------- ---------- ---------- ---------- ----------                          
     45.93       45.9         46         50          0  

SQL> -- timestamp 时间戳
SQL> select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss:ff') from dual;

TO_CHAR(SYSTIMESTAMP,'YYYY-MM                                                   
-----------------------------                                                   
2015-12-23 14:27:21:750000   

SQL> --计算员工的工龄:天  星期 月  年
SQL> select ename,hiredate,(sysdate-hiredate) 天,(sysdate-hiredate)/7 星期,
  2                        (sysdate-hiredate)/30 月,(sysdate-hiredate)/365 年
  3  from emp;

ENAME      HIREDATE               天       星期         月         年           
---------- -------------- ---------- ---------- ---------- ----------           
SMITH      17-12月-80     12789.6055  1827.0865 426.320184 35.0400152           
ALLEN      20-2月 -81     12724.6055 1817.80079 424.153518  34.861933 

SQL> --months_between 相差的月数
SQL> select ename,hiredate,(sysdate-hiredate)/30 一,months_between(sysdate,hiredate) 二
  2  from emp;

ENAME      HIREDATE               一         二                                 
---------- -------------- ---------- ----------                                 
SMITH      17-12月-80     426.320252 420.213147                                 
ALLEN      20-2月 -81     424.153585 418.116373                                 
WARD       22-2月 -81     424.086919 418.051857      

SQL> next_day应用:每个星期一自动备份表中的数据
SQL> 1. 分布式数据库
SQL> 2. 触发器、快照、可传输的表空间

SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss"今天是"day') from dual;

TO_CHAR(SYSDATE,'YYYY-MM-DDHH24:MI                                              
----------------------------------                                              
2015-12-23 14:54:53今天是星期三     

SQL> --查询员工薪水:两位小数,千位符,本地货币代码
SQL> select  to_char(sal,'L9,999.99')  from emp;

TO_CHAR(SAL,'L9,999                                                             
-------------------                                                             
           ¥800.00                                                             
         ¥1,600.00                    

SQL> --通用函数
SQL> --nvl2(a,b,c) 当a=null的时候,返回c;否则返回b
SQL> select sal*12 + nvl2(comm,comm,0) from emp;

日期可以相减但不可以相加

SQL> select sysdate+hiredate from emp;
select sysdate+hiredate from emp
              *
第 1 行出现错误: 
ORA-00975: 不允许日期 + 日期 

条件表达式

SQL> select ename,job,sal 涨前,
  2         case job when 'PRESIDENT' then sal+1000
  3                  when 'MANAGER' then sal+800
  4                  else sal+400
  5          end 涨后
  6  from emp;

SQL> select ename,job,sal 涨前,
  2         decode(job,'PRESIDENT',sal+1000,
  3                    'MANAGER',sal+800,
  4                              sal+400) 涨后
  5  from emp;

0 0
原创粉丝点击