You are on page 1of 26

SQL> cl scr

SQL> SELECT Ename, Deptno, Sal, Job


2 FROM Emp
3 WHERE Job = 'MANAGER';
ENAME
DEPTNO
SAL JOB
---------- ---------- ---------- --------BLAKE
30
2850 MANAGER
CLARK
10
2450 MANAGER
JONES
20
2975 MANAGER
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT Ename, Deptno, Sal, Job


FROM Emp
WHERE Job <> 'MANAGER'
/

ENAME
DEPTNO
SAL JOB
---------- ---------- ---------- --------KING
10
5000 PRESIDENT
MARTIN
30
1250 SALESMAN
ALLEN
30
1600 SALESMAN
TURNER
30
1500 SALESMAN
JAMES
30
950 CLERK
WARD
30
1250 SALESMAN
FORD
20
3000 ANALYST
SMITH
20
800 CLERK
SCOTT
20
3000 ANALYST
ADAMS
20
1100 CLERK
MILLER
10
1300 CLERK
11 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT Ename, Deptno, Sal, Job


FROM Emp
WHERE NOT Job = 'MANAGER'
/

ENAME
DEPTNO
SAL JOB
---------- ---------- ---------- --------KING
10
5000 PRESIDENT
MARTIN
30
1250 SALESMAN
ALLEN
30
1600 SALESMAN
TURNER
30
1500 SALESMAN
JAMES
30
950 CLERK
WARD
30
1250 SALESMAN
FORD
20
3000 ANALYST
SMITH
20
800 CLERK
SCOTT
20
3000 ANALYST
ADAMS
20
1100 CLERK
MILLER
10
1300 CLERK
11 rows selected.

SQL> cl scr
SQL>
2
3
4
5
6
7

SELECT
Ename,
Sal,
Job
FROM Emp
WHERE
NOT Sal > 2500 ;

ENAME
SAL JOB
---------- ---------- --------CLARK
2450 MANAGER
MARTIN
1250 SALESMAN
ALLEN
1600 SALESMAN
TURNER
1500 SALESMAN
JAMES
950 CLERK
WARD
1250 SALESMAN
SMITH
800 CLERK
ADAMS
1100 CLERK
MILLER
1300 CLERK
9 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6
7*
SQL>

SELECT
Ename,
Sal,
Job
FROM Emp
WHERE
Sal < 2500
/

ENAME
SAL JOB
---------- ---------- --------CLARK
2450 MANAGER
MARTIN
1250 SALESMAN
ALLEN
1600 SALESMAN
TURNER
1500 SALESMAN
JAMES
950 CLERK
WARD
1250 SALESMAN
SMITH
800 CLERK
ADAMS
1100 CLERK
MILLER
1300 CLERK
9 rows selected.
SQL> cl scr
SQL>
2
3
4
5
6
7
8

SELECT
Ename,
Job,
Sal,
Deptno
FROM Emp
WHERE
NOT Job = 'SALESMAN' AND

9 Deptno = 30 ;
ENAME
---------BLAKE
JAMES

JOB
SAL
DEPTNO
--------- ---------- ---------MANAGER
2850
30
CLERK
950
30

SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6
7
8
9*
SQL>

SELECT
Ename,
Job,
Sal,
Deptno
FROM Emp
WHERE
Job <> 'SALESMAN' AND
Deptno = 30
/

ENAME
---------BLAKE
JAMES

JOB
SAL
DEPTNO
--------- ---------- ---------MANAGER
2850
30
CLERK
950
30

SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6
7
8*
SQL>

SELECT
Ename,
Job,
Sal,
Deptno
FROM Emp
WHERE
Job = 'SALESMAN' AND Deptno = 30
/

ENAME
---------MARTIN
ALLEN
TURNER
WARD

JOB
SAL
DEPTNO
--------- ---------- ---------SALESMAN
1250
30
SALESMAN
1600
30
SALESMAN
1500
30
SALESMAN
1250
30

SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6
7
8*
SQL>
ENAME

SELECT
Ename,
Job,
Sal,
Deptno
FROM Emp
WHERE
NOT(Job = 'SALESMAN' AND Deptno = 30)
/
JOB

SAL

DEPTNO

---------KING
BLAKE
CLARK
JONES
JAMES
FORD
SMITH
SCOTT
ADAMS
MILLER

--------- ---------- ---------PRESIDENT


5000
10
MANAGER
2850
30
MANAGER
2450
10
MANAGER
2975
20
CLERK
950
30
ANALYST
3000
20
CLERK
800
20
ANALYST
3000
20
CLERK
1100
20
CLERK
1300
10

10 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6
7
8*
SQL>

SELECT
Ename,
Job,
Sal,
Deptno
FROM Emp
WHERE
NOT Job = 'SALESMAN' AND NOT Deptno = 30
/

