今天oracle总结
2012-03-14 21:02
274 查看
create table emps1 as select * from emps; //备份一个emps表,创建一个和emps一样的表emps1
insert into emps(属性) values(属性值);//在表emps中插入一条新的内容,注意: 在添加不完整信息的时候,所添加的属性必须有约束性的属性
delete from emps where empno=7936;//删除表emps中empno=7936的那一条信息
update emps set ename='malin' where empno=7937;//更新empno=7937的ename,将ename改为malin
集合类型
select * from emp where sal between 800 and 1300
intersect
select * from emp where sal between 1200 and 1400;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ----- ----- ------
7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
7934 MILLER CLERK 7782 23-1月 -82 1300 10
//显示表emp中同时满足两个条件的员工信息,即显示表emp中sal在1200~1300之间的员工信息
select * from emp where sal between 800 and 1300
union
select * from emp where sal between 1200 and 1400
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
------- ---------- --------- ---------- -------------- ----- ----- ------
7369 SMITH CLERK 7902 17-12月-80 800 20
7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
7876 ADAMS CLERK 7788 12-1月 -83 1100 20
7900 JAMES CLERK 7698 03-12月-81 950 30
7934 MILLER CLERK 7782 23-1月 -82 1300 10
select * from emp where sal between 800 and 1300
union all
select * from emp where sal between 1200 and 1400
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
--------- ---------- --------- ---------- -------------- ----- ----- ------
7369 SMITH CLERK 7902 17-12月-80 800 20
7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
7876 ADAMS CLERK 7788 12-1月 -83 1100 20
7900 JAMES CLERK 7698 03-12月-81 950 30
7934 MILLER CLERK 7782 23-1月 -82 1300 10
7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
7934 MILLER CLERK 7782 23-1月 -82 1300 10
//union 显示的是符合条件但是不包括重复信息 union all 查询符合两个条件的信息,会显示重复信息注意:会有重复信息,因为两个条件中有相同的小条件
select * from emp where sal between 800 and 1300
minus
select * from emp where sal between 1200 and 1400
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
------- ---------- --------- ---------- -------------- ----- ----- ------
7369 SMITH CLERK 7902 17-12月-80 800 20
7876 ADAMS CLERK 7788 12-1月 -83 1100 20
7900 JAMES CLERK 7698 03-12月-81 950 30
//显示的是符合前面条件且不符合后面条件的信息
Oracle分页查询
SQL> select rownum,e.* from emp e where rownum<=3;
ROWNUM EMPNO ENAME JOB MGR HIREDATE SAL COMM
DEPTNO
---------- ---------- ---------- --------- ---------- -------------- ----- -----
------
1 7369 SMITH CLERK 7902 17-12月-80 800
20
2 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300
30
3 7521 WARD SALESMAN 7698 22-2月 -81 1250 500
30
SQL> select * from (select rownum as r,e.* from emp e) el where el.r>3 and el.r<
=6;
R EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- ---------- --------- ---------- -------------- ----- ----- ------
4 7566 JONES MANAGER 7839 02-4月 -81 2975 20
5 7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
6 7698 BLAKE MANAGER 7839 01-5月 -81 2850 30
//这是没有排序的分页,按表中内容直接分页
SQL> select * from (select rownum as r,e.* from (select * from emp order by sal
desc) e) el where el.r>0 and el.r<=3;
R EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- ---------- --------- ---------- -------------- ----- ----- ------
1 7839 KING PRESIDENT 17-11月-81 5000 10
2 7902 FORD ANALYST 7566 03-12月-81 3000 20
3 7788 SCOTT ANALYST 7566 09-12月-82 3000 20
SQL> select * from (select rownum as r,e.* from (select * from emp order by sal
desc) e) el where el.r>3 and el.r<=6;
R EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- ---------- --------- ---------- -------------- ----- ----- ------
4 7566 JONES MANAGER 7839 02-4月 -81 2975 20
5 7698 BLAKE MANAGER 7839 01-5月 -81 2850 30
6 7782 CLARK MANAGER 7839 09-6月 -81 2450 10
//有排序的分页,以工资的多少为例
insert into emps(属性) values(属性值);//在表emps中插入一条新的内容,注意: 在添加不完整信息的时候,所添加的属性必须有约束性的属性
delete from emps where empno=7936;//删除表emps中empno=7936的那一条信息
update emps set ename='malin' where empno=7937;//更新empno=7937的ename,将ename改为malin
集合类型
select * from emp where sal between 800 and 1300
intersect
select * from emp where sal between 1200 and 1400;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ----- ----- ------
7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
7934 MILLER CLERK 7782 23-1月 -82 1300 10
//显示表emp中同时满足两个条件的员工信息,即显示表emp中sal在1200~1300之间的员工信息
select * from emp where sal between 800 and 1300
union
select * from emp where sal between 1200 and 1400
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
------- ---------- --------- ---------- -------------- ----- ----- ------
7369 SMITH CLERK 7902 17-12月-80 800 20
7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
7876 ADAMS CLERK 7788 12-1月 -83 1100 20
7900 JAMES CLERK 7698 03-12月-81 950 30
7934 MILLER CLERK 7782 23-1月 -82 1300 10
select * from emp where sal between 800 and 1300
union all
select * from emp where sal between 1200 and 1400
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
--------- ---------- --------- ---------- -------------- ----- ----- ------
7369 SMITH CLERK 7902 17-12月-80 800 20
7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
7876 ADAMS CLERK 7788 12-1月 -83 1100 20
7900 JAMES CLERK 7698 03-12月-81 950 30
7934 MILLER CLERK 7782 23-1月 -82 1300 10
7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
7934 MILLER CLERK 7782 23-1月 -82 1300 10
//union 显示的是符合条件但是不包括重复信息 union all 查询符合两个条件的信息,会显示重复信息注意:会有重复信息,因为两个条件中有相同的小条件
select * from emp where sal between 800 and 1300
minus
select * from emp where sal between 1200 and 1400
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
------- ---------- --------- ---------- -------------- ----- ----- ------
7369 SMITH CLERK 7902 17-12月-80 800 20
7876 ADAMS CLERK 7788 12-1月 -83 1100 20
7900 JAMES CLERK 7698 03-12月-81 950 30
//显示的是符合前面条件且不符合后面条件的信息
Oracle分页查询
SQL> select rownum,e.* from emp e where rownum<=3;
ROWNUM EMPNO ENAME JOB MGR HIREDATE SAL COMM
DEPTNO
---------- ---------- ---------- --------- ---------- -------------- ----- -----
------
1 7369 SMITH CLERK 7902 17-12月-80 800
20
2 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300
30
3 7521 WARD SALESMAN 7698 22-2月 -81 1250 500
30
SQL> select * from (select rownum as r,e.* from emp e) el where el.r>3 and el.r<
=6;
R EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- ---------- --------- ---------- -------------- ----- ----- ------
4 7566 JONES MANAGER 7839 02-4月 -81 2975 20
5 7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
6 7698 BLAKE MANAGER 7839 01-5月 -81 2850 30
//这是没有排序的分页,按表中内容直接分页
SQL> select * from (select rownum as r,e.* from (select * from emp order by sal
desc) e) el where el.r>0 and el.r<=3;
R EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- ---------- --------- ---------- -------------- ----- ----- ------
1 7839 KING PRESIDENT 17-11月-81 5000 10
2 7902 FORD ANALYST 7566 03-12月-81 3000 20
3 7788 SCOTT ANALYST 7566 09-12月-82 3000 20
SQL> select * from (select rownum as r,e.* from (select * from emp order by sal
desc) e) el where el.r>3 and el.r<=6;
R EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- ---------- --------- ---------- -------------- ----- ----- ------
4 7566 JONES MANAGER 7839 02-4月 -81 2975 20
5 7698 BLAKE MANAGER 7839 01-5月 -81 2850 30
6 7782 CLARK MANAGER 7839 09-6月 -81 2450 10
//有排序的分页,以工资的多少为例
相关文章推荐
- 今天我用Oracle 9i得到的一些总结
- Oracle 数据库备份与恢复总结-exp/imp (导出与导入装库与卸库)
- [转]在oracle下如何创建database link全面总结
- Oracle正则表达式函数-总结
- Oracle查询速度慢的原因总结
- 从今天起,记录点滴,一步一步积累。webdriver-总结找不到页面元素报错的各种情况
- Oracle排错总结
- 从今天开始,写博客,总结学过的知识。
- VirtualBox+Oracle 11gR2 RAC安装总结
- 之前创建了一个表空间,然后今天不小心把表空间文件给删除了。然后用pl/sql连接数据库的时候,报ORA-01033错误。ora-01033:oracle initializationg or shut
- Oracle_sql优化基础——优化器总结
- 基础知识:oracle数据字典总结
- Oracle创建删除用户、角色、表空间、导入导出数据库命令行方式总结
- windows下利用navicat连接oracle的一些配置问题总结
- 将公司系统从SqlServer 2K移植到Oracle 10g中的简要总结
- ORACLE同义词总结
- 【今天,你总结了吗?】
- ORACLE优化器RBO与CBO介绍总结
- oracle临时表的用法总结
- Oracle字符集问题整理 (学习心得与网摘总结)