oracle安装参照: Oracle数据库之安装教程
Oracle数据库总结:
Oracle数据库之基本查询
Oracle数据库之单行函数
Oracle数据库之多行函数
Oracle数据库之多表查询
sql> –等值连接
sql> –查询员工信息:员工号 姓名 月薪 部门名称
sql> select e.empno,e.ename,e.sal,d.dname
2 from emp e,dept d
3 where e.deptno=d.deptno;
- EMPNO ENAME SAL DNAME
- ---------- ---------- ---------- --------------
- 7369 SMITH 800 RESEARCH
- 7499 ALLEN 1600 SALES
- 7521 WARD 1250 SALES
- 7566 JONES 2975 RESEARCH
- 7654 MARTIN 1250 SALES
- 7698 BLAKE 2850 SALES
- 7782 CLARK 2450 ACCOUNTING
- 7788 SCOTT 3000 RESEARCH
- 7839 KING 5000 ACCOUNTING
- 7844 TURNER 1500 SALES
- 7876 ADAMS 1100 RESEARCH
-
- EMPNO ENAME SAL DNAME
- ---------- ---------- ---------- --------------
- 7900 JAMES 950 SALES
- 7902 FORD 3000 RESEARCH
- 7934 MILLER 1300 ACCOUNTING
sql> –不等值连接
sql> –查询员工信息:员工号 姓名 月薪 工资级别
sql> select * from salgrade;
- ***GRADE LOSAL HISAL
- 1 700 1200
- 2 1201 1400
- 3 1401 2000
- 4 2001 3000
- 5 3001 9999***
sql> select e.empno,s.grade
2 from emp e,salgrade s
3 where e.sal between s.losal and s.hisal;
- ***EMPNO ENAME SAL GRADE
- 7369 SMITH 800 1
- 7900 JAMES 950 1
- 7876 ADAMS 1100 1
- 7521 WARD 1250 2
- 7654 MARTIN 1250 2
- 7934 MILLER 1300 2
- 7844 TURNER 1500 3
- 7499 ALLEN 1600 3
- 7782 CLARK 2450 4
- 7698 BLAKE 2850 4
- 7566 JONES 2975 4
- EMPNO ENAME SAL GRADE
- 7788 SCOTT 3000 4
- 7902 FORD 3000 4
- 7839 KING 5000 5***
sql> –外连接
sql> –按部门统计员工人数:部门号 部门名称 人数
sql> select d.deptno 部门号,d.dname 部门名称,count(e.empno) 人数
2 from emp e,dept d
3 where e.deptno=d.deptno
4 group by d.deptno,d.dname;
- ***部门号 部门名称 人数
- 10 ACCOUNTING 3
- 20 RESEARCH 5
- 30 SALES 6
sql> select * from dept;
DEPTNO DNAME LOC
- 10 ACCOUNTING NEW YORK
- 20 RESEARCH DALLAS
- 30 SALES CHICAGO
- 40 OPERATIONS BOSTON***
**sql> /
sql> 外连接:某些不成立的记录,通过外连接依然可以包含在最后的结果中
sql> 左外连接:当where e.deptno=d.deptno不成立的时候,等号左边的表任然包含在最后的结果中
sql> 写法:where e.deptno=d.deptno(+)
sql> 右外连接:当where e.deptno=d.deptno不成立的时候,等号右边的表任然包含在最后的结果中
sql> 写法: where e.deptno(+)=d.deptno
sql> /**
sql> select d.deptno 部门号,dept d
3 where e.deptno(+)=d.deptno
4 group by d.deptno,d.dname;
- 部门号 部门名称 人数
- ---------- -------------- ----------
- 10 ACCOUNTING 3
- 40 OPERATIONS 0
- 20 RESEARCH 5
- 30 SALES 6
sql> –自连接
sql> –查询员工信息: 员工的名字 老板的名字
sql> –自连接:通过表的别名,将同一张表视为多张表
sql> select e.ename 员工的名字,b.ename 老板名字
2 from emp e,emp b
3 where e.mgr=b.empno;
- 员工的名字 老板名字
- ---------- ----------
- FORD JONES
- SCOTT JONES
- JAMES BLAKE
- TURNER BLAKE
- MARTIN BLAKE
- WARD BLAKE
- ALLEN BLAKE
- MILLER CLARK
- ADAMS SCOTT
- CLARK KING
- BLAKE KING
-
- 员工的名字 老板名字
- ---------- ----------
- JONES KING
- SMITH FORD
sql> –层次查询
sql> select level,empno,ename,mgr
2 from emp
3 connect by prior empno=mgr
4 start with mgr is null
5 order by 1;
- LEVEL EMPNO ENAME MGR
- ---------- ---------- ---------- ----------
- 1 7839 KING
- 2 7566 JONES 7839
- 2 7698 BLAKE 7839
- 2 7782 CLARK 7839
- 3 7902 FORD 7566
- 3 7521 WARD 7698
- 3 7900 JAMES 7698
- 3 7934 MILLER 7782
- 3 7499 ALLEN 7698
- 3 7788 SCOTT 7566
- 3 7654 MARTIN 7698
-
- LEVEL EMPNO ENAME MGR
- ---------- ---------- ---------- ----------
- 3 7844 TURNER 7698
- 4 7876 ADAMS 7788
- 4 7369 SMITH 7902
更多可以参看
Oracle数据库总结:
Oracle数据库之集合运算
Oracle数据库之数据处理
Oracle数据库之建表和管理表
Oracle数据库之对象视图、索引、序列、同义词