自己的Oracle查询练习!

佐佐吉牧 2009-09-04 12:04:59
select * from dept;
select * from emp;

--连接查询连接条件是emp.deptno=dept.deptno
select empno,ename,job sal,emp.deptno,dname,loc
from emp,dept where emp.deptno=dept.deptno;
--外连接运算符为(+)
��--�� 传统的外连接分为左外连接和右外连接两种
--左外连接
select empno,ename,job sal,dept.deptno,dname,loc
from emp,dept where emp.deptno(+)=dept.deptno;

--右外连接
select empno,ename,job sal,emp.deptno,dname,loc
from emp,dept where emp.deptno=dept.deptno(+);
--满外连接(全外连接)
select empno,ename,job sal,emp.deptno,dname,loc
from emp full outer join dept on (emp.deptno=dept.deptno);

--如何查得每个员工及其上司的工号和姓名?
select * from emp;
select emp1.empno, emp1.ename,emp1.job,emp2.ename
from emp emp1,emp emp2 where emp1.mgr=emp2.empno


--会产生笛卡尔集,我们应该避免这种情况
select emp.empno,emp.ename,dept.deptno,dept.dname from
emp,dept;

--自然连接去掉重复列表的等值连接叫做自然连接
select * from dept natural join emp;

--使用using指定连接字段
select * from dept join emp using(deptno)

--子查询(记住,子查询是内层子查询先做后做外层)
--单行子查询可能使用< > = >= <= <> 多行子查询不能这样做
select * from emp;

select * from emp where sal>(
select sal from emp where ename='ALLEN'
)

select * from emp

--返回多值的子查询不能使用< > = >= <= <>但可以用any,all,in,>all <all >any <any
select * from emp where sal > all(
select sal from emp where deptno='30'
)

--查询和SMITH,BLAKE在同一个部门的员工信息

select * from emp where job in (select job from emp where ename ='SMITH' or ename='BLAKE')


--topN查询前5条记录
select * from emp;
select * from emp where rownum<=5

--查询从第6条到第10记录即(分页)
select * from emp where rownum>5 and rownum<=10;--分页错误写法
--高效查询正确写法
select * from (
select rownum num,emp.* from emp where rownum<=10
) where num>5;
...全文
240 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
inthirties 2009-09-05
  • 打赏
  • 举报
回复
做java的也有拿1.5W的,也有那1.5K的。
-无-为- 2009-09-05
  • 打赏
  • 举报
回复
?????????????

[Quote=引用 11 楼 xzjian2009 的回复:]
额。年薪1.5W?写错了。月薪!如果是年薪都饿死了!
[/Quote]
xzjian2009 2009-09-04
  • 打赏
  • 举报
回复
额。年薪1.5W?写错了。月薪!如果是年薪都饿死了!
xzjian2009 2009-09-04
  • 打赏
  • 举报
回复
为什么跟我学的书上一样的?
努力转向Oracle。年薪1.5W。。
努力!
佐佐吉牧 2009-09-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 mahongbo11 的回复:]
不明白究竟要干什么???
select a.*,b.* from tb1 a left join tb2 b on a.col=b.col
[/Quote]


这不知道吗。左连接啊
佐佐吉牧 2009-09-04
  • 打赏
  • 举报
回复
oracle 工资高啊!!!!!!!
佐佐吉牧 2009-09-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yangjixiang_hao123 的回复:]
如何查看表放在哪个数据文件中
请问,怎么查看
1。一个表在物理上是存放在哪个或哪几个数据文件里
2。一个数据文件里放了哪几个数据表
[/Quote]

表是逻辑对象,数据文件是物理对象,所以不能说那个表肯定放在那个数据文件里面,有可能是跨几个数据文件。说一个表空间里面有哪些表就可以。
mahongbo11 2009-09-04
  • 打赏
  • 举报
回复
不明白究竟要干什么???
select a.*,b.* from tb1 a left join tb2 b on a.col=b.col
佐佐吉牧 2009-09-04
  • 打赏
  • 举报
回复
如何查看表放在哪个数据文件中
请问,怎么查看
1。一个表在物理上是存放在哪个或哪几个数据文件里
2。一个数据文件里放了哪几个数据表
佐佐吉牧 2009-09-04
  • 打赏
  • 举报
回复
不能!
佐佐吉牧 2009-09-04
  • 打赏
  • 举报
回复
oracle 如何分离数据库??????
wzzzjl 2009-09-04
  • 打赏
  • 举报
回复
啥意思,是提问题,还是教学?
不在状态上啊
edicun 2009-09-04
  • 打赏
  • 举报
回复
教学?

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