您好,登錄后才能下訂單哦!
SQL> create table 部門表(deptno number primary key,dname varchar2(10));
表已創建。
SQL> create table 員工表(empno number primary key, ename varchar2(10), deptno number, foreign key(deptno) references 部門表(deptno));
表已創建。
SQL> insert into 部門表(deptno, dname) values(10,'銷售部');
已創建 1 行。
SQL> insert into 部門表(deptno, dname) values(20,'人事部');
已創建 1 行。
SQL> insert into 員工表(empno,ename,deptno) values(1,'張三',10);
已創建 1 行。
SQL> insert into 員工表(empno,ename,deptno) values(2,'李四',20);
已創建 1 行。
SQL> insert into 員工表(empno,ename,deptno) values(3,'王五',10);
已創建 1 行。
SQL> select empno, ename, 員工表.deptno, 部門表.deptno, dname from 部門表, 員工表;
EMPNO ENAME DEPTNO DEPTNO DNAME
1 張三 10 10 銷售部
2 李四 20 10 銷售部
3 王五 10 10 銷售部
1 張三 10 20 人事部
2 李四 20 20 人事部
3 王五 10 20 人事部
已選擇6行。
SQL> select empno, ename, 員工表.empno, 部門表.deptno, dname from 部門表, 員工表 where 部門表.deptno = 員工表.deptno;
EMPNO ENAME EMPNO DEPTNO DNAME
1 張三 1 10 銷售部
2 李四 2 20 人事部
3 王五 3 10 銷售部
SQL> select empno, ename, job, dname from emp, dept where emp.deptno = dept.deptno;
EMPNO ENAME JOB DNAME
7934 MILLER CLERK ACCOUNTING
7782 CLARK MANAGER ACCOUNTING
7839 KING PRESIDENT ACCOUNTING
7566 JONES MANAGER RESEARCH
7951 EASON ANALYST RESEARCH
7369 G_EASON CLERK RESEARCH
7902 FORD ANALYST RESEARCH
7876 ADAMS CLERK RESEARCH
7788 SCOTT ANALYST RESEARCH
7499 ALLEN SALESMAN SALES
7844 TURNER SALESMAN SALES
7900 JAMES CLERK SALES
7521 WARD SALESMAN SALES
7698 BLAKE MANAGER SALES
7654 MARTIN SALESMAN SALES
已選擇15行。
SQL> select emp.empno, emp.ename, emp.job, dept.dname from emp, dept where emp.deptno = dept.deptno;
EMPNO ENAME JOB DNAME
7934 MILLER CLERK ACCOUNTING
7782 CLARK MANAGER ACCOUNTING
7839 KING PRESIDENT ACCOUNTING
7566 JONES MANAGER RESEARCH
7951 EASON ANALYST RESEARCH
7369 G_EASON CLERK RESEARCH
7902 FORD ANALYST RESEARCH
7876 ADAMS CLERK RESEARCH
7788 SCOTT ANALYST RESEARCH
7499 ALLEN SALESMAN SALES
7844 TURNER SALESMAN SALES
7900 JAMES CLERK SALES
7521 WARD SALESMAN SALES
7698 BLAKE MANAGER SALES
7654 MARTIN SALESMAN SALES
已選擇15行。
SQL> select e.empno, e.ename, e.job, d.dname from emp e, dept d where e.deptno = d.deptno;
EMPNO ENAME JOB DNAME
7934 MILLER CLERK ACCOUNTING
7782 CLARK MANAGER ACCOUNTING
7839 KING PRESIDENT ACCOUNTING
7566 JONES MANAGER RESEARCH
7951 EASON ANALYST RESEARCH
7369 G_EASON CLERK RESEARCH
7902 FORD ANALYST RESEARCH
7876 ADAMS CLERK RESEARCH
7788 SCOTT ANALYST RESEARCH
7499 ALLEN SALESMAN SALES
7844 TURNER SALESMAN SALES
7900 JAMES CLERK SALES
7521 WARD SALESMAN SALES
7698 BLAKE MANAGER SALES
7654 MARTIN SALESMAN SALES
已選擇15行。
SQL> select e.empno, e.ename, e.job, d.dname from emp e, dept d where e.deptno = d.deptno and e.deptno = 10;
EMPNO ENAME JOB DNAME
7782 CLARK MANAGER ACCOUNTING
7839 KING PRESIDENT ACCOUNTING
7934 MILLER CLERK ACCOUNTING
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, e.ename, e.sal, s.grade from emp e, salgrade s where e.sal between losal and hisal;
EMPNO ENAME SAL GRADE
7369 G_EASON 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
7951 EASON 3000 4
7902 FORD 3000 4
7788 SCOTT 3000 4
7839 KING 5000 5
已選擇15行。
SQL> select d.deptno, d.dname, count(e.empno) from dept d, emp e where d.deptno = e.deptno group by d.deptno, d.dname;
DEPTNO DNAME COUNT(E.EMPNO)
10 ACCOUNTING 3
20 RESEARCH 6
30 SALES 6
SQL> select d.deptno, d.dname, count(e.empno) from dept d, emp e where d.deptno = e.deptno(+) group by d.deptno, d.dname;
DEPTNO DNAME COUNT(E.EMPNO)
10 ACCOUNTING 3
40 OPERATIONS 0
20 RESEARCH 6
30 SALES 6
SQL>
SQL> select e.ename 員工名, m.ename 直屬上級 from emp e, emp m where e.mgr = m.empno;
員工名 直屬上級
FORD JONES
SCOTT JONES
EASON JONES
JAMES BLAKE
TURNER BLAKE
MARTIN BLAKE
WARD BLAKE
ALLEN BLAKE
MILLER CLARK
ADAMS SCOTT
CLARK KING
BLAKE KING
JONES KING
G_EASON FORD
已選擇14行。
SQL>
SQL> select d.dname, e.ename, d.deptno, e.deptno from dept d cross join emp e;
DNAME ENAME DEPTNO DEPTNO
ACCOUNTING EASON 10 20
ACCOUNTING G_EASON 10 20
ACCOUNTING ALLEN 10 30
ACCOUNTING WARD 10 30
ACCOUNTING JONES 10 20
ACCOUNTING MARTIN 10 30
ACCOUNTING BLAKE 10 30
ACCOUNTING CLARK 10 10
ACCOUNTING SCOTT 10 20
ACCOUNTING KING 10 10
已選擇60行。
SQL> select e.ename, e.sal, d.dname from dept d natural join emp e;
ENAME SAL DNAME
MILLER 1300 ACCOUNTING
CLARK 2450 ACCOUNTING
KING 5000 ACCOUNTING
JONES 2975 RESEARCH
EASON 3000 RESEARCH
G_EASON 800 RESEARCH
FORD 3000 RESEARCH
ADAMS 1100 RESEARCH
SCOTT 3000 RESEARCH
ALLEN 1600 SALES
TURNER 1500 SALES
JAMES 950 SALES
WARD 1250 SALES
BLAKE 2850 SALES
MARTIN 1250 SALES
已選擇15行。
SQL> SELECT e.ename, e.sal, d.dname from dept d join emp e using(deptno);
ENAME SAL DNAME
MILLER 1300 ACCOUNTING
CLARK 2450 ACCOUNTING
KING 5000 ACCOUNTING
JONES 2975 RESEARCH
EASON 3000 RESEARCH
G_EASON 800 RESEARCH
FORD 3000 RESEARCH
ADAMS 1100 RESEARCH
SCOTT 3000 RESEARCH
ALLEN 1600 SALES
TURNER 1500 SALES
JAMES 950 SALES
WARD 1250 SALES
BLAKE 2850 SALES
MARTIN 1250 SALES
已選擇15行。
SQL> SELECT e.ename, e.sal, d.dname from dept d join emp e on e.deptno = d.deptno;
ENAME SAL DNAME
MILLER 1300 ACCOUNTING
CLARK 2450 ACCOUNTING
KING 5000 ACCOUNTING
JONES 2975 RESEARCH
EASON 3000 RESEARCH
G_EASON 800 RESEARCH
FORD 3000 RESEARCH
ADAMS 1100 RESEARCH
SCOTT 3000 RESEARCH
ALLEN 1600 SALES
TURNER 1500 SALES
JAMES 950 SALES
WARD 1250 SALES
BLAKE 2850 SALES
MARTIN 1250 SALES
已選擇15行。
SQL> select e.ename, e.sal, d.dname from dept d left join emp e on e.deptno = d.deptno;
ENAME SAL DNAME
MILLER 1300 ACCOUNTING
CLARK 2450 ACCOUNTING
KING 5000 ACCOUNTING
JONES 2975 RESEARCH
EASON 3000 RESEARCH
G_EASON 800 RESEARCH
FORD 3000 RESEARCH
ADAMS 1100 RESEARCH
SCOTT 3000 RESEARCH
ALLEN 1600 SALES
TURNER 1500 SALES
JAMES 950 SALES
WARD 1250 SALES
BLAKE 2850 SALES
MARTIN 1250 SALES
OPERATIONS
已選擇16行。
SQL> select e.ename, e.sal, d.dname from dept d right join emp e on e.deptno = d.deptno;
ENAME SAL DNAME
MILLER 1300 ACCOUNTING
KING 5000 ACCOUNTING
CLARK 2450 ACCOUNTING
FORD 3000 RESEARCH
ADAMS 1100 RESEARCH
SCOTT 3000 RESEARCH
JONES 2975 RESEARCH
G_EASON 800 RESEARCH
EASON 3000 RESEARCH
JAMES 950 SALES
TURNER 1500 SALES
BLAKE 2850 SALES
MARTIN 1250 SALES
WARD 1250 SALES
ALLEN 1600 SALES
已選擇15行。
SQL> select e.ename, e.sal, d.dname from dept d full join emp e on e.deptno = d.deptno;
ENAME SAL DNAME
EASON 3000 RESEARCH
G_EASON 800 RESEARCH
ALLEN 1600 SALES
WARD 1250 SALES
JONES 2975 RESEARCH
MARTIN 1250 SALES
BLAKE 2850 SALES
CLARK 2450 ACCOUNTING
SCOTT 3000 RESEARCH
KING 5000 ACCOUNTING
TURNER 1500 SALES
ADAMS 1100 RESEARCH
JAMES 950 SALES
FORD 3000 RESEARCH
MILLER 1300 ACCOUNTING
OPERATIONS
已選擇16行。
SQL> create table emp01 as select * from emp where deptno in(10,20);
表已創建。
SQL> create table emp02 as select * from emp where deptno in(20,30);
表已創建。
SQL> select deptno, empno, ename from emp01 union select deptno, empno, ename from emp02;
DEPTNO EMPNO ENAME
10 7782 CLARK
10 7839 KING
10 7934 MILLER
20 7369 G_EASON
20 7566 JONES
20 7788 SCOTT
20 7876 ADAMS
20 7902 FORD
20 7951 EASON
30 7499 ALLEN
30 7521 WARD
30 7654 MARTIN
30 7698 BLAKE
30 7844 TURNER
30 7900 JAMES
已選擇15行。
SQL> select deptno, empno, ename from emp01 union all select deptno, empno, ename from emp02;
DEPTNO EMPNO ENAME
20 7951 EASON
20 7369 G_EASON
20 7566 JONES
......
30 7844 TURNER
20 7876 ADAMS
30 7900 JAMES
20 7902 FORD
已選擇21行。
SQL> select deptno, empno, ename from emp01 intersect select deptno, empno, ename from emp02;
DEPTNO EMPNO ENAME
20 7369 G_EASON
20 7566 JONES
20 7788 SCOTT
20 7876 ADAMS
20 7902 FORD
20 7951 EASON
已選擇6行。
SQL> select deptno, empno, ename from emp01 minus select deptno, empno, ename from emp02;
DEPTNO EMPNO ENAME
10 7782 CLARK
10 7839 KING
10 7934 MILLER
SQL> select deptno, empno, ename from emp01 union all select deptno, empno, ename from emp02 order by empn
DEPTNO EMPNO ENAME
20 7369 G_EASON
20 7369 G_EASON
30 7499 ALLEN
30 7521 WARD
20 7566 JONES
......
20 7902 FORD
10 7934 MILLER
20 7951 EASON
20 7951 EASON
已選擇21行。
SQL> select deptno, empno, ename from emp01 union all select deptno, empno, ename from emp02 order by
DEPTNO EMPNO ENAME
20 7369 G_EASON
20 7369 G_EASON
30 7499 ALLEN
30 7521 WARD
......
20 7902 FORD
10 7934 MILLER
20 7951 EASON
20 7951 EASON
已選擇21行。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。