Sie sind auf Seite 1von 28

select*from dept;

DEPTNO DNAME

LOC

---------- -------------- ------------10 ACCOUNTING

NEW YORK

20 RESEARCH

DALLAS

30 SALES

CHICAGO

40 OPERATIONS

BOSTON

SQL> select*from emp;


EMPNO ENAME

JOB

MGR HIREDATE

SAL

COMM

EPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- --------7369 SMITH

CLERK

7902 17-DEC-80

800

7499 ALLEN

SALESMAN

7698 20-FEB-81

1600

300

7521 WARD

SALESMAN

7698 22-FEB-81

1250

500

7566 JONES

MANAGER

7839 02-APR-81

2975

7654 MARTIN

SALESMAN

7698 28-SEP-81

1250

7698 BLAKE

MANAGER

7839 01-MAY-81

2850

7782 CLARK

MANAGER

7839 09-JUN-81

2450

7788 SCOTT

ANALYST

7566 19-APR-87

3000

7839 KING

PRESIDENT

17-NOV-81

5000

7844 TURNER

SALESMAN

7698 08-SEP-81

1500

7876 ADAMS

CLERK

7788 23-MAY-87

1100

20
30
30
20
1400

30
30
10
20
10
30

20
EMPNO ENAME

JOB

MGR HIREDATE

SAL

COMM

EPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- --------7900 JAMES

CLERK

7698 03-DEC-81

950

7902 FORD

ANALYST

7566 03-DEC-81

3000

7934 MILLER

CLERK

7782 23-JAN-82

1300

30
20
10
14 rows selected.
SQL> select*from emp,dept where emp.deptno=dept.deptno;
EMPNO ENAME
JOB
DEPTNO DNAME

EPTNO

MGR HIREDATE

SAL

COMM

LOC

---------- ---------- --------- ---------- --------- ---------- ---------- --------- ---------- -------------- ------------10

7782 CLARK
MANAGER
10 ACCOUNTING

7839 09-JUN-81
NEW YORK

10

7839 KING
PRESIDENT
10 ACCOUNTING
NEW YORK

10

2450

17-NOV-81

5000

7934 MILLER
CLERK
10 ACCOUNTING

7782 23-JAN-82
NEW YORK

1300

7566 JONES
MANAGER
20 RESEARCH

7839 02-APR-81

2975

20

DALLAS

20

7902 FORD
ANALYST
20 RESEARCH

DALLAS

20

7876 ADAMS
CLERK
20 RESEARCH

DALLAS

20

7369 SMITH
CLERK
20 RESEARCH

DALLAS

20

7788 SCOTT
ANALYST
20 RESEARCH

DALLAS

7521 WARD
SALESMAN
7698 22-FEB-81
30 SALES
CHICAGO

1250

500

30

7844 TURNER
SALESMAN
7698 08-SEP-81
30 SALES
CHICAGO

1500

30

7499 ALLEN

1600

300

SALESMAN

7566 03-DEC-81
7788 23-MAY-87
7902 17-DEC-80
7566 19-APR-87

7698 20-FEB-81

3000
1100
800
3000

30

30 SALES

CHICAGO

EMPNO ENAME
JOB
DEPTNO DNAME

EPTNO

MGR HIREDATE

SAL

COMM

LOC

---------- ---------- --------- ---------- --------- ---------- ---------- --------- ---------- -------------- ------------7900 JAMES
CLERK
30 SALES

7698 03-DEC-81
CHICAGO

950

30

7698 BLAKE
MANAGER
30 SALES

7839 01-MAY-81
CHICAGO

2850

30

7654 MARTIN
SALESMAN
7698 28-SEP-81
30 SALES
CHICAGO

1250

1400

30

SAL

COMM

14 rows selected.
SQL> eded
SP2-0042: unknown command "eded" - rest of line ignored.
SQL> ed
Wrote file afiedt.buf
1* select*from emp,dept where emp.deptno(+)=dept.deptno
SQL> /
EMPNO ENAME
JOB
DEPTNO DNAME

