关于oracle自带的表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于oracle自带的表***********************************8
emp:
empno:员工编号;ename:员工名字;job:员工工种;mgr: 上司;hiredate:入职时间;sal:基本工资;comm:补贴;deptno:所属部门编号;
dept:
deptno:部门编号;dname:部门名称;loc:地理位置;
salgrade:
grade:工资等级;losal:最低限额;hisal:最高限额;
dual:
系统自带的一张空表;可用于计算数据:select 2*3 from dual;
**sql_function1**********************************************************
select lower(ename) from emp; 取出的名字全部变成小写。
select ename from emp where lower(ename) like '_a%';取出的名字变成小写后不含字母a
select substr(ename, 2, 3) from emp;从第二个字符截,截取三个字符。
select cha(65) from dual; 将数字转化为字符(显示为a)。
select ascii('A') from dual; 将字符转化为数字。
select round(23.652) from dual; (显示24)
select round(23.652, 2) from dual; (显示23.65)
select round(23.652, -1) from dual; (显示20)
select to_char(sal, '$99,999.9999')from emp;强制转化为指定的格式。
select to_char(sal, 'L0000.0000')from emp;同上。
select to_char(hiredate, YYYY-MM-DD HH:MI:SS) from emp; 对时间格式显示处理。
select to_char(sysdate, YYYY-MM-DD HH:MI:SS) from emp; 12进制。
select to_char(sysdate, YYYY-MM-DD HH24:MI:SS) from emp; 24进制。
***********************************************************************
**sql_function2*******************************************************
select ename, hiredate from emp where hiredate > to_date('1981-2-20' 12:34:52, 'YYYY-MM-DD HH24:MI:SS'); 函数to_date 将字符转化为时间格式。
select sal from emp where sal > to_number('$1,250.00', '$9,999.99'); 函数to_number将字符转化为数字格式,以作比较。
select ename sal*12 + nvl(comm 0) from emp; 函数nvl作用为当comm为null的时候当作处理,避免了comm为null给结果带来的不便。
*************************************************************************
**group_function*******************************************************
select max(sal) from emp;输出薪水值最高的。
select min(sal) from emp;输出薪水值最低的。
select avg(sal) from emp;输出平均薪水值。
select to_char(avg(sal),'99999999.99') from emp;按照指定格式输出平均薪水值。
select round(avg(sal),2) from emp; 精确到小数点后面2位。
select sum(sal) from emp; 输出薪水值的总和。
select count(*) from emp;求出一共有多少条记录。
select count(*) from emp where deptno = 10; 求部门为10号的记录条数。
select count(ename) from emp; 求一共有几个名字。
select count(comm) from emp; 求非空comm的记录条数。
select count(deptno) from emp;
select count(distinct deptno) from emp;
*************************************************************************
**group_by*************************************************************
select deptno, avg(sal) from emp group by deptno; 将部门薪水平均分组。
select deptno, job, max(sal) from emp group by deptno; 按组合分组。
select ename, max(sal) from emp where sal = (select max(sal) from emp);
select ename max(sal) from emp group by deptno; 这样是错误的。
select deptno max(sal) from emp group by deptno; 这样可行。
************************************************************************
**having****************************************************************
select avg(sal), deptno from emp group by deptno;
select avg(sal), deptno from emp group by deptno having avg(sal) > 2000; having是对分组进行限制。
1 select avg(sal) 选择
2 from emp 表原
3 where sal > 1200 条件过滤
4 group by deptno 分组
5 having avg(sal) > 1500 对结果进行限制
6 order by avg(sal) desc 对产生的结果进行排序
**********************************************************************