ENAME
---------KING
CLARK
JONES
FORD
SMITH
SCOTT
ADAMS
MILLER

JOB
SAL
DEPTNO
--------- ---------- ---------PRESIDENT
5000
10
MANAGER
2450
10
MANAGER
2975
20
ANALYST
3000
20
CLERK
800
20
ANALYST
3000
20
CLERK
1100
20
CLERK
1300
10

8 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6
7
8*
SQL>

SELECT
Ename,
Job,
Sal,
Deptno
FROM Emp
WHERE
Job <> 'SALESMAN' AND Deptno <> 30
/

ENAME
---------KING
CLARK
JONES
FORD
SMITH

JOB
SAL
DEPTNO
--------- ---------- ---------PRESIDENT
5000
10
MANAGER
2450
10
MANAGER
2975
20
ANALYST
3000
20
CLERK
800
20

SCOTT
ADAMS
MILLER

ANALYST
CLERK
CLERK

3000
1100
1300

20
20
10

8 rows selected.
SQL> cl scr
SQL> SELECT
2
Ename,
3
Deptno,
4
Job,
5
Sal
6 FROM Emp
7 WHERE
8
Deptno = 10 OR
9
Deptno = 20 AND
10
Job = 'SALESMAN' AND
11
Sal > 2500 OR
12
Sal < 1500;
ENAME
DEPTNO JOB
SAL
---------- ---------- --------- ---------KING
10 PRESIDENT
5000
CLARK
10 MANAGER
2450
MARTIN
30 SALESMAN
1250
JAMES
30 CLERK
950
WARD
30 SALESMAN
1250
SMITH
20 CLERK
800
ADAMS
20 CLERK
1100
MILLER
10 CLERK
1300
8 rows selected.
SQL> SELECT
2
Ename,
3
Deptno,
4
Job,
5
Sal
6 FROM Emp
7 WHERE
8
Deptno = 10 OR
9
(Deptno = 20 AND Job = 'SALESMAN') AND
10
(Sal > 2500 OR Sal < 1500);
ENAME
DEPTNO JOB
SAL
---------- ---------- --------- ---------KING
10 PRESIDENT
5000
CLARK
10 MANAGER
2450
MILLER
10 CLERK
1300
SQL> cl scr
SQL> CONN HR/HR
Connected.
SQL> DESC Employees
Name
Null?
----------------------------------------- -------EMPLOYEE_ID
NOT NULL
FIRST_NAME

Type
---------------------------NUMBER(6)
VARCHAR2(20)

LAST_NAME
EMAIL
PHONE_NUMBER
HIRE_DATE
JOB_ID
SALARY
COMMISSION_PCT
MANAGER_ID
DEPARTMENT_ID
SQL> SELECT EMPLOYEE_ID
2 FROM Employees;
EMPLOYEE_ID
----------100
101
102
103
104
105
106
107
108
109
110
EMPLOYEE_ID
----------111
112
113
114
115
116
117
118
119
120
121
EMPLOYEE_ID
----------122
123
124
125
126
127
128
129
130
131
132
EMPLOYEE_ID
----------133
134
135

NOT NULL VARCHAR2(25)


NOT NULL VARCHAR2(25)
VARCHAR2(20)
NOT NULL DATE
NOT NULL VARCHAR2(10)
NUMBER(8,2)
NUMBER(2,2)
NUMBER(6)
NUMBER(4)

136
137
138
139
140
141
142
143
EMPLOYEE_ID
----------144
145
146
147
148
149
150
151
152
153
154
EMPLOYEE_ID
----------155
156
157
158
159
160
161
162
163
164
165
EMPLOYEE_ID
----------166
167
168
169
170
171
172
173
174
175
176
EMPLOYEE_ID
----------177
178
179
180
181
182
183

184
185
186
187
EMPLOYEE_ID
----------188
189
190
191
192
193
194
195
196
197
198
EMPLOYEE_ID
----------199
200
201
202
203
204
205
206
107 rows selected.
SQL> cl scr
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

