Oracle中的分组查询与DML

简介: Oracle中的分组查询与DML相关知识点介绍

1、Group by

进行分组查询, group by 子句可以将数据分为若干个组

1.1 分组查询

注意: 出现在 SELECT 子句中的字段,如果不是包含在多行函数中,那么该字段必须同时在 GROUP BY 子句中出现。

a) 统计每个部门的编号, 最高工资和最低工资

select deptno, max(sal), min(sal) from emp group by deptno order by deptno; 

1.2 带 where 的分组查询

注意: group by 子句要写到 where 子句的后面

a) 查询每个部门的人数和平均工资, 排除 10 部门

select deptno, count(*), avg(sal) from emp where 
deptno<>10 group by deptno order by deptno; 

1.3 带 having 的分组查询

注意:
where 子句中不允许使用分组函数, 分组函数用于分组前过滤
having 用于过滤分组后的条件
a) 查询每个部门的总工资和平均工资, 排除平均工资低于
1600 的部门
select deptno, sum(sal), avg(sal) from emp group by 
deptno having avg(sal)>=1600 order by deptno; 

1.4 select 语句的执行顺序

分组查询时相关关键词的顺序:
from-->where-->group by-->select-->having-->order by

a) 在 emp 表中,列出工资最小值小于 2000 的职位

select job, min(sal) from emp group by job having min(sal)<2000;

b)列出平均工资大于 1200 元的部门和工作搭配组合

select deptno, job, avg(sal) from emp group by deptno,job having avg(sal)>1200 order by deptno;

2、DML(数据库操作语言)

2.1 复制一个测试表格

a) 复制 emp 表格, 命名为 tmp

create table temp as (select * from emp); 

b) 赋值 emp 表格的表结构, 不复制数据

create table temp2 as (select * from emp where 1=2); 

2.2 新增(insert into)

a) 语法

insert into 表名 [(列 1, 列 2, ...)] values (值 1, 值 2, ...);

b) 向 temp2 表格插入一条数据

insert into temp2 (empno, ename, job, mgr, hiredate, 
sal, comm, deptno) values (1234, '小明', '学生', 1111, 
to_date('2008-8-8', 'yyyy-mm-dd'), 3000, 200, 10); 

a) 当表格的每一列都要插入数据时, 可以省略列名不写. 需
要保证值的顺序和列的顺序一致.

insert into temp2 (empno, ename, job, mgr, hiredate, 
sal, comm, deptno) values (1234, '小明', '学生', 1111, 
to_date('2008-8-8', 'yyyy-mm-dd'), 3000, 200, 10); 

b) 向表格插入一行数据, 只备注编号和姓名

insert into temp2 (empno, ename) values (1236, '小李'); 

2.3 修改(update)

a) 语法

update 表名 set 列 1=值 1, 列 2=值 2...

b) 将 10 部门员工的工资调高 10%.

update temp2 set sal=sal*1.1 where deptno=10; 

2.4 删除(delete)
a) 语法

delete [from] 表名 [where 条件];

b) 删除编号为 1234 的员工信息

delete from temp2 where empno=1234;







相关文章
|
6月前
|
SQL Oracle 关系型数据库
Oracle查询优化-查询只包含数字或字母的数据
【2月更文挑战第4天】【2月更文挑战第10篇】查询只包含数字或字母的数据
793 1
|
存储 Oracle 关系型数据库
Oracle 代码异常查询(五)
Oracle 代码异常查询
318 0
|
4月前
|
SQL Oracle 关系型数据库
关系型数据库Oracle并行查询
【7月更文挑战第12天】
109 15
|
4月前
|
Oracle 关系型数据库 数据处理
|
4月前
|
SQL 监控 Oracle
|
4月前
|
SQL 监控 Oracle
|
6月前
|
SQL Oracle 关系型数据库
JAVAEE框架数据库技术之12_oracle常用函数和高级查询子查询
JAVAEE框架数据库技术之12_oracle常用函数和高级查询子查询
112 0
JAVAEE框架数据库技术之12_oracle常用函数和高级查询子查询
|
6月前
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之在 DataWorks 中,使用Oracle作为数据源进行数据映射和查询,如何更改数据源为MaxCompute或其他类型
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
74 1
|
SQL Oracle 关系型数据库
Oracle 代码异常查询(九)
Oracle 代码异常查询
399 0
|
6月前
|
SQL Oracle 关系型数据库
Oracle系列之八:SQL查询
Oracle系列之八:SQL查询

推荐镜像

更多