oracle-11g
DeveloperHonor
分享技术
展开
-
Oracle之SQL——单表查询
**1、查询表中的所有行和列使用select * from table_name可以获取所有的行和列 ** **2、从表中检索部分行和列** 如查看公司工资大于1500的人员的信息: **3、查找空值** 查询某一列为空的值可以使用is null或is not null,在实际的操作中,null是不能用“=”运算符来替代的。 如下操作: 查找comm(提成)为Null的员工信息原创 2017-07-06 17:30:27 · 460 阅读 · 0 评论 -
Oracle中的日期运算
**一、加减日、月、年** 在Oracle中,date类型可以直接到加减天数,而加减月份需要使用add_months函数 示例:SQL> select sysdate as sys_date,---------系统日期 2 sysdate - 2 as "date-2-days",--------减两天 3 sysdate + 2 as "date+2-days",--------加原创 2017-10-03 00:23:57 · 1448 阅读 · 0 评论 -
SQL查询之返回最值所在的行数据
需求,要求返回最高工资所在行的员工名称SQL> select deptno,empno, 2 (select max(b.ename) from emp b where b.sal=a.max_sal) as max_sal_name, 3 ename,sal 4 from 5 (select deptno,empno,max(sal) over(partition by d原创 2017-10-01 02:05:32 · 3128 阅读 · 0 评论 -
SQL语句之计算次数出现最多的值
需求,计算20号部门员工工资出现的次数 使用count() 函数:SQL> select sal,count(*) time from emp where deptno=20 group by sal; SAL TIME---------- ---------- 2975 1 1100 1 3000 2原创 2017-09-29 19:32:56 · 13957 阅读 · 0 评论 -
SQL语句之分组排名
现在有这样一个需求,需要查找出emp表中各部门员工工资排名前三的员工,员工号和工资。SQL> select ename,empno,deptno,sal, 2 row_number() over(partition by deptno order by sal desc) as row_number, 3 rank() over(partition by deptno order by原创 2017-09-29 00:04:08 · 2705 阅读 · 0 评论 -
SQL之更改累积和的值
首先创建一个示例的视图:SQL> create or replace view test_sum(id ,amt,trx) 2 as 3 select 1,100,'PR' from dual union all 4 select 2,100,'PR' from dual union all 5 select 3,50,'PY' from dual union all 6原创 2017-09-27 23:41:37 · 738 阅读 · 0 评论 -
SQL之累计和及累计差详解
在业务需要中,尤其是在日常的结算中,会进行累积和和累计差的求值,那么遇到该类业务该如何处理呢?首先看一下累积和的问题。 在Oracle中,有表emp表,记录了员工的详细信息,其中有sal一列,那么 需求来了, 需求, 我们要累计各个部门员工总工资的姓名(ename)和员工编号(empno) 在Oracle中,对于此类问题oracle提供了分析函数。 累计求和的当然需要使用到sum函数。首原创 2017-09-26 23:38:06 · 4735 阅读 · 0 评论 -
Oracle函数listagg根据表中的行创建分隔列表
在Oracle表中,有一列为ename,现在的需求,是将不同部门的合计工资显示,并将ename显示在同一行。用+号连接。SQL> select 2 deptno, 3 sum(sal), 4 listagg(ename,'+') within group(order by empno) as ename 5 from emp 6 group by deptno 7原创 2017-09-25 17:48:00 · 600 阅读 · 0 评论 -
GROUP BY 在聚集函数中遇到Null值的小问题解析
Null值属于任何类型,它和空字符不一样,空字符它是属于varchar2的数据类型,但是null可以是任何数据类型,因此在处理空值的时候特别要小心。示例:在oracle中的模版示例中有emp表,我们知道有一列deptno列,但是其中没有任何一个员工,因此对它进行group by 的时候,如果不加group by 的时候, 它会返回一行数据,但是如果加了结果就不是预想的那样了。来做一个演示: 统计d原创 2017-09-25 16:38:35 · 21639 阅读 · 0 评论 -
SQL语句之多表操作
在讲多表查询前,先做一个与多表查询无关的需求。 假设在B表中有这样一列id+------+| id |+------+| 1 || 2 || 1 || 3 || 4 || 5 |+------+请根据B表查询为id列标明序号,并显示如下:+------+----------+| id | sequence |+------+----原创 2017-09-22 23:41:39 · 1834 阅读 · 0 评论 -
Oracle之SQL子查询
## 子查询 ##单行子查询:返回一行一列数据 多行子查询:返回多行单列数据 多列子查询:返回多列数据**单行子查询** 只返回一行一列数据的子查询被称为单行子查询。单行子查询语句可以使用在主句的where字句中、having 子句中和from子句中1、where子句中是使用子查询 在teachers表中,查询工资低于平均工资的所有教师。 在students表中,查询与王天仪同专业的所原创 2017-08-28 17:29:08 · 1089 阅读 · 0 评论 -
ORACLE之SQL——多表操作
**1、并集、交集、差集的使用** 1、并集的使用union all 和union union all的使用 union all 对于多个结果集进行并集操作,包括重复的行,其结果不进行自动排序。 注意,在使用union all操作的时候,列所对应的数据类型一定要一致,不然会引发ORA-01790错误,表达式必须与表达式有一致的相同的数据类型。因此在上面示例中,使用null 来替代上一表达式的原创 2017-07-08 12:18:39 · 747 阅读 · 0 评论 -
ORACLE之SQL——排序
**1、给查询结果进行降序** 按照员工的雇佣日期给员工进行降序查询 按照员工的编号进行升序查询 提示,对于升序或者降序操作查询可以通过所查询的位置号进行操作,如以下: 对员工的员工号进行降序查询可以这样写: 上面的写法在程序开发中会很有用,因为它指定的是位置,如果需要改变有可能会忘记改order by 后面的条件,给开发带来不少的麻烦。 练习:查询10号部门员工的员工编号,原创 2017-07-07 15:34:38 · 16310 阅读 · 0 评论 -
Recovering Tables Using Oracle Flashback Table
一、Using Flashback Drop and Managing the Recycle Bin当你删除了一张表,数据库并没有立即移除该表所占用的空间。 数据库重命名这张表并且将这张表所有关联的对象放置在了recycle bin中。在recyclebin中,万一表被误删除了,可以在后面恢复。 这种特性叫做flashback drop。并且FLASHBACK TABLE 语句常常被用来...原创 2018-04-13 23:50:27 · 261 阅读 · 0 评论