EPTNO

MGR HIREDATE

LOC

---------- ---------- --------- ---------- --------- ---------- ---------- --------- ---------- -------------- ------------10

7782 CLARK
MANAGER
10 ACCOUNTING

7839 09-JUN-81
NEW YORK

10

7839 KING
PRESIDENT
10 ACCOUNTING
NEW YORK

10

2450

17-NOV-81

5000

7934 MILLER
CLERK
10 ACCOUNTING

7782 23-JAN-82
NEW YORK

1300

7566 JONES
MANAGER
20 RESEARCH

7839 02-APR-81

2975

20

DALLAS

20

7902 FORD
ANALYST
20 RESEARCH

DALLAS

20

7876 ADAMS
CLERK
20 RESEARCH

DALLAS

20

7369 SMITH
CLERK
20 RESEARCH

DALLAS

20

7788 SCOTT
ANALYST
20 RESEARCH

DALLAS

7521 WARD

SALESMAN

7566 03-DEC-81
7788 23-MAY-87
7902 17-DEC-80
7566 19-APR-87
7698 22-FEB-81

3000
1100
800
3000
1250

500

30

30 SALES

CHICAGO

7844 TURNER
SALESMAN
7698 08-SEP-81
30 SALES
CHICAGO

1500

30

7499 ALLEN
SALESMAN
7698 20-FEB-81
30 SALES
CHICAGO

1600

300

30

SAL

COMM

EMPNO ENAME
JOB
DEPTNO DNAME

MGR HIREDATE

EPTNO

LOC

---------- ---------- --------- ---------- --------- ---------- ---------- --------- ---------- -------------- ------------7900 JAMES
CLERK
30 SALES

7698 03-DEC-81
CHICAGO

950

30

7698 BLAKE
MANAGER
30 SALES

7839 01-MAY-81
CHICAGO

2850

30

7654 MARTIN
SALESMAN
7698 28-SEP-81
30 SALES
CHICAGO

1250

30

40 OPERATIONS

1400

BOSTON

15 rows selected.
SQL> Select D.* ,E.Empno,E.Ename From Emp E ,Dept D Where D.Deptno=E.deptno(+);
DEPTNO DNAME

LOC

EMPNO ENAME

---------- -------------- ------------- ---------- ---------10 ACCOUNTING

NEW YORK

7782 CLARK

10 ACCOUNTING

NEW YORK

7839 KING

10 ACCOUNTING

NEW YORK

7934 MILLER

20 RESEARCH

DALLAS

7566 JONES

20 RESEARCH

DALLAS

7902 FORD

20 RESEARCH

DALLAS

7876 ADAMS

20 RESEARCH

DALLAS

7369 SMITH

20 RESEARCH

DALLAS

7788 SCOTT

30 SALES

CHICAGO

7521 WARD

30 SALES

CHICAGO

7844 TURNER

30 SALES

CHICAGO

7499 ALLEN

DEPTNO DNAME

LOC

EMPNO ENAME

---------- -------------- ------------- ---------- ---------30 SALES

CHICAGO

7900 JAMES

30 SALES

CHICAGO

7698 BLAKE

30 SALES

CHICAGO

7654 MARTIN

40 OPERATIONS

BOSTON

15 rows selected.
SQL> Select E.*,D.Dname,D.Loc From Emp E,Dept D Where E.deptno=D.deptno(+);
EMPNO ENAME
EPTNO DNAME

JOB
LOC

MGR HIREDATE

SAL

COMM

---------- ---------- --------- ---------- --------- ---------- ---------- --------- -------------- ------------7934 MILLER
10 ACCOUNTING

CLERK
NEW YORK

7782 23-JAN-82

1300

7839 KING
10 ACCOUNTING

PRESIDENT
NEW YORK

17-NOV-81

5000

7782 CLARK
10 ACCOUNTING

MANAGER
NEW YORK

7839 09-JUN-81

2450

7902 FORD
20 RESEARCH

ANALYST
DALLAS

7566 03-DEC-81

