oracle笔记2
更新时间:2024-04-08 14:46:01 阅读量: 综合文库 文档下载
- oracle数据库笔记推荐度:
- 相关推荐
Oracle笔记 第二天
一. 伪列 ( rowid , rownum )
1. 概念 : 数据库表里实际不存在的,无法通过select * 查询到的字段.
2. Rowid : 是一条记录在数据库里的唯一标识 , 是通过对记录所在空间的物理地址计算 得到.
3. Rownum : 数据库服务器会自动为每次出现在查询结果里的记录进行编号,从1开始. --- 请打印表里的前5行数据
Select * from employees where rownum<=5 ; --- 请打印表里的第6到第10行数据
Select * from employees where rownum between 6 and 10; [error]
注意: rownum必须从1开始使用, < <= >=1 =1 between 1 and ...
二. 子查询
1. 子查询结果为单行单列( 一个值 )
--- 请打印工资高于平均工资的员工信息
1) select avg(salary) from employees ; -----> result 2) select * from employees where salary > result ;
3) select * from employees where salary > (select avg(salary) from employees );
--- 请打印各部门工资最高的员工信息
*** 通过为表起别名的形式,可以区分不同的查询
--- 请打印工资不是最低两位的员工信息
--- 按工资进行排名,排名从1开始,工资相同排名相同(如果两人并列第1则没有第2名, 从第三名继续排)
2. 子查询的结果是多行多列( 虚拟表 ) , 针对虚拟表做二次查询
--- 请打印工资最高的五名员工信息
Select * from employees where rownum<=5 order by salary desc ; error
Select * from ( select * from employees order by salary desc) where rownum<=5;
3. 数据分页 ---- 对满足要求的结果数据分段显示 , 需要子查询和rownum配合完成
--- 请打印工资最高的第6到第10位员工信息
数据分页实现步骤:
1) 对数据按要求进行处理
2) 提取前xxx行数据,同时添加一个rn字段(rownum) 3) 根据rn的值提权 第xxx行到 第***行
4. 查询结果是一列多行(多个值) --- 使用在条件判断里时通过in完成 --- 请打印与’Taylor’在同一部门工作的员工信息
1) select department_id from employees where last_name=’Taylor’; 2) select * from employees where department_id in ( result ) ;
三. 表连接
1. 概念
当结果数据来自于多张表时,根据一定的条件将多张表的相关记录合并成一行,显 示给用户.
--- 请打印员工的详细信息,以及他所在的部门名称
2. 表连接的分类 --- 内连接 外连接 自连接 多表连接
1) 内连接 : 根据条件将满足要求的记录合并显示, 连接过程中使用关键字 inner join , 其中inner可以省略 , 连接条件用on给定 , 其他条件继续使用where
--- 请打印60部门的员工详细信息,以及他所在的部门名称 Select e.* , d.*
From employees e inner join departments d On e.department_id = d.department_id Where e.department_id = 60 ;
--- 请打印各部门名称以及部门人数 ( 只打印人数大于2的部门 ) A. 表连接 B.分组 C. Having Select d.department_name , count(*) From employees e join departments d On e.department_id = d.department_id Group by d.department_name Having count(*)>2 ;
2) 外连接 : 可以处理连接条件为null的记录
A. 左外连接 -- [重点] , 以左表为主(记录全部出现), 右表辅助(以空行占位) 使用关键字 left outer join , 其中outer可以省 , 条件用on给定 B. 右外连接 -- 以右表为主 right outer join
C. 全外连接 -- 不分左右,全部显示,谁缺谁补 , full outer join
--- 请打印所有员工的姓名,以及他所在部门的名称 左外:
Select e.last_name,e.department_id,d.department_id,d.department_name From employees e left join departments d On e.department_id = d.department_id ; 右外:
Select e.last_name,e.department_id,d.department_id,d.department_name From departments d right join employees e On e.department_id = d.department_id ; 全外:
Select e.last_name,e.department_id,d.department_id,d.department_name From employees e full join departments d On e.department_id = d.department_id ;
3) 多表连接 --- 语法
--- 请打印所有员工的姓名,所在部门的名称,以及所在的城市 Select e.last_name, d.department_name , lo.city From employees e left join departments d On e.department_id = d.department_id Left join locations lo
On d.location_id = lo.location_id ;
4) 自连接 --- 通过为一张表定义两个别名的方式,模拟表连接查询 --- 请打印员工的姓名 以及 他的上司的姓名
正在阅读:
oracle笔记204-08
七年级体育课堂常规细则01-01
中考数学 微测试系列专题01 实数的有关概念及运算(含解析)新人教版10-29
基于Multisim10的单片机系统仿真设计与研究09-13
管理思维与沟通作业12-26
个人入党申请书范文精编08-02
数控06-21
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 笔记
- oracle