orcal常用函数


SELECT TO_CHAR(sysdate,'YYYY"年"MM"月"fmDD"日" HH24:MI:SS')FROM dual;--月份前带0,获得当前系统时间
SELECT TO_CHAR(sysdate,'YYYY"年"fmMM"月"fmDD"日" HH24:MI:SS')FROM dual;--月份前不带0,获得当前系统时间

 SELECT ename,sal+NVL(comm,0) sal1 FROM emp;--在新表中出现二列,1.enamel。2.sal1.(相当于把sal+NVL(comm,0)重命名为 sal1)。NVL(comm,0) 函数相当于if语句,if(common==null){sal=sal+0}

SELECT ename,sal+NVL(comm,0) sal1,NVL2(comm,sal+comm,sal) sal2 FROM emp;--NVL2(comm,sal+comm,sal) 相当于if(){}else{}语句。if(comm==null){sal=sal+0}lelse{sal=sal+comm}

SELECT ename, sal+NVL(comm,0) sal1,
NVL2(comm,sal+comm,sal) sal2,
DECODE(to_char(hiredate,'MM'),'
01','一月', '02','二月',
'03','三月','04','四月',
'05','五月','06','六月',
'下半年') mon
FROM emp;--选取雇佣时间的日期类型月份改为字符类型的月份,并重命名为mon

SELECT *
FROM
(SELECT emp.* ,
DENSE_RANK( ) OVER (PARTITION BY deptno ORDER BY sal DESC) DENSE_RANK
FROM emp) e
WHERE DENSE_RANK=2;--查询所有的信息,先分组,再排序,添加一列DENSE_RANK,DENSE_RANK若有重复,4 4  5,再取DENSE_RANK=2的列

--注:partition by 相当于group by 

SELECT * FROM
(SELECT emp.* ,rank() OVER (PARTITION BY deptno ORDER BY sal DESC) r_rank
FROM emp) e WHERE r_rank=2;--查询所有的信息,先分组,再排序,添加一列 r_rank,DENSE_RANK若有重复,4 4  6,再取 r_rank=2的列

--注: r_rank不加双引号

SELECT ename "姓名",to_char(ROUND(hiredate,'yyyy'),'YYYY')||'年度'  "入职年度" FROM emp;--\为连接符,

SELECT distinct deptno FROM emp;--distinct是唯一的,取所有与的部门编号

SELECT ename,sal from emp
WHERE sal>(SELECT sal FROM emp WHERE upper(ename)='SMITH');--列出薪金比"SMITH"多的所有雇员

SELECT job AS 工作 , MIN(sal) AS 最低薪金
FROM emp
GROUP BY job
HAVING MIN(sal) >1500;--列出各种工作类别的最低薪金,显示最低薪金大于1500的记录


SELECT ename AS 雇员姓名,dname AS 部门名称
FROM dept,emp
WHERE dept.deptno=emp.deptno
AND upper(emp.job)='CLERK';--列出所有“CLERK”(办事员)的姓名及其部门名称,upper把工作名转化为大写

SELECT *
FROM emp
WHERE hiredate=last_day(hiredate);--找出各月最后一天受雇的所有雇员

CREATE TABLESPACE tp_hrDATAFILE  'd:data p_hr01.dbf' SIZE 60M;--创建表空间示例

SELECT file_name,tablespace_name,bytes,autoextensible FROM dba_data_files
WHERE tablespace_name='TP_HR';--查看表空间

ALTER DATABASE DATAFILE  'f: p_hr01.dbf' RESIZE 20M;--更改数据文件的大小

ALTER TABLESPACE tp_hr ADD DATAFILE  'f: p_hr01.dbf' SIZE 20M autoextend on;--向表空间内添加数据文件

DROP TABLESPACE tp_hr;-- 删除tp_hr表空间

DROP TABLESPACE tp_hr INCLUDING CONTENTS;-- 删除tp_hr表空间,包含内容

insert into emp values(8002,'ton','lCLERK',6000,to_date('1960/2/2','yyyy/mm/dd'),5000,null,20)--插入数据

原文地址:https://www.cnblogs.com/jimorulang/p/5509750.html