分组查询
写的顺序:
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') -- =any 与in作用一样 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;
删除
原文链接:https://www.f2er.com/oracle/207699.html– 删除 delete
– delete from 表名称 where delete from dept where deptno in(50,60);
–持久化:提交commit commit;
–除了DML(数据操作语言),其他都不需要提交事务