3000

7876 ADAMS
20 RESEARCH

CLERK
DALLAS

7788 23-MAY-87

1100

7788 SCOTT
20 RESEARCH

ANALYST
DALLAS

7566 19-APR-87

3000

7566 JONES

MANAGER

7839 02-APR-81

2975

20 RESEARCH

DALLAS

7369 SMITH
20 RESEARCH

CLERK
DALLAS

7902 17-DEC-80

800

7900 JAMES
30 SALES

CLERK
CHICAGO

7698 03-DEC-81

950

7844 TURNER
30 SALES

SALESMAN
CHICAGO

7698 08-SEP-81

1500

7698 BLAKE
30 SALES

MANAGER
CHICAGO

7839 01-MAY-81

2850

MGR HIREDATE

SAL

EMPNO ENAME
EPTNO DNAME

JOB
LOC

COMM

---------- ---------- --------- ---------- --------- ---------- ---------- --------- -------------- ------------7654 MARTIN
30 SALES

SALESMAN
CHICAGO

7698 28-SEP-81

1250

1400

7521 WARD
30 SALES

SALESMAN
CHICAGO

7698 22-FEB-81

1250

500

7499 ALLEN
30 SALES

SALESMAN
CHICAGO

7698 20-FEB-81

1600

300

14 rows selected.
SQL> Select E.Empno, E.Ename, D.Dname , D.Loc From Emp E ,Dept d Where
2
D.Deptno=E.Deptno(+) UNION Select E.Empno, E.Ename, D.Dname ,
D.Loc
3
From Emp E ,Dept d Where D.Deptno (+) = E.Deptno;
EMPNO ENAME

DNAME

LOC

---------- ---------- -------------- ------------7369 SMITH

RESEARCH

DALLAS

7499 ALLEN

SALES

CHICAGO

7521 WARD

SALES

CHICAGO

7566 JONES

RESEARCH

DALLAS

7654 MARTIN

SALES

CHICAGO

7698 BLAKE

SALES

CHICAGO

7782 CLARK

ACCOUNTING

NEW YORK

7788 SCOTT

RESEARCH

DALLAS

7839 KING

ACCOUNTING

NEW YORK

7844 TURNER

SALES

CHICAGO

7876 ADAMS

RESEARCH

DALLAS

DNAME

LOC

EMPNO ENAME

---------- ---------- -------------- ------------7900 JAMES

SALES

CHICAGO

7902 FORD

RESEARCH

DALLAS

7934 MILLER

ACCOUNTING

NEW YORK

OPERATIONS

BOSTON

15 rows selected.
SQL> Select E.Empno, E.Ename, D.Dname , D.Loc From Emp E INNER JOIN
2
Dept D On(E.deptno=D.Deptno);
EMPNO ENAME

DNAME

LOC

---------- ---------- -------------- ------------7782 CLARK

ACCOUNTING

NEW YORK

7839 KING

ACCOUNTING

NEW YORK

7934 MILLER

ACCOUNTING

NEW YORK

7566 JONES

RESEARCH

DALLAS

7902 FORD

RESEARCH

DALLAS

7876 ADAMS

RESEARCH

DALLAS

7369 SMITH

RESEARCH

DALLAS

7788 SCOTT

RESEARCH

DALLAS

7521 WARD

SALES

CHICAGO

7844 TURNER

SALES

CHICAGO

7499 ALLEN

SALES

CHICAGO

EMPNO ENAME

DNAME

LOC

---------- ---------- -------------- ------------7900 JAMES

SALES

CHICAGO

7698 BLAKE

SALES

CHICAGO

7654 MARTIN

SALES

CHICAGO

14 rows selected.
SQL>
SQL> ed
Wrote file afiedt.buf
1 Select E.Empno, E.Ename, D.Dname , D.Loc From Emp E left JOIN
2*
Dept D On(E.deptno=D.Deptno)
SQL> /
EMPNO ENAME

DNAME

LOC

---------- ---------- -------------- ------------7934 MILLER

ACCOUNTING

