微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.jb51.cc/oracle/207699.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