Oracle数据库之——分组查询,子查询及添加,更新,删除

前端之家收集整理的这篇文章主要介绍了Oracle数据库之——分组查询,子查询及添加,更新,删除前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

分组查询


写的顺序:

select...from...where...
group by...having...order
by...

执行顺序:

from...where...group by....
having ... select ...order  by ....

实例练习:

-- existes : 用它来找寻满足一个条件的信息
-- 找寻多表中存在关联关系或不存在关联关系的数据
--查询部门当中没有员工的部门
select d.* from dept d where not EXISTS(select * from emp e where e.deptno=d.deptno)

查询

查询=简单查询+限定查询+多表查询+统计查询的综合体;

多表查询性能差,替代方案:子查询

所谓的子查询指的就是在一个查询之中嵌套了其他的若干查询.

语法:

如果现在的子查询返回的是多行单列数据的话,这个时候就需要使用三种判断符判断了:IN、ANY、ALL。

查询相关操作符

ANY操作符:与每一个内容相匹配,有三种匹配形式:

=ANY:功能与IN操作符是完全一样的;

>ANY:比子查询中返回记录最小的还要大的数据。

<\ANY:比子查询中返回记录的最大的还要小;

实例练习:

select * from emp where sal in(select sal from emp where job='MANAGER') -- =anyin作用一样 select * from emp where sal=any(select sal from emp where job='MANAGER') -- >any 比子查询中返回的最小结果要大 select * from emp where sal>any(select sal from emp where job='MANAGER') -- <any 比子查询中返回的最大结果要小 select * from emp where sal<any(select sal from emp where job='MANAGER') -- >all 比子查询中返回的最大结果还要大 select * from emp where sal>all(select sal from emp where job='MANAGER') -- <all 比子查询中返回的最小结果还要小 select * from emp where sal<all(select sal from emp where job='MANAGER')

DML(数据操作语言)

添加

添加

–insert into 表名称 (字段1,字段2,字段3……) values (值1,值2,值3….)

– 只能添加一次,第二次添加提示错误:违反唯一约束条件

insert into dept (deptno,dname,loc) values (50,’DEVELOP’,’BeiJing’);

– 简写,必须保持顺序跟表的字段顺序一样

insert into dept values(60,’DESIGN’,’ShangHai’);

– 提交事务. 引申一个事务概念:DML(数据操作语言)没有自动提交事务,DDL(数据定义语言)有自动提交事务能力

COMMIT;

更新

– update 更新

– update 表名称 set (字段1=值1,字段2=值2,字段3=值3,……) update dept set loc=’YanTai’ where deptno=50;

–rollback;回滚刚才没有提交的事务的操作

–提交事务:持久化。 COMMIT;

删除

删除 delete

– delete from 表名称 where delete from dept where deptno in(50,60);

–持久化:提交commit commit;

–除了DML(数据操作语言),其他都不需要提交事务

原文链接:https://www.f2er.com/oracle/207699.html

猜你在找的Oracle相关文章