Oracle复杂sql语句和复杂函数的使用
掌握sql语句的执行顺序、能分析复杂sql语句的执行过程
掌握oracle子查询、自连接、行列转换
掌握分析函数、decode函数、select case when的使用
掌握oracle分页、删除重复记录的方法
--sql语句的执行顺序
常见的select、from、where的顺序:
- from 2,where 3.select
完整的select、from、where、group by、having、 order by的执行顺序;
1,from 2,where 3,group by 4,having 5,select 6,order by
--exists的使用
exists用来判断查询所得的结果中,是否有满足条件的记录存在。
--exists的使用,存在不存在判断(true or false),如果判断为真,就取出每一条记录,如果为假就不取任何一条记录。
例如:
Select * from student where exists(select * from address where ZZ=’郑州’);
从select、from、where、三者的先后执行顺序来分析
--删除student表和addressbiao,彻底删除不放入回收站使用purge。
drop table student purge;
drop table address purge;
--重新建立两张表,student和address表。
create table student(sno number (6),birthday date,sname varchar2(10));
insert into student values(1,'11-1月-81','张三');
insert into student values(2,'10-3月-82','李四');
insert into student values(3,'06-1月-83','王五');
insert into student values(4,'26-1月-83','赵六');
create table address(sno number (6),zz varchar2(10));
insert into address values(1,'郑州');
insert into address values(2,'开封');
insert into address values(3,'洛阳');
insert into address values(4,'郑州');
--查询一下student表和address表
select * from student;
select * from address;
--子查询的使用
--找出zz是在郑州的学生中,sno最大的学生的sname。
select sname from student where sno=(select max(sno) from address where zz='郑州');
1631