NEW YORK

7839 KING

ACCOUNTING

NEW YORK

7782 CLARK

ACCOUNTING

NEW YORK

7902 FORD

RESEARCH

DALLAS

7876 ADAMS

RESEARCH

DALLAS

7788 SCOTT

RESEARCH

DALLAS

7566 JONES

RESEARCH

DALLAS

7369 SMITH

RESEARCH

DALLAS

7900 JAMES

SALES

CHICAGO

7844 TURNER

SALES

CHICAGO

7698 BLAKE

SALES

CHICAGO

EMPNO ENAME

DNAME

LOC

---------- ---------- -------------- ------------7654 MARTIN

SALES

CHICAGO

7521 WARD

SALES

CHICAGO

7499 ALLEN

SALES

CHICAGO

14 rows selected.
SQL> ed
Wrote file afiedt.buf
1 Select E.Empno, E.Ename, D.Dname , D.Loc From Emp E right JOIN
2*
Dept D On(E.deptno=D.Deptno)
SQL> /
EMPNO ENAME

DNAME

LOC

---------- ---------- -------------- ------------7782 CLARK

ACCOUNTING

NEW YORK

7839 KING

ACCOUNTING

NEW YORK

7934 MILLER

ACCOUNTING

NEW YORK

7566 JONES

RESEARCH

DALLAS

7902 FORD

RESEARCH

DALLAS

7876 ADAMS

RESEARCH

DALLAS

7369 SMITH

RESEARCH

DALLAS

7788 SCOTT

RESEARCH

DALLAS

7521 WARD

SALES

CHICAGO

7844 TURNER

SALES

CHICAGO

7499 ALLEN

SALES

CHICAGO

EMPNO ENAME

DNAME

LOC

---------- ---------- -------------- ------------7900 JAMES

SALES

CHICAGO

7698 BLAKE

SALES

CHICAGO

7654 MARTIN

SALES

CHICAGO

OPERATIONS

BOSTON

15 rows selected.
SQL> ed
Wrote file afiedt.buf
1 Select E.Empno, E.Ename, D.Dname , D.Loc From Emp E full JOIN
2*
Dept D On(E.deptno=D.Deptno)
SQL> /

EMPNO ENAME

DNAME

LOC

---------- ---------- -------------- ------------7934 MILLER

ACCOUNTING

NEW YORK

7839 KING

ACCOUNTING

NEW YORK

7782 CLARK

ACCOUNTING

NEW YORK

7902 FORD

RESEARCH

DALLAS

7876 ADAMS

RESEARCH

DALLAS

7788 SCOTT

RESEARCH

DALLAS

7566 JONES

RESEARCH

DALLAS

7369 SMITH

RESEARCH

DALLAS

7900 JAMES

SALES

CHICAGO

7844 TURNER

SALES

CHICAGO

7698 BLAKE

SALES

CHICAGO

EMPNO ENAME

DNAME

LOC

---------- ---------- -------------- ------------7654 MARTIN

SALES

CHICAGO

7521 WARD

SALES

CHICAGO

7499 ALLEN

SALES

CHICAGO

OPERATIONS

BOSTON

15 rows selected.
SQL> Select Job From Emp Where Deptno=20 MINUS Select Job From Emp
2
Where Deptno in(10,30);
JOB
--------ANALYST

SQL> Select Job From Emp Where Deptno=20;


JOB
--------CLERK
MANAGER
ANALYST
CLERK
ANALYST

SQL> Select Job From Emp Where Deptno in(10,30);


JOB
--------SALESMAN
SALESMAN
SALESMAN
MANAGER
MANAGER

PRESIDENT
SALESMAN
CLERK
CLERK

9 rows selected.
SQL> Select Job From Emp Where Deptno=20 MINUS Select Job From Emp
2
Where Deptno in(10,30);
JOB
--------ANALYST

SQL> ed
Wrote file afiedt.buf
1 Select Job From Emp Where Deptno=20 union Select Job From Emp
2*
Where Deptno in(10,30)
SQL> /
JOB
--------ANALYST
CLERK
MANAGER
PRESIDENT
SALESMAN