SELECT
Department_ID, Job_ID, SUM(Salary), AVG(Salary)
FROm Employees
WHERE
(
(DEPARTMENT_ID = 20 AND (
JOB_ID = 'MK_MAN' OR
JOB_ID = 'MK_REP' OR
JOB_ID = 'PU_MAN' OR
JOB_ID = 'PU_CLERK' OR
JOB_ID = 'HR_REP' OR
JOB_ID = 'SH_CLERK' OR
JOB_ID = 'IT_PROG' OR
JOB_ID = 'SA_REP'
) AND
(
SALARY >= 5000 AND SALARY <= 30000
)
) OR
(DEPARTMENT_ID = 30 AND (
JOB_ID = 'MK_MAN' OR
JOB_ID = 'MK_REP' OR
JOB_ID = 'PU_MAN' OR

24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83

JOB_ID
JOB_ID
JOB_ID
JOB_ID
JOB_ID
) AND
(
SALARY
)
) OR
(DEPARTMENT_ID = 40 AND
JOB_ID
JOB_ID
JOB_ID
JOB_ID
JOB_ID
JOB_ID
JOB_ID
JOB_ID
) AND
(
SALARY
)
) OR
(DEPARTMENT_ID = 50 AND
JOB_ID
JOB_ID
JOB_ID
JOB_ID
JOB_ID
JOB_ID
JOB_ID
JOB_ID
) AND
(
SALARY
)
) OR
(DEPARTMENT_ID = 60 AND
JOB_ID
JOB_ID
JOB_ID
JOB_ID
JOB_ID
JOB_ID
JOB_ID
JOB_ID
) AND
(
SALARY
)
) OR
(DEPARTMENT_ID = 80 AND
JOB_ID
JOB_ID
JOB_ID
JOB_ID
JOB_ID
JOB_ID
JOB_ID

=
=
=
=
=

'PU_CLERK' OR
'HR_REP' OR
'SH_CLERK' OR
'IT_PROG' OR
'SA_REP'

>= 5000 AND SALARY <= 30000


(
=
=
=
=
=
=
=
=

'MK_MAN' OR
'MK_REP' OR
'PU_MAN' OR
'PU_CLERK' OR
'HR_REP' OR
'SH_CLERK' OR
'IT_PROG' OR
'SA_REP'

>= 5000 AND SALARY <= 30000


(
=
=
=
=
=
=
=
=

'MK_MAN' OR
'MK_REP' OR
'PU_MAN' OR
'PU_CLERK' OR
'HR_REP' OR
'SH_CLERK' OR
'IT_PROG' OR
'SA_REP'

>= 5000 AND SALARY <= 30000


(
=
=
=
=
=
=
=
=

'MK_MAN' OR
'MK_REP' OR
'PU_MAN' OR
'PU_CLERK' OR
'HR_REP' OR
'SH_CLERK' OR
'IT_PROG' OR
'SA_REP'

>= 5000 AND SALARY <= 30000


(
=
=
=
=
=
=
=

'MK_MAN' OR
'MK_REP' OR
'PU_MAN' OR
'PU_CLERK' OR
'HR_REP' OR
'SH_CLERK' OR
'IT_PROG' OR

84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119*
SQL>

JOB_ID = 'SA_REP'
) AND
(
SALARY >= 5000 AND SALARY <= 30000
)
) OR
(DEPARTMENT_ID = 20 AND
JOB_ID
JOB_ID
JOB_ID
JOB_ID
JOB_ID
JOB_ID
JOB_ID
JOB_ID
) AND
(
SALARY
)
) OR
(DEPARTMENT_ID = 20 AND
JOB_ID
JOB_ID
JOB_ID
JOB_ID
JOB_ID
JOB_ID
JOB_ID
JOB_ID
) AND
(
SALARY
)
)

(
=
=
=
=
=
=
=
=

'MK_MAN' OR
'MK_REP' OR
'PU_MAN' OR
'PU_CLERK' OR
'HR_REP' OR
'SH_CLERK' OR
'IT_PROG' OR
'SA_REP'

>= 5000 AND SALARY <= 30000


(
=
=
=
=
=
=
=
=

'MK_MAN' OR
'MK_REP' OR
'PU_MAN' OR
'PU_CLERK' OR
'HR_REP' OR
'SH_CLERK' OR
'IT_PROG' OR
'SA_REP'

>= 5000 AND SALARY <= 30000

)
GROUP BY Department_ID, Job_ID
/

DEPARTMENT_ID
------------20
20
30
40
60
80

JOB_ID
SUM(SALARY) AVG(SALARY)
---------- ----------- ----------MK_MAN
13000
13000
MK_REP
6000
6000
PU_MAN
11000
11000
HR_REP
6500
6500
IT_PROG
15000
7500
SA_REP
243500 8396.55172

6 rows selected.
SQL> ed
Wrote file afiedt.buf
1 WHERE
2 (
3
(DEPARTMENT_ID = 20
4
DEPARTMENT_ID = 30
5
DEPARTMENT_ID = 40
6
DEPARTMENT_ID = 50
7
DEPARTMENT_ID = 60
8
DEPARTMENT_ID = 80

OR
OR
OR
OR
OR

9
) AND
10 (JOB_ID = 'MK_MAN' OR
11
JOB_ID = 'MK_REP' OR
12
JOB_ID = 'PU_MAN' OR
13
JOB_ID = 'PU_CLERK' OR
14
JOB_ID = 'HR_REP' OR
15
JOB_ID = 'SH_CLERK' OR
16
JOB_ID = 'IT_PROG' OR
17
JOB_ID = 'SA_REP'
18
) AND
19 (
20 SALARY >= 5000 AND SALARY <= 30000
21* )
SQL> /
WHERE
*
ERROR at line 1:
ORA-00900: invalid SQL statement
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26*
SQL>

SELECT
Department_ID, Job_ID, SUM(Salary), AVG(Salary)
FROM Employees
WHERE
(
(DEPARTMENT_ID = 20 OR
DEPARTMENT_ID = 30 OR
DEPARTMENT_ID = 40 OR
DEPARTMENT_ID = 50 OR
DEPARTMENT_ID = 60 OR
DEPARTMENT_ID = 80
) AND
(JOB_ID = 'MK_MAN' OR
JOB_ID = 'MK_REP' OR
JOB_ID = 'PU_MAN' OR
JOB_ID = 'PU_CLERK' OR
JOB_ID = 'HR_REP' OR
JOB_ID = 'SH_CLERK' OR
JOB_ID = 'IT_PROG' OR
JOB_ID = 'SA_REP'
) AND
(
SALARY >= 5000 AND SALARY <= 30000
)
)
GROUP BY Department_ID, Job_ID
/

DEPARTMENT_ID
------------20
20
30
40
60
80

JOB_ID
SUM(SALARY) AVG(SALARY)
---------- ----------- ----------MK_MAN
13000
13000
MK_REP
6000
6000
PU_MAN
11000
11000
HR_REP
6500
6500
IT_PROG
15000
7500
SA_REP
243500 8396.55172

6 rows selected.
SQL> cl scr
SQL>
SQL>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

SET AUTOTRACE ON EXPLAIN


SELECT
Department_ID, Job_ID, SUM(Salary), AVG(Salary)
FROM Employees
WHERE
(
(DEPARTMENT_ID = 20 OR
DEPARTMENT_ID = 30 OR
DEPARTMENT_ID = 40 OR
DEPARTMENT_ID = 50 OR
DEPARTMENT_ID = 60 OR
DEPARTMENT_ID = 80
) AND
(JOB_ID = 'MK_MAN' OR
JOB_ID = 'MK_REP' OR
JOB_ID = 'PU_MAN' OR
JOB_ID = 'PU_CLERK' OR
JOB_ID = 'HR_REP' OR
JOB_ID = 'SH_CLERK' OR
JOB_ID = 'IT_PROG' OR
JOB_ID = 'SA_REP'
) AND
(
SALARY >= 5000 AND SALARY <= 30000
)
)
GROUP BY Department_ID, Job_ID;

DEPARTMENT_ID
------------20
20
30
40
60
80

JOB_ID
SUM(SALARY) AVG(SALARY)
---------- ----------- ----------MK_MAN
13000
13000
MK_REP
6000
6000
PU_MAN
11000
11000
HR_REP
6500
6500
IT_PROG
15000
7500
SA_REP
243500 8396.55172

6 rows selected.
Execution Plan
---------------------------------------------------------0
SELECT STATEMENT Optimizer=ALL_ROWS (Cost=4 Card=34 Bytes=54
4)
1
2

SQL>
2
3
4

0
1

SORT (GROUP BY) (Cost=4 Card=34 Bytes=544)


TABLE ACCESS (FULL) OF 'EMPLOYEES' (TABLE) (Cost=3 Card=
47 Bytes=752)

SELECT
Department_ID, Job_ID, SUM(Salary), AVG(Salary)
FROm Employees
WHERE

5 (
6
(DEPARTMENT_ID = 20 AND (
7
JOB_ID = 'MK_MAN' OR
8
JOB_ID = 'MK_REP' OR
9
JOB_ID = 'PU_MAN' OR
10
JOB_ID = 'PU_CLERK' OR
11
JOB_ID = 'HR_REP' OR
12
JOB_ID = 'SH_CLERK' OR
13
JOB_ID = 'IT_PROG' OR
14
JOB_ID = 'SA_REP'
15
) AND
16
(
17
SALARY >= 5000 AND SALARY
18
)
19 ) OR
20 (DEPARTMENT_ID = 30 AND (
21
JOB_ID = 'MK_MAN' OR
22
JOB_ID = 'MK_REP' OR
23
JOB_ID = 'PU_MAN' OR
24
JOB_ID = 'PU_CLERK' OR
25
JOB_ID = 'HR_REP' OR
26
JOB_ID = 'SH_CLERK' OR
27
JOB_ID = 'IT_PROG' OR
28
JOB_ID = 'SA_REP'
29
) AND
30
(
31
SALARY >= 5000 AND SALARY
32
)
33 ) OR
34 (DEPARTMENT_ID = 40 AND (
35
JOB_ID = 'MK_MAN' OR
36
JOB_ID = 'MK_REP' OR
37
JOB_ID = 'PU_MAN' OR
38
JOB_ID = 'PU_CLERK' OR
39
JOB_ID = 'HR_REP' OR
40
JOB_ID = 'SH_CLERK' OR
41
JOB_ID = 'IT_PROG' OR
42
JOB_ID = 'SA_REP'
43
) AND
44
(
45
SALARY >= 5000 AND SALARY
46
)
47 ) OR
48 (DEPARTMENT_ID = 50 AND (
49
JOB_ID = 'MK_MAN' OR
50
JOB_ID = 'MK_REP' OR
51
JOB_ID = 'PU_MAN' OR
52
JOB_ID = 'PU_CLERK' OR
53
JOB_ID = 'HR_REP' OR
54
JOB_ID = 'SH_CLERK' OR
55
JOB_ID = 'IT_PROG' OR
56
JOB_ID = 'SA_REP'
57
) AND
58
(
59
SALARY >= 5000 AND SALARY
60
)
61 ) OR
62 (DEPARTMENT_ID = 60 AND (
63
JOB_ID = 'MK_MAN' OR
64
JOB_ID = 'MK_REP' OR

<= 30000

<= 30000

<= 30000

<= 30000

65
JOB_ID = 'PU_MAN' OR
66
JOB_ID = 'PU_CLERK' OR
67
JOB_ID = 'HR_REP' OR
68
JOB_ID = 'SH_CLERK' OR
69
JOB_ID = 'IT_PROG' OR
70
JOB_ID = 'SA_REP'
71
) AND
72
(
73
SALARY >= 5000 AND SALARY
74
)
75 ) OR
76 (DEPARTMENT_ID = 80 AND (
77
JOB_ID = 'MK_MAN' OR
78
JOB_ID = 'MK_REP' OR
79
JOB_ID = 'PU_MAN' OR
80
JOB_ID = 'PU_CLERK' OR
81
JOB_ID = 'HR_REP' OR
82
JOB_ID = 'SH_CLERK' OR
83
JOB_ID = 'IT_PROG' OR
84
JOB_ID = 'SA_REP'
85
) AND
86
(
87
SALARY >= 5000 AND SALARY
88
)
89 ) OR
90 (DEPARTMENT_ID = 20 AND (
91
JOB_ID = 'MK_MAN' OR
92
JOB_ID = 'MK_REP' OR
93
JOB_ID = 'PU_MAN' OR
94
JOB_ID = 'PU_CLERK' OR
95
JOB_ID = 'HR_REP' OR
96
JOB_ID = 'SH_CLERK' OR
97
JOB_ID = 'IT_PROG' OR
98
JOB_ID = 'SA_REP'
99
) AND
100
(
101
SALARY >= 5000 AND SALARY
102
)
103 ) OR
104 (DEPARTMENT_ID = 20 AND (
105
JOB_ID = 'MK_MAN' OR
106
JOB_ID = 'MK_REP' OR
107
JOB_ID = 'PU_MAN' OR
108
JOB_ID = 'PU_CLERK' OR
109
JOB_ID = 'HR_REP' OR
110
JOB_ID = 'SH_CLERK' OR
111
JOB_ID = 'IT_PROG' OR
112
JOB_ID = 'SA_REP'
113
) AND
114
(
115
SALARY >= 5000 AND SALARY
116
)
117 )
118 )
119 GROUP BY Department_ID, Job_ID;
DEPARTMENT_ID
------------20
20

JOB_ID
SUM(SALARY) AVG(SALARY)
---------- ----------- ----------MK_MAN
13000
13000
MK_REP
6000
6000

<= 30000

<= 30000

<= 30000

<= 30000

30
40
60
80

PU_MAN
HR_REP
IT_PROG
SA_REP

11000
11000
6500
6500
15000
7500
243500 8396.55172

6 rows selected.
Execution Plan
---------------------------------------------------------0
SELECT STATEMENT Optimizer=ALL_ROWS (Cost=4 Card=6 Bytes=96)
1
0 SORT (GROUP BY) (Cost=4 Card=6 Bytes=96)
2
1
TABLE ACCESS (FULL) OF 'EMPLOYEES' (TABLE) (Cost=3 Card=
36 Bytes=576)

SQL> CONN SCOTT/TIGEr


Connected.
SQL> cl scr
SQL> SET AUTOTRACE OFF EXPLAIN
SQL> cl scr
SQL> SELECT Ename, Sal, Deptno, Job
2 FROM Emp
3 WHERE Job = 'MANAGER';
ENAME
SAL
DEPTNO JOB
---------- ---------- ---------- --------BLAKE
2850
30 MANAGER
CLARK
2450
10 MANAGER
JONES
2975
20 MANAGER
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT Ename, Sal, Deptno, Job


FROM Emp
WHERE Job > 'MANAGER'
/

ENAME
SAL
DEPTNO JOB
---------- ---------- ---------- --------KING
5000
10 PRESIDENT
MARTIN
1250
30 SALESMAN
ALLEN
1600
30 SALESMAN
TURNER
1500
30 SALESMAN
WARD
1250
30 SALESMAN
SQL> cl scr
SQL> SELECT Ename, Sal, HireDate
2 FROM Emp;
ENAME
SAL HIREDATE
---------- ---------- --------KING
5000 17-NOV-81
BLAKE
2850 01-MAY-81

CLARK
JONES
MARTIN
ALLEN
TURNER
JAMES
WARD
FORD
SMITH

2450
2975
1250
1600
1500
950
1250
3000
800

09-JUN-81
02-APR-81
28-SEP-81
20-FEB-81
08-SEP-81
03-DEC-81
22-FEB-81
03-DEC-81
17-DEC-80

ENAME
SAL HIREDATE
---------- ---------- --------SCOTT
3000 09-DEC-82
ADAMS
1100 12-JAN-83
MILLER
1300 23-JAN-82
14 rows selected.
SQL> SELECT Ename, Sal, HireDate
2 FROM Emp
3 WHERE HireDate = '03-DEC-81';
ENAME
SAL HIREDATE
---------- ---------- --------JAMES
950 03-DEC-81
FORD
3000 03-DEC-81
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT Ename, Sal, HireDate


FROM Emp
WHERE HireDate = '03-DECEMBER-1981'
/

ENAME
SAL HIREDATE
---------- ---------- --------JAMES
950 03-DEC-81
FORD
3000 03-DEC-81
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT Ename, Sal, HireDate


FROM Emp
WHERE HireDate < '03-DECEMBER-1981'
/

ENAME
SAL HIREDATE
---------- ---------- --------KING
5000 17-NOV-81
BLAKE
2850 01-MAY-81
CLARK
2450 09-JUN-81
JONES
2975 02-APR-81
MARTIN
1250 28-SEP-81
ALLEN
1600 20-FEB-81
TURNER
1500 08-SEP-81
WARD
1250 22-FEB-81
SMITH
800 17-DEC-80

9 rows selected.
SQL> ed
Wrote file afiedt.buf
1 SELECT Ename, Sal, HireDate
2 FROM Emp
3* WHERE HireDate < 'DECEMBER-03-1981'
SQL> /
WHERE HireDate < 'DECEMBER-03-1981'
*
ERROR at line 3:
ORA-01858: a non-numeric character was found where a numeric was expected
SQL> cl scr
SQL> SELECT Ename, Sal, Comm
2 FROM Emp
3 WHERE Comm = NULL;
no rows selected
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT Ename, Sal, Comm


FROM Emp
WHERE Comm <> NULL
/

no rows selected
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT Ename, Sal, Comm


FROM Emp
WHERE Comm IS NULL
/

ENAME
SAL
COMM
---------- ---------- ---------KING
5000
BLAKE
2850
CLARK
2450
JONES
2975
JAMES
950
FORD
3000
SMITH
800
SCOTT
3000
ADAMS
1100
MILLER
1300
10 rows selected.
SQL> ed
Wrote file afiedt.buf
1 SELECT Ename, Sal, Comm

2 FROM Emp
3* WHERE Comm IS NOT NULL
SQL> /
ENAME
SAL
COMM
---------- ---------- ---------MARTIN
1250
1400
ALLEN
1600
300
TURNER
1500
0
WARD
1250
500
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT Ename, Sal, MGR


FROM Emp
WHERE MGR IS NULL
/

ENAME
SAL
MGR
---------- ---------- ---------KING
5000
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT Ename, Sal, MGR


FROM Emp
WHERE MGR IS NOT NULL
/

ENAME
SAL
MGR
---------- ---------- ---------BLAKE
2850
7839
CLARK
2450
7839
JONES
2975
7839
MARTIN
1250
7698
ALLEN
1600
7698
TURNER
1500
7698
JAMES
950
7698
WARD
1250
7698
FORD
3000
7566
SMITH
800
7902
SCOTT
3000
7566
ENAME
SAL
MGR
---------- ---------- ---------ADAMS
1100
7788
MILLER
1300
7782
13 rows selected.
SQL> cl scr
SQL> ed
Wrote file afiedt.buf
1 SELECT Ename, Sal, Deptno, HireDate, Job
2 FROM Emp
3 WHERE

4* Sal BETWEEN 2000 AND 3000


SQL> /
ENAME
SAL
DEPTNO HIREDATE JOB
---------- ---------- ---------- --------- --------BLAKE
2850
30 01-MAY-81 MANAGER
CLARK
2450
10 09-JUN-81 MANAGER
JONES
2975
20 02-APR-81 MANAGER
FORD
3000
20 03-DEC-81 ANALYST
SCOTT
3000
20 09-DEC-82 ANALYST
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT Ename, Sal, Deptno, HireDate, Job


FROM Emp
WHERE
Sal NOT BETWEEN 2000 AND 3000
/

ENAME
SAL
DEPTNO HIREDATE JOB
---------- ---------- ---------- --------- --------KING
5000
10 17-NOV-81 PRESIDENT
MARTIN
1250
30 28-SEP-81 SALESMAN
ALLEN
1600
30 20-FEB-81 SALESMAN
TURNER
1500
30 08-SEP-81 SALESMAN
JAMES
950
30 03-DEC-81 CLERK
WARD
1250
30 22-FEB-81 SALESMAN
SMITH
800
20 17-DEC-80 CLERK
ADAMS
1100
20 12-JAN-83 CLERK
MILLER
1300
10 23-JAN-82 CLERK
9 rows selected.
SQL> cl scr
SQL>
2
3
4
5
6

SELECT
Ename,
Job
FROM Emp
WHERE
Ename LIKE 'S%';

ENAME
---------SMITH
SCOTT

JOB
--------CLERK
ANALYST

SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6*
SQL>
ENAME

SELECT
Ename,
Job
FROM Emp
WHERE
Ename LIKE '%S%'
/
JOB

---------JONES
JAMES
SMITH
SCOTT
ADAMS

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

SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6*
SQL>

SELECT
Ename,
Job
FROM Emp
WHERE
Ename LIKE '%S'
/

ENAME
---------JONES
JAMES
ADAMS

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

SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6*
SQL>

SELECT
Ename,
Job
FROM Emp
WHERE
Ename LIKE 'J%S'
/

ENAME
---------JONES
JAMES

JOB
--------MANAGER
CLERK

SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6*
SQL>

SELECT
Ename,
Job
FROM Emp
WHERE
Ename LIKE 'J_N%S'
/

ENAME
JOB
---------- --------JONES
MANAGER
SQL> ed
Wrote file afiedt.buf
1 SELECT
2
Ename,

3
Job
4 FROM Emp
5 WHERE
6* Job LIKE '%MAN%
SQL> /
ERROR:
ORA-01756: quoted string not properly terminated
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6*
SQL>

SELECT
Ename,
Job
FROM Emp
WHERE
Job LIKE '%MAN%'
/

ENAME
---------BLAKE
CLARK
JONES
MARTIN
ALLEN
TURNER
WARD

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

7 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6*
SQL>

SELECT
Ename,
Job
FROM Emp
WHERE
Job LIKE 'MAN%'
/

ENAME
---------BLAKE
CLARK
JONES

JOB
--------MANAGER
MANAGER
MANAGER

SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6*
SQL>

SELECT
Ename,
Job
FROM Emp
WHERE
Job LIKE '%MAN'
/

ENAME
---------MARTIN
ALLEN
TURNER
WARD

JOB
--------SALESMAN
SALESMAN
SALESMAN
SALESMAN

SQL> cl scr
SQL> SELECT Ename, Deptno, Sal, Job
2 FROM Emp
3 WHERE Job = 'CLERK';
ENAME
DEPTNO
SAL JOB
---------- ---------- ---------- --------JAMES
30
950 CLERK
SMITH
20
800 CLERK
ADAMS
20
1100 CLERK
MILLER
10
1300 CLERK
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT Ename, Deptno, Sal, Job


FROM Emp
WHERE 'CLERK' = Job
/

ENAME
DEPTNO
SAL JOB
---------- ---------- ---------- --------JAMES
30
950 CLERK
SMITH
20
800 CLERK
ADAMS
20
1100 CLERK
MILLER
10
1300 CLERK
SQL> cl scr
SQL> SELECT Ename, JOb, Sal, Deptno
2 FROM Emp
3 WHERE Ename = 'SM%';
no rows selected
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT Ename, JOb, Sal, Deptno


FROM Emp
WHERE Ename LIKE 'SM%'
/

ENAME
JOB
SAL
DEPTNO
---------- --------- ---------- ---------SMITH
CLERK
800
20
SQL> ed
Wrote file afiedt.buf
1 SELECT Ename, JOb, Sal, Deptno
2 FROM Emp

3* WHERE 'SM%' LIKE Ename


SQL> /
no rows selected
SQL> cl scr
SQL> SELECT Ename, Sal, Job, HireDate
2 FROM Emp;
ENAME
SAL JOB
HIREDATE
---------- ---------- --------- --------KING
5000 PRESIDENT 17-NOV-81
BLAKE
2850 MANAGER 01-MAY-81
CLARK
2450 MANAGER 09-JUN-81
JONES
2975 MANAGER 02-APR-81
MARTIN
1250 SALESMAN 28-SEP-81
ALLEN
1600 SALESMAN 20-FEB-81
TURNER
1500 SALESMAN 08-SEP-81
JAMES
950 CLERK
03-DEC-81
WARD
1250 SALESMAN 22-FEB-81
FORD
3000 ANALYST 03-DEC-81
SMITH
800 CLERK
17-DEC-80
ENAME
SAL JOB
---------- ---------- --------SCOTT
3000 ANALYST
ADAMS
1100 CLERK
MILLER
1300 CLERK

HIREDATE
--------09-DEC-82
12-JAN-83
23-JAN-82

14 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT Ename, Sal, Job, HireDate


FROM Emp
WHERE HireDate = '03-DEC-81'
/

ENAME
SAL JOB
---------- ---------- --------JAMES
950 CLERK
FORD
3000 ANALYST

HIREDATE
--------03-DEC-81
03-DEC-81

SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT Ename, Sal, Job, HireDate


FROM Emp
WHERE HireDate = '03-DEC-1981'
/

ENAME
SAL JOB
---------- ---------- --------JAMES
950 CLERK
FORD
3000 ANALYST
SQL> ed
Wrote file afiedt.buf

HIREDATE
--------03-DEC-81
03-DEC-81

1
2
3*
SQL>

SELECT Ename, Sal, Job, HireDate


FROM Emp
WHERE HireDate LIKE '03-DEC-1981'
/

no rows selected
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT Ename, Sal, Job, HireDate


FROM Emp
WHERE HireDate LIKE '03-DEC-81'
/

ENAME
SAL JOB
---------- ---------- --------JAMES
950 CLERK
FORD
3000 ANALYST

HIREDATE
--------03-DEC-81
03-DEC-81

SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT Ename, Sal, Job, HireDate


FROM Emp
WHERE HireDate LIKE '%-DEC-81'
/

ENAME
SAL JOB
---------- ---------- --------JAMES
950 CLERK
FORD
3000 ANALYST

HIREDATE
--------03-DEC-81
03-DEC-81

SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT Ename, Sal, Job, HireDate


FROM Emp
WHERE HireDate LIKE '%-%-81'
/

ENAME
SAL JOB
HIREDATE
---------- ---------- --------- --------KING
5000 PRESIDENT 17-NOV-81
BLAKE
2850 MANAGER 01-MAY-81
CLARK
2450 MANAGER 09-JUN-81
JONES
2975 MANAGER 02-APR-81
MARTIN
1250 SALESMAN 28-SEP-81
ALLEN
1600 SALESMAN 20-FEB-81
TURNER
1500 SALESMAN 08-SEP-81
JAMES
950 CLERK
03-DEC-81
WARD
1250 SALESMAN 22-FEB-81
FORD
3000 ANALYST 03-DEC-81
10 rows selected.
SQL> cl scr
SQL> SELECT * FROM Dept;

DEPTNO
---------10
20
30
40

DNAME
-------------ACCOUNTING
RESEARCH
SALES
OPERATIONS

LOC
------------NEW YORK
DALLAS
CHICAGO
BOSTON

SQL> INSERT INTO Dept


2 VALUES(50, 'SHIPPING_BASE', 'CHENNAI');
1 row created.
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT *
FROM Dept
WHERE Dname LIKE '%_%'
/

DEPTNO
---------10
20
30
40
50

DNAME
-------------ACCOUNTING
RESEARCH
SALES
OPERATIONS
SHIPPING_BASE

LOC
------------NEW YORK
DALLAS
CHICAGO
BOSTON
CHENNAI

SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT *
FROM Dept
WHERE Dname LIKE '%\_%'
/

no rows selected
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT *
FROM Dept
WHERE Dname LIKE '%\_%' ESCAPE '\'
/

DEPTNO DNAME
LOC
---------- -------------- ------------50 SHIPPING_BASE CHENNAI
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT *
FROM Dept
WHERE Dname LIKE '%@_%' ESCAPE '@'
/
DEPTNO DNAME

LOC

---------- -------------- ------------50 SHIPPING_BASE CHENNAI


SQL> ed
Wrote file afiedt.buf
1 SELECT *
2 FROM Dept
3* WHERE Dname LIKE '%&_%' ESCAPE '&'
SQL> /
Enter value for _: \
no rows selected
SQL> SPOOL OFF

You might also like