SQL> ed

Wrote file afiedt.buf


1 Select Job From Emp Where Deptno=20 union all Select Job From Emp
2*
Where Deptno in(10,30)
SQL> /
JOB
--------CLERK
MANAGER
ANALYST
CLERK
ANALYST
SALESMAN
SALESMAN
SALESMAN
MANAGER
MANAGER
PRESIDENT

JOB
--------SALESMAN
CLERK
CLERK

14 rows selected.
SQL> ed
Wrote file afiedt.buf
1 Select Job From Emp Where Deptno=20 intersect Select Job From Emp
2*
Where Deptno in(10,30)
SQL> /
JOB
--------CLERK
MANAGER

SQL> select*from emp;


EMPNO ENAME

JOB

MGR HIREDATE

SAL

COMM

EPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- --------7369 SMITH

CLERK

7902 17-DEC-80

800

7499 ALLEN

SALESMAN

7698 20-FEB-81

1600

300

7521 WARD

SALESMAN

7698 22-FEB-81

1250

500

7566 JONES

MANAGER

7839 02-APR-81

2975

7654 MARTIN

SALESMAN

7698 28-SEP-81

1250

7698 BLAKE

MANAGER

7839 01-MAY-81

2850

7782 CLARK

MANAGER

7839 09-JUN-81

2450

7788 SCOTT

ANALYST

7566 19-APR-87

3000

7839 KING

PRESIDENT

17-NOV-81

5000

7844 TURNER

SALESMAN

7698 08-SEP-81

1500

20
30
30
20
1400

30
30
10
20
10
0

30
7876 ADAMS

CLERK

7788 23-MAY-87

1100

MGR HIREDATE

SAL

20
EMPNO ENAME

JOB

COMM

EPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- --------7900 JAMES

CLERK

7698 03-DEC-81

950

7902 FORD

ANALYST

7566 03-DEC-81

3000

7934 MILLER

CLERK

7782 23-JAN-82

1300

30
20
10
14 rows selected.
SQL> select max(sal)from emp;
MAX(SAL)
---------5000

SQL> select*from emp where sal=(select max(sal)from emp);


EMPNO ENAME

JOB

MGR HIREDATE

SAL

COMM

EPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- --------7839 KING

PRESIDENT

17-NOV-81

5000

10
SQL> select max(sal)from emp where sal<(select max(sal)from emp);
MAX(SAL)
---------3000

SQL> ed
Wrote file afiedt.buf
1* select max(sal)from emp where sal<(select max(sal)from emp)
SQL> select max(sal),min(sal),sum(sal),avg(sal),count(*)from emp;
MAX(SAL)

MIN(SAL)

SUM(SAL)

AVG(SAL)

COUNT(*)

---------- ---------- ---------- ---------- ---------5000

800

29025 2073.21429

14

SQL> ed
Wrote file afiedt.buf
1* select max(sal),min(sal),sum(sal),avg(sal),count(*)from emp group by deptno
SQL> /
MAX(SAL)

MIN(SAL)

SUM(SAL)

AVG(SAL)

COUNT(*)

---------- ---------- ---------- ---------- ---------2850

950

3000

800

5000

1300

9400 1566.66667
10875

2175

8750 2916.66667

SQL> ed
Wrote file afiedt.buf
1* select deptno,max(sal),min(sal),sum(sal),avg(sal),count(*)from emp group by
deptno
SQL> /
DEPTNO

MAX(SAL)

MIN(SAL)

SUM(SAL)

AVG(SAL)

COUNT(*)

---------- ---------- ---------- ---------- ---------- ---------30

2850

950

20

3000

800

10

5000

1300

9400 1566.66667
10875

2175

8750 2916.66667

SQL> Select Job, Count(*) No _Of_ Emps From Emp Group By Job;
Select Job, Count(*) No _Of_ Emps From Emp Group By Job
*
ERROR at line 1:
ORA-00911: invalid character
SQL> ed
Wrote file afiedt.buf
1* Select Job, Count(*) No_Of_Emps From Emp Group By Job
SQL> /
JOB

NO_OF_EMPS

--------- ---------CLERK

SALESMAN

PRESIDENT

MANAGER

ANALYST

SQL> Select d.Loc ,Count(*) From Emp E,Dept D Where E.Deptno=D.Deptno


2
Group By D.Loc;
LOC

COUNT(*)

------------- ---------NEW YORK

CHICAGO

DALLAS

SQL> Select E.Job, Count(*) From Emp E, Salgrade S Where S.Grade=4 And E.Sal
2
Between S.Losal And S.Hisal Group By E.Job;
JOB

COUNT(*)

--------- ---------MANAGER

ANALYST

SQL> Select Deptno,count(*) From Emp Group by Deptno Having Count(*)>=5;


DEPTNO

COUNT(*)

---------- ---------30

20

SQL> Select Deptno From Emp Where Job= Clerk Group by Deptno Having Count(*)>=2;
Select Deptno From Emp Where Job= Clerk Group by Deptno Having Count(*)>=2
*
ERROR at line 1:
ORA-00911: invalid character
SQL> ed
Wrote file afiedt.buf
1* Select Deptno From Emp Where Job='CLERK' Group by Deptno Having Count(*)>=2
SQL> /
DEPTNO
---------20

SQL> Select Deptno From Dept Where Deptno In(Select Deptno From Emp Group by D
eptno Having Count(*)=(Select Max(Count(*))From Emp Group By Dept no));
Select Deptno From Dept Where Deptno In(Select Deptno From Emp Group by Deptno
Having Count(*)=(Select Max(Count(*))From Emp Group By Dept no))
*
ERROR at line 1:
ORA-00907: missing right parenthesis
SQL> ed

Wrote file afiedt.buf


1
2
3*
SQL>

Select Deptno From Dept Where Deptno In(Select Deptno From Emp
Group by Deptno Having Count(*)=(Select Max(Count(*))From Emp
Group By Deptno))
/
DEPTNO

---------30

SQL> Select Max(Count(*))From Emp Group By Deptno;


MAX(COUNT(*))
------------6

SQL> Select Deptno From Emp Group by Deptno Having Count(*)=6;


DEPTNO
---------30

SQL> Select*From Emp Where Deptno=10 And Sal=(Selct Max(Sal)From Emp


2
Where Deptno=10);
Select*From Emp Where Deptno=10 And Sal=(Selct Max(Sal)From Emp
*
ERROR at line 1:
ORA-00907: missing right parenthesis
SQL> ed
Wrote file afiedt.buf
1 Select*From Emp Where Deptno=10 And Sal=(Select Max(Sal)From Emp
2*
Where Deptno=10)
SQL> /
EMPNO ENAME

JOB

MGR HIREDATE

SAL

COMM

EPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- -----

----7839 KING

PRESIDENT

17-NOV-81

5000

10
SQL> Select x.*From Emp X Where X.Sal=(Select Max(y.Sal)From Emp y Where y.deptn
o=X.deptno);
EMPNO ENAME

JOB

MGR HIREDATE

SAL

COMM

EPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- --------7698 BLAKE

MANAGER

7839 01-MAY-81

2850

7788 SCOTT

ANALYST

7566 19-APR-87

3000

7902 FORD

ANALYST

7566 03-DEC-81

3000

7839 KING

PRESIDENT

17-NOV-81

5000

30
20
20
10
SQL> Select x.* From Emp X Where Sal=(Select Max(Sal) From Emp Y Where Y.Job=X.
Job);
EMPNO ENAME

JOB

MGR HIREDATE

SAL

COMM

EPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- --------7499 ALLEN

SALESMAN

7698 20-FEB-81

1600

7566 JONES

MANAGER

7839 02-APR-81

2975

7788 SCOTT

ANALYST

7566 19-APR-87

3000

7839 KING

PRESIDENT

17-NOV-81

5000

7902 FORD

ANALYST

7566 03-DEC-81

3000

7934 MILLER

CLERK

7782 23-JAN-82

1300

300

30
20
20
10
20
10
6 rows selected.
SQL> Select * From Emp X Where Hiredate=(Select Min(Hiredate)From Emp Y
2
Where Y.Job=X.Job);

EMPNO ENAME

JOB

MGR HIREDATE

SAL

COMM

EPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- --------7369 SMITH

CLERK

7902 17-DEC-80

800

7499 ALLEN

SALESMAN

7698 20-FEB-81

1600

7566 JONES

MANAGER

7839 02-APR-81

2975

7839 KING

PRESIDENT

17-NOV-81

5000

7902 FORD

ANALYST

7566 03-DEC-81

3000

20
300

30
20
10
20
SQL> Select X.* From Emp X, Salgrade S Where X.Hiredate=(Select Min(Y.Hiredate)
2
from Emp Y ,Salgrade G Where G.Grade=S.Grade And Y.sal Between G.
Losal
3
and G.hisal) And X.sal Between S.Losal And S.Hisal;
EMPNO ENAME

JOB

MGR HIREDATE

SAL

COMM

EPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- --------7839 KING

PRESIDENT

17-NOV-81

5000

7566 JONES

MANAGER

7839 02-APR-81

2975

7499 ALLEN

SALESMAN

7698 20-FEB-81

1600

300

7521 WARD

SALESMAN

7698 22-FEB-81

1250

500

7369 SMITH

CLERK

7902 17-DEC-80

800

10
20
30
30
20
SQL> Select Empno,Ename,Sal,Deptno From Emp Where 3>(Select Count(*) From Emp E
Where Emp.Sal<E.Sal);
EMPNO ENAME

SAL

DEPTNO

---------- ---------- ---------- ---------7788 SCOTT

3000

20

7839 KING

5000

10

7902 FORD

3000

20

SQL> ed
Wrote file afiedt.buf
1* Select Empno,Ename,Sal,Deptno From Emp Where 5>(Select Count(*) From Emp E
Where Emp.Sal<E.Sal)
SQL> /
EMPNO ENAME

SAL

DEPTNO

---------- ---------- ---------- ---------7566 JONES

2975

20

7698 BLAKE

2850

30

7788 SCOTT

3000

20

7839 KING

5000

10

7902 FORD

3000

20

SQL> Select * From Emp Where Deptno=30 And Exists(Select Deptno,Count(*) From
Emp Where Deptno=30 Group By Deptno Having Count(*)>5);
EMPNO ENAME

JOB

MGR HIREDATE

SAL

COMM

EPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- --------7499 ALLEN

SALESMAN

7698 20-FEB-81

1600

300

7521 WARD

SALESMAN

7698 22-FEB-81

1250

500

7654 MARTIN

SALESMAN

7698 28-SEP-81

1250

1400

7698 BLAKE

MANAGER

7839 01-MAY-81

2850

7844 TURNER

SALESMAN

7698 08-SEP-81

1500

30
30
30
30
0

30
7900 JAMES

CLERK

7698 03-DEC-81

950

30
6 rows selected.
SQL> Select E.* From Emp E Where &N=(Select Count(Distinct F.Sal) From Emp F
2
Where F.Sal>=E.Sal);
Enter value for n: 3
old 1: Select E.* From Emp E Where &N=(Select Count(Distinct F.Sal) From Emp F
new 1: Select E.* From Emp E Where 3=(Select Count(Distinct F.Sal) From Emp F
EMPNO ENAME

JOB

MGR HIREDATE

SAL

COMM

EPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- --------7566 JONES

MANAGER

7839 02-APR-81

2975

20
SQL> /
Enter value for n: 5
old 1: Select E.* From Emp E Where &N=(Select Count(Distinct F.Sal) From Emp F
new 1: Select E.* From Emp E Where 5=(Select Count(Distinct F.Sal) From Emp F
EMPNO ENAME

JOB

MGR HIREDATE

SAL

COMM

EPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- --------7782 CLARK

MANAGER

7839 09-JUN-81

2450

10
SQL> Select Deptno,Empno,Ename,sal from Emp where 3>(Select Count(*) From Emp F
Where Emp.sal<F.sal And Emp.Deptno=F.Deptno)Group By Deptno,Empno,Ename,Sal;
DEPTNO

EMPNO ENAME

SAL

---------- ---------- ---------- ---------20

7566 JONES

2975

20

7902 FORD

3000

10

7934 MILLER

1300

30

7499 ALLEN

1600

10

7782 CLARK

2450

30

7698 BLAKE

2850

20

7788 SCOTT

3000

10

7839 KING

5000

30

7844 TURNER

1500

9 rows selected.
SQL> select*from x;
select*from x
*
ERROR at line 1:
ORA-04044: procedure, function, package, or type is not allowed here
SQL> desc x;
FUNCTION x RETURNS NUMBER
Argument Name
Type
In/Out Default?
------------------------------ ----------------------- ------ -------P
ST_POINT
IN
SQL> desc x1;
ERROR:
ORA-04043: object x1 does not exist
SQL> create table y(no number(4),name varchar2(20);
create table y(no number(4),name varchar2(20)
*
ERROR at line 1:
ORA-00907: missing right parenthesis
SQL> ed
Wrote file afiedt.buf
1* create table y(no number(4),name varchar2(20))
SQL> /
create table y(no number(4),name varchar2(20))
*
ERROR at line 1:
ORA-00955: name is already used by an existing object
SQL> ed
Wrote file afiedt.buf
1* create table e(no number(4),name varchar2(20))
SQL> /

Table created.
SQL> insert into e values(&no,'&name');
Enter value for no: 1
Enter value for name: a
old 1: insert into e values(&no,'&name')
new 1: insert into e values(1,'a')
1 row created.
SQL> /
Enter value for
Enter value for
old 1: insert
new 1: insert

no: 1
name: a
into e values(&no,'&name')
into e values(1,'a')

1 row created.
SQL> /
Enter value for
Enter value for
old 1: insert
new 1: insert

no: 2
name: b
into e values(&no,'&name')
into e values(2,'b')

1 row created.
SQL> /
Enter value for
Enter value for
old 1: insert
new 1: insert

no: 2
name: b
into e values(&no,'&name')
into e values(2,'b')

1 row created.
SQL> /
Enter value for
Enter value for
old 1: insert
new 1: insert

no: 3
name: c
into e values(&no,'&name')
into e values(3,'c')

1 row created.
SQL> /
Enter value for
Enter value for
old 1: insert
new 1: insert

no: 3
name: c
into e values(&no,'&name')
into e values(3,'c')

1 row created.
SQL> select*from e;
NO NAME
---------- -------------------1 a

1 a
2 b
2 b
3 c
3 c

6 rows selected.
SQL> select e.*,rowid,rownum from e;
NO NAME

ROWID

ROWNUM

---------- -------------------- ------------------ ---------1 a

AAANEoAAEAAAAIdAAA

1 a

AAANEoAAEAAAAIdAAB

2 b

AAANEoAAEAAAAIdAAC

2 b

AAANEoAAEAAAAIdAAD

3 c

AAANEoAAEAAAAIdAAE

3 c

AAANEoAAEAAAAIdAAF

6 rows selected.
SQL> select max(rowid)from e group by no;
MAX(ROWID)
-----------------AAANEoAAEAAAAIdAAB
AAANEoAAEAAAAIdAAD

AAANEoAAEAAAAIdAAF

SQL> delete from e where rowid not in( select max(rowid)from e group by no);
3 rows deleted.
SQL> select e.*,rowid,rownum from e;
NO NAME

ROWID

ROWNUM

---------- -------------------- ------------------ ----------

SQL>

1 a

AAANEoAAEAAAAIdAAB

2 b

AAANEoAAEAAAAIdAAD

3 c

AAANEoAAEAAAAIdAAF

Das könnte Ihnen auch gefallen