You are on page 1of 158

]<gj]<]<j<^]<]

? ? ? ?
K


K
K

DataInformations


]<gj]<]<j<^]<]

W
K

W
W
K J

K J

K J
K J

KESQLF J
KSQL PLUS J

W
K

K
K
K

W
K

--

ERecordF

J W
J W

J W


J
J W

J
W
J

W

EFieldF

W

W

W
W

EF

Database Concepts

EKKKKK
F
ERECORDF

K
EFIELDF
KDATABASE

KEF

W
--

KElectronic Spread sheets


K
KFilling Cabinet

Database

EF

Database Mangement System (DBMS)

KEF

Type of Database ManagementSystems

Hierarchical

Relational

EF

--

Network

W
Hierarchical database Mangement system

KMain Frame

Network database Mangement system

K
Relational database Mangement system

Employee Table
EMPNO
7839
7698
7782
7566
7369
7499
7521
7698
7654

ENAME
KING
BLAKE
CLARK
JONES
SMITH
ALLEN
WARD
MARTN
SCOTT

JOB
PRESIDENT
MANAGER
MANAGER
MANAGER
CLERK
SALESMAN
SALESMAN
SALESMAN
ANALYST

Column
DEPTNO
10
30
10
20
20
30
30
30
20

Department Table
DEPTNO
10
20
30
40

DNAME
ACCOUNT
RESEARCH
SALES
OPRATIONS

Row

LOC
NEW YORK
DALLAS
CHICAGO
BOSTON

Relation

EF

--

Relational Databse

EColumnF
KERecordFERowFEField F

ERelationsF

EFK




KEDEPTNOF

Manipulate with relational database


Structured Query


FSQL

EObjectsFELanguage

ESQLF
ESQL*PLUSFSQL

SQL

SQL

WSQL*PLUS

--

Structured Query Language (SQL)


Data Retrieveal
(DML)
Data Manipulation
Language

SELECT

INSERT

UPDATE

DELETE

CREATE

Alter

(DDL)
DROP
Data Definition Language
RENAME

TRUNCATE

COMMIT
Transaction Control

ROLLBACK

SAVEPOINT
(DCL)
Data Control Language

GRANT
REVOKE

--

scott

tiger

EF

KSQL* PLUSEF
sql*plusEF
EFETIGERFESCOTTF

KSQL

FEMANAGERFESYSTEMF
SQL*PLUS E

ESQL > F

SQL > EDIT


SQL*PLUS

EF
SQL*PLUS

KSQL > EDW


--

SQL > RUN


SQL*PLUS

KSQL > RW
SQL > SPOOL Filename

SQL*PLUS

ELSTF

K SQL > SPOOL OUTW

SQL > SAVE filename

KEsqlF

KSQL > SAVE test.sqlWtest.sql

SQL > GET filename

KSQL > GET test.sqlWtest.sqlK

SQL > START filename

sql

WEtest.sqlF

SQL > START

test.sql

--

SQL > @ filename


K
SQL > LIST

W
SQL > L 1 3

--

KETABLE , ROW , COLUMNF

SQLSQL*PLUS

EXFEFJ

EFKSQL*PLUSSELECT
EFKDML

SQL> SPOOL
EFK

EFL 2 4
EFSQL> START
EFSQL RUN

- -


]<gj]<]<j<^]<]

ESELECTF

W
KSELECT

W
W
KSELECT J

KSELECT J
KSELECT J
KEAliasesF J

KSELECT J
KConcatenation ( | | ) J
KDISTINCT J

Kdescribe (desc) J
KNULL J

W
K

W
K
K
K

W
K

- -

KSELECTEF

SELECT
* or Columns [alias]
FROM
Table
WHERE
condition or conditions
ORDER BY Column or Alias [ASC or DESC] ;

KSELECT

K*

KColumns
KAlises

KFROM
KTable

KWHERE
KConditions

KORDER BY
KColumn or Alies
K;

- -

KSQL
SQL

SQL J
KNot Case SensitiveSQL

KE,F J

KSQL J

J
KESELECT , FROM , WHERE , ORDER BYFKeywords

K J
KE;F J

KE;FSQL*PLUSW J

WSQL
WSQL
K E;F J

KSQL > ELF J


KSQL >ERUNF J

SQL



EEMPF

EEFJ FEDEPTF
K

- -

KDEPTWEF

SQL> SELECT *
2 FROM dept ;
DEPTNO
-----------10
20
30
40

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

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

DEPT
E*FEDEPTNO , DNAME , LOCF

KDEPTWEF

SQL> SELECT deptno , dname

2 FROM dept ;
DEPTNO
-----------10
20
30
40

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

E,F
KEDEPTF
- -

WEAliasesF
EAliasesF

WK
KEASF J

KESpaceF J
E"

"F J
K

KWEF

SQL> SELECT ename AS name , sal salary , job "employee job"


2 FROM emp ;
NAME
--------SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS

SALARY
-----------800
1600
1250
2975
1250
2850
2450
3000
5000
1500
1100

employee job
----------------CLERK
SALESMAN
SALESMAN
MANAGER
SALESMAN
MANAGER
MANAGER
ANALYST
PRESIDENT
SALESMAN
CLERK

NAMEename
E" "FSALARY
K

- -

WSELECT


ESAL*12F

KESAL + 500F
K
Arithmetic Operators
KEHF J

KEJ F J
KE*F J
KELF J

FROMSQL

KWEF

SQL> SELECT ename , sal , sal*12 "annual salary"


2 FROM emp ;
3
ENAME
SAL
annual salary
-------------------- ----------------SMITH
800
9600
ALLEN
1600
19200
WARD
1250
15000
JONES
2975
35700

- -

Operator Precedence

WSQL
K J
K J

J
KEF

1 100*(40+10) = 100*50=5000 .
2 (100*40)+10 = 4000+10= 4010 .

KWEF

SQL> SELECT ename , sal , 12*sal+100


2 FROM emp;

ENAME
---------SMITH
ALLEN

SAL
-------------------800
1600

KEFEF

12*SAL+100
-------------------9700
19300

KWEF
SQL> SELECT ename , sal , 12*(sal+100)
2 FROM emp;
ENAME
---------SMITH
ALLEN

SAL
-------------------800
1600

EF

12*(SAL+100)
-------------------10800
20400

KEF

KEF

- -

KConcatenation ( || )

E||F
Concatenation
KE' 'F

SQL> SELECT ename, job , ename||job as "employees"


2 FROM emp ;
ENAME
---------SMITH
ALLEN
WARD
JONES
MARTIN

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

employees
------------------SMITHCLERK
ALLENSALESMAN
WARDSALESMAN
JONESMANAGER
MARTINSALESMAN

E||F
Kemployees

SQL> SELECT ename, job , ename||' is a '||job as "employees"


2 FROM emp ;
ENAME
---------SMITH
ALLEN
WARD
JONES
MARTIN

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

employees
------------------SMITH is a CLERK
ALLEN is a SALESMAN
WARD is a SALESMAN
JONES is a MANAGER
MARTIN is a SALESMAN

Eis aF
KE||F

- -

WDISTINCT

EEMPF

SQL> SELECT deptno


2 FROM emp ;

DEPTNO
-----------20
30
30
20
30
30


WSELECTEdistinctF

SQL> SELECT DISTINCT deptno


2 FROM emp ;

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

KDISTINCT

- -

K DESCRIBE(DESC)

EDESCRIBEF
KEDESCF

SQL> DESC emp ;


Name
----------------------------------------EMPNO
ENAME
JOB
MGR
HIREDATE
SAL
COMM
DEPTNO

Null?
-------NOT NULL

Type
------------NUMBER(4)
VARCHAR2(10)
VARCHAR2(9)
NUMBER(4)
DATE
NUMBER(7,2)
NUMBER(7,2)
NUMBER(2)

KNULL

NULL

COMM


KNULL COMM

- -

SQL> SELECT ename, job , sal , comm


2 FROM emp ;
ENAME
---------SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER

JOB
SAL
---------------- ---------800
CLERK
800
1600
SALESMAN
1600
1250
SALESMAN
1250
2975
MANAGER
2975
1250
SALESMAN
1250
2850
MANAGER
2850
2450
MANAGER
2450
3000
ANALYST
3000
5000
PRESIDENT
5000
1500
SALESMAN
1500

COMM
----------

300
500

NULL

1400

COMMSMITH

ENULLF

SQL> SELECT ename, job , sal , 12*sal+comm


2 FROM emp ;
ENAME
---------SMITH
ALLEN

JOB
SAL
-----------------CLERK
800
SALESMAN
1600

12*SAL+COMM
---------------------19500

NULL

- -

Name
--------------------------DEPTNO
DNAME
LOC

Null?
----------NOT NULL

Type
------------NUMBER(2)
VARCHAR2(14)
VARCHAR2(13)

JOB
-----------ANALYST
CLERK
MANAGER
PRESIDENT
SALESMAN

EMPLOYEE_NO
----------------------7369
7499
7521
7566
7654
7698

EMPLOYEE NAME
-------------------------SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE

JOBS
-----------------CLERK
SALESMAN
SALESMAN
MANAGER
SALESMAN
MANAGER

- -


]<gj]<]<j<^]<]

RESTRICTING AND SORTING DATA

W
KEF

W
W
KEWHEREF J
K Comparison Operators

KEIn,Between,Like,Is NullF J

KE AND,OR,NOTF J

K J
K J

W
K

K
K
K

W
DEPTEMPSELECT

- -

SELECT
SELECT


K

EWHEREF

KEORDER BYF

WEWHEREF

EFROMF

Comparison Operator
SELECTETRUEF

ENo Row SelectedFSELECTEFALSEF


K

WWHERE
WEWhereF
KColumns

KComparison Operators

K
K

- -

KWHERE
K


KE' 'F


WSQL EFORMATF
YY MONDDFEDD-MON-YYF
KE

WEORDER BYF

KSELECT

KORDER BY

KSELECT

KAlies Columns

EAscendingFEASCF
K(Default)

KDescendingEDESCF

- -

ECLERKFWEF
K
SQL> SELECT ename , job , deptno
2 FROM emp
3 WHERE job = 'CLERK'
4 ORDER BY deptno
ENAME
-----------MILLER
SMITH
ADAMS
JAMES

JOB
----------CLERK
CLERK
CLERK
CLERK


K' '

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

WhereEF

CLERK
E=F
E'CLERK'FCLERK
K

K
KORDER BY

Comparison Operators

KWhere

KWhere


=

>

>=

<

<=


!=<>

- -

KWHERE

SQL > WHERE OPERATOR

- WHERE hiredate = '01-JAN-95'

EF

- WHERE sal >= 1500

- WHERE ename = 'SMITH'


SMITH

K3000WEF

SQL> SELECT ename , job , sal


2 FROM emp
3 WHERE sal >= 3000 ;
ENAME
-----------SCOTT
KING
FORD

JOB
----------ANALYST
PRESIDENT
ANALYST

SAL
--------------3000
5000
3000

W
EF

WEF
K

SQL> SELECT ename , sal , comm


2 FROM
emp
3 WHERE
sal<= comm ;

ENAME
SAL
COMM
---------------------------MARTIN
1250
1400

- -

EcommF
K
K

KWHERE

BETWEEN AND

IN ( )

LIKE { % , _ }

Null

IS NULL

K 25001500 WEF

SQL> SELECT ename , sal


2 FROM
emp
3 WHERE sal BETWEEN 1500 AND 2500 ;
ENAME
----------ALLEN
CLARK
TURNER

SAL
-----------1600
2450
1500

BETWEEN

K
EBETWEEN 2500 AND 1500 F
KENo Row SelectedFEFALSEF
- -

WEF
KEF

SQL> SELECT empno , ename , sal , mgr


2 FROM
emp
3 WHERE
mgr IN (7902,7566,7788,7839) ;
EMPNO
----------7369
7788
7876
7902

ENAME
-----------SMITH
SCOTT
ADAMS
FORD

SAL
---------800
3000
1100
3000

MGR
---------7902
7566
7788
7566

W
KEFEF
KIN

KLIKE{ % , _ }

E 'A%' F(% ) G
KAKA

AE'%A'F
KA K

KAE'%A%'F

- -

E'_A%'F( _ ) G
KA

KAE'_ _A'F
W

KLIKE

KS WEF
SQL> SELECT ename
2 FROM
emp
3 WHERE ename LIKE 'S%' ;

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

K WEF
SQL> SELECT ename , hiredate
2 FROM
emp
3 WHERE
hiredate LIKE '%81' ;
ENAME
---------ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
KING
TURNER
JAMES
FORD

HIREDATE
---------20/02/81
22/02/81
02/04/81
28/09/81
01/05/81
09/06/81
17/11/81
08/09/81
03/12/81
03/12/81

- -

KA WEF

SQL> SELECT ename


2 FROM emp
3 WHERE ename LIKE '_A%' ;

ENAME
---------WARD
MARTIN
JAMES

EA F

EAF
K

K WEF

SQL> SELECT ename , mgr


2 FROM emp
3 WHERE mgr IS NULL ;
ENAME
---------KING

MGR
----------

NULL

IS NULLEF

EMGRF
K

W
NULLE=F

IS NULL
( = )

SQL> SELECT ename , mgr


2 FROM emp
3 WHERE mgr = NULL ;

- -

KWHERE

TRUETRUE
TRUETRUE
FALSETRUE

AND
OR
NOT

WHERE
ETRUEF

KEFALSEF

WAND

KTRUETRUE
KAND

AND
True
False
False
Null
False
Null

True
False
False
Null
Null
Null

True
True
False
True
False
Null

KTRUEFALSE AND W
NULL ANDNULLW
KFALSENULL

- -

1100 WEF
KCLERK

SQL> SELECT empno , ename , job , sal


2 FROM emp
3 WHERE sal >=1100 AND job='CLERK' ;
T
T

EMPNO
----------7876
7934

ENAME
-----------ADAMS
MILLER

JOB
---------CLERK
CLERK

SAL
--------1100
1300

job='CLERK' sal >=1100


ETRUEFANDETRUEF
K

1100WEF
K500

SQL> SELECT ename , sal , comm


2 FROM emp
3 WHERE sal>1100 AND comm<500 ;
ENAME
----------ALLEN
TURNER

SAL
-----------1600
1500

COMM
---------300
0

- -

WOR
TRUE

KOR KTRUE

OR
True
True
False
True
Null
Null

True
False
False
Null
Null
Null

True
True
False
True
False
Null

KFALSETRUE OR W

NULL ORNULLW
KTRUETRUENULL

E2500FWEF
K MANAGER

SQL> SELECT empno , ename , job , sal


2 FROM
emp
3 WHERE sal >2500 OR job='MANAGER' ;
EMPNO
----------7566
7698
7782
7788
7839
7902

ENAME
-----------JONES
BLAKE
CLARK
SCOTT
KING
FORD

JOB
---------MANAGER
MANAGER
MANAGER
ANALYST
PRESIDENT
ANALYST

SAL
--------2975
2850
2450
3000
5000
3000

- -

E7782F
KEMANAGERF

E1000FWEF
KE10F

SQL> SELECT ename , sal , deptno


2 FROM
emp
3 WHERE sal<1000 OR deptno=10 ;
ENAME
-----------SMITH
CLARK
KING
JAMES
MILLER

SAL
---------800
2450
5000
950
1300

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

KEF
EFK
K
WNOT
ETUREF

KEFALSEFNOT

NOT
False
True
Null


True
False
Null

- -

WNOT

KKKKKKKKKK
KKKKKK

NOT BETWEEN KK AND KK

BETWEEN KKK AND KKK

NOT IN ( KKKK)

IN ( KKKK)

NOT LIKE { % , _ }

LIKE { % , _ }

IS NOT NULL

IS NULL

KNOT

WHERE job
WHERE sal
WHREE ename
WHERE comm

NOT IN ('CLERK' , 'MANAGER' )


NOT BETWEEN 1000 AND 1500
NOT LIKE '%A%'
IS NOT NULL

WWEF
KECLERK , MANAGER , ANALYST F

SQL> SELECT ename , job


2 FROM emp
3 WHERE job NOT IN ( 'CLERK' , 'MANAGER' , 'ANALYST' ) ;
ENAME
-----------ALLEN
WARD
MARTIN
KING
TURNER

JOB
-------SALESMAN
SALESMAN
SALESMAN
PRESIDENT
SALESMAN

IN( ... )
KECLERK , MANAGER , ANALYST F

- -

K30001000WEF

SQL> SELECT ename , job , sal


2 FROM
emp
3 WHERE sal NOT BETWEEN 1000 AND 3000 ;
ENAME
-----------SMITH
KING
JAMES

JOB
---------------CLERK
PRESIDENT
CLERK

SAL
----------800
5000
950

KE BETWEEN ... AND ....FK

KWEF

SQL> SELECT ename , job , sal , comm


2 FROM emp
3 WHERE comm IS NOT NULL ;
ENAME
-----------ALLEN
WARD
MARTIN
TURNER

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

SAL
----------1600
1250
1250
1500

COMM
----------300
500
1400
0

KNULL

ORDER BY sal DESC

- -

2850
W

ENAME
-----------KING
SCOTT
FORD
JONES

SAL
------- 5000
3000
3000
2975

E1500,2850F
W

ENAME
-----------SMITH
WARD
JONES
MARTIN
SCOTT
KING
ADAMS
JAMES
FORD
MILLER

SAL
------- 800
1250
2975
1250
3000
5000
1100
950
3000
1300

1500
3010
ENAME
-----------KING
BLAKE
CLARK
ALLEN

SAL
------- 5000
2850
2450
1600

- -

1982
ENAME
-----------SCOTT
MILLER

HIREDATE
-------------------09-DEC-82
23-JAN-82

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

SAL
-------1600
1500
1250
1250

COMM
---------300
0
1400
500

ENAME
-----------BLAKE
CLARK
ADAMS

LL

ENAME
-----------ALLEN
MILLER

- -


]<gj]<]<j<^]<]

SINGLE-ROW FUNCTIONS

W
KSELECT

W
W
KESQLF J
KSingle-Row Functions J
KCharacter Functions J

KNumber Functions J
KDate Functions J

KConversion Functions J

W
K

W
K
K
K

W
K

- -

SQL FUNCTIONS
SELECT

SQL FUNCTIONS

SINGLE-ROW
FUNCTION

MULTIPLE-ROW
FUNCTION

SINGLE_ROW FUNCTIONSW


MULTIPLE_ROW FUNCTIONW

- -

Single-Row

FunctionsW

WFROMSELECT
KCharacter Functions
KNumber Functions
KDate Functions
KConversion Functions

Character FunctionsW

FUNCTION
LOWER(column\expression)
UPPER(column\expression)
INITCAP(column\expression)
CONCAT(column1\expression1,
Column2\expression2)


E F
Small
EF
Capital
E F
Capital
E||F


Knm
EF
LENGTH(column\expression)

INSTR(column\expression,m)
mEF

LPAD(column\expression,n,'string')
n

RPAD(column\expression,n,'string')
n

TRIM('character' FROM column\expression)


SUBSTR(column\expression,m,n)

- -

Select LOWER('GOOD by') from dual ;

good by

Select UPPER('GOOD by') from dual ;

GOOD BY

Select INITCAP('GOOD') from dual ;

Good

Select CONCAT('GOOD' , 'BY') from dual;

GOODBY

Select SUBSTR('GOOD BY',2,3) from dual;

OOD

Select LENGTH('GOOD') from dual;

Select INSTR('GOOD','D') from dual;

Select LPAD('AHMED',10,'*') from dual ;

*****AHMED

Select RPAD('AHMED',10,'*') from dual ;

AHMED*****

Select TRIM('S' FROM 'SAMI') from dual;

AMI

SQLEDUALFW
K

WEF

SQL> SELECT LOWER(ename) , UPPER(job) , INITCAP(job) , CONCAT(ename, job)


2 FROM emp
3 WHERE sal=3000 ;

LOWER(ENAME)
---------------------scott
ford

UPPER(JOB)
-------------ANALYST
ANALYST

INITCAP(JOB)
-----------------Analyst
Analyst

CONCAT(ENAME, JOB)
--------------------------------SCOTTANALYST
FORDANALYST

- -

WEF
SQL> SELECT ename,SUBSTR(ename,2,3),LENGTH(ename),INSTR(ename,'K')
2 FROM emp
3 WHERE LOWER( job)='manager' ;

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

SUBSTR(ENAME,2,3)
---------------------------ONE
LAK
LAR

LENGTH(ENAME)
-----------------------5
5
5

INSTR (ENAME, 'K')


--------------------------0
4
5

WEF

SELECT

KEENAMEF

SUBSTR(ENAME,2,3F
SUBSTREFEF
K

LENGTH
K

EKF
BLAKEKINSTR
KCLARK

WHERELOWER
K

- -

WEF
SQL>SELECT ename,TRIM('S' FROM ename), LPAD(ename,10,'*') , RPAD(ename,10,'#')
2 FROM emp
3 WHERE sal>2500 ;
ENAME
---------JONES
BLAKE
SCOTT
KING
FORD

TRIM('S' FROM ENAME)


-------------------------------JONE
BLAKE
COTT
KING
FORD

LPAD(ENAME,10,'*')
--------------------------*****JONES
*****BLAKE
*****SCOTT
******KING
******FORD

LPAD(ENAME,10,'#')
--------------------------JONES#####
BLAKE#####
SCOTT#####
KING######
FORD######

WEF

KEENAMEF

STRIM('S' FROM ENAME)


JONESTRIM

KSSCOTTS

LPAD(ENAME,10,'*')
EFE*F

E*FLPAD JONES

KEright-justifiedF

E#FRPAD(ENAME,10,'#')

KEleft-justifiedF
SELECT

KFROM

- -

Number FunctionsW

K
K

FUNCTION

n
Kn

ROUND(column\expression,n)

KEn=0F

En>0F
KEF

En<0F
KEF

Kn

En=0F
TRUNC(column\expression,n)

En>0F
KEF

En<0F
KEF

MOD(m,n)

Knm

- -

WEF

SQL>SELECT ROUND(45.923,0),ROUND(45.923,2),ROUND(45.923,-1),ROUND(45.923,-2)
2 FROM dual ;
ROUND(45.923,0) ROUND(45.923,2)
---------------------- ----------------------46
45.92

ROUND(45.923,-1) ROUND(45.923,-2)
------------------------ -----------------------50
0

ROUND
nEFn
nE{FEF

EFEFEJ F
EFEFEJ Fn

KEF

WEF

SQL> SELECT TRUNC(45.923,0),TRUNC(45.923,2),TRUNC(45.923,-1),TRUNC(45.923,-2)


2 FROM dual ;
TRUNC(45.923,0)
---------------------45

TRUNC(45.923,2)
----------------------45.92

TRUNC(45.923,-1)
-----------------------40

TRUNC(45.923,-2)
-----------------------0

TRUNC

EFn n
EFEJ Fn

KEJ FnEF

- -

WEF

SQL> SELECT ename , sal , comm , MOD(sal,comm)


2 FROM emp
3 WHERE sal=1600 ;

ENAME
---------ALLEN

SAL
------1600

COMM
---------300

MOD(SAL,COMM)
-----------------------100

Date FunctionsW

EF

EDD-MON-YYF

FUNCTION
SYSDATE


F
E

MONTHS_BETWEEN(date1,date2)
ADD_MONTHS(date,n)

NEXT_DAY(date,'day')

LAST_DAY(date)

ROUND(date)

TRUNC(date)

- -

MONTHS_BETWEEN('01-SEP-95' , '11-JAN-94)

19.6774194

ADD_MONTHS('11-JAN-94' , 6)

'11-JUL-94'

NEXT_DAY('01-SEP-95' , 'FRIDAY')

'08-SEP-95'

LAST_DAY('01-SEP-95')

'30-SEP-95'

ROUND('25-JUL-95' , 'MONTH')

01-AUG-95

'01-SEP-95'

September

01-JAN-96

ROUND('25-JUL-95' , 'YEAR')

EF EJULYF


'01-JUL-95'

TRUNC('25-JUL-95' , 'MONTH')

'01-JAN-95'

TRUNC('25-JUL-95' , 'YEAR')

EF

(JANURY-FEBRUARY-MARCH-APRIL-MAY-JUNE-JULY-AUGUST-SEPTEMBER-OCTOBERNOVEMBER-DECEMBER)

- -

WEF

SQL> SELECT SYSDATE FROM DUAL;

SYSDATE
--------------25-01-2004

WEF
SQL> SELECT empno, hiredate , MONTHS_BETWEEN(sysdate,hiredate)
2FROM emp
3WHERE hiredate like '%1987' ;
EMPNO
---------7788
7876

HIREDATE
--------------19-04-1987
23-05-1987

MONTHS_BETWEEN(SYSDATE,HIREDATE
---------------------------------------------------------201.200404
200.071371

WROUND

SQL> SELECT empno, hiredate , ROUND(MONTHS_BETWEEN(sysdate,hiredate))


2FROM emp
3WHERE hiredate like '%1987' ;

- -

WEF

SQL>SELECT empno,hiredate,ADD_MONTHS(HIREDATE,6),LAST_DAY(HIREDATE)
2
3

FROM emp
WHERE hiredate like '%1987' ;

EMPNO
---------7788
7876

HIREDATE
--------------19-04-1987
23-05-1987

ADD_MONTHS (HIREDATE,6)
---------------------------------------19-10-1987
23-11-1987

LAST_DAY(HIREDATE)
-------------------------------30-04-1987
31-05-1987

EF
K

WEF
SQL> SELECT empno,hiredate,NEXT_DAY(hiredate,'FRIDAY')
2 FROM emp
3 WHERE hiredate like '%1987' ;
EMPNO
---------7788
7876

HIREDATE
--------------19-04-1987
23-05-1987

NEXT_DAY(hiredate,'FRIDAY')
---------------------------------------24-04-1987
29-05-1987

- -

Conversion Functions W


EDATATYPEF

KEDATEFECHARACTERF ENUMBERF

FUNCTION
TO_CHAR(DATE/NUMBER ,'fmt')
TO_DATE(CHAR , 'fmt')
TO_NUMBER(CHAR , 'fmt')

Kfmt(FORMAT)

KfmtEFORMATF

KfmtEFORMATF

KTO_CHAR

KDATEW
W
TO_CHAR(DATE , 'fmt')

format
KKfmt

- -

WEF

SQL> SELECT sysdate,TO_CHAR(sysdate,'DD/MM/YYYY')


2 FROM dual ;

SYSDATE
--------------26-01-2004

FORMAT

TO_CHAR(SYADTE,'DD/MM/YYYY')
------------------------------------------------26/01/2004

KEDD/MM/YYYYF
KEMM/YYYYFFORMAT

KE'

'FW

E" "FFORMAT
WFORMATE26

OF

01/2004F

KEDD "OF" MM/YYYY)

YYYY

K2004EHF
K04

YY
YEAR

ETWO THOUSAND FOURF

KYEAR
K01

MM

KEJANURYF

MONTH

KEJANF

DY

KEFRIDAYF

DAY
HH12:MI:SS AM

E04:30:50 PMF

- -

WEF
SQL> SELECT empno,TO_CHAR(hiredate,'DAY "OF" MONTH YYYY HH12:MI:SS AM')
2 FROM emp
3 WHERE ename=upper('king') ;

EMPNO TO_CHAR(HIREDATE,'DAY "OF" MONTH YYYY HH12:MI:SS AM')


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

7839 TUESDAY OF NOVEMBER 1981 12:00:00 AM

KING
K

KTO_CHAR

KNUMBERW
W

TO_CHAR(NUMBER , 'fmt')

format
Kfmt

KE3000FE$3,000F

- -

WEF
SQL> SELECT empno,TO_CHAR(sal , '$99,999') salary
2 FROM emp
3 WHERE sal > 2500 ;
EMPNO
----------

SALARY
------------

7566
7698
7788
7839
7902

$2,975
$2,850
$3,000
$5,000
$3,000

KE99F

099

990

$99

K$

KEF

MI

KEJ F

- -

KTO_DATE

TO_DATE(CHAR , 'fmt')

DATE

Kfmtformat
K

WEF
SQL> SELECT TO_DATE( 'FEBRUARY 22, 1981' , 'MONTH DD, YYYY' )
2 FROM dual

TO_DATE( 'FEBRUARY 22, 1981' , 'MONTH DD, YYYY' )


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

22-FEB-1981

E'FEBRUARY

22, 1981'F

FORMATW

KK

- -

KTO_NUMBER

W
TO_NUMBER(CHAR , 'fmt')

NUMBER

Kfmtformat

- -

EMP_NAME
-----------Smith
Allen
Ward
Jones
Martin
Blake
Clark
Scott
King
Turner
Adams
James
Ford
Miller

NUMBER
------------ 5
5
4
5
6
5
5
5
4
6
5
5
4
6

SECTION
----------SMIT
ALLE
WARD
JONE
MART
BLAK
CLAR
SCOT
KING
TURN
ADAM
JAME
FORD
MILL

WE30F

TITLE
-----------ALLENSALESMAN
WARDSALESMAN
MARTINSALESMAN
BLAKEMANAGER
TURNERSALESMAN
JAMESCLERK

- -


ENAME
-----------SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
JAMES
FORD
MILLER

NUMBER OF YEAR
-------------------------- 23
23
23
23
22
23
23
17
22
22
17
22
22
22

TODAY
--------------------------SATURDAY OF 02 / 2004 04:28

KEFEBRUARY 22, 2004F

MY DATE
----------------22/02/2004

- -


]<gj]<]<j<^]<]

GROUP FUNCTIONS

W
KSELECT

W
W

KGroup Functions J
KGroup Functions J
KGROUP BY J

KHAVING J

W
K

W
K
K
K

W
K

- -

EGROUP FUNCTIONSF

SUM

K
KSUM

ENAME
---------SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
JAMES
FORD
MILLER

SAL
---------- 800
1600
1250
2975
1250
2850
2450
3000
5000
1500
1100
950
3000
1300

SQL > SELECT SUM(SAL)


FROM EMP ;

29025


SUM

E29025F

- -

Type of Group FunctionsW

FUNCTION
SUM
MAX
MIN
AVG
COUNT
STDDEV DEVIATION
VARIANCE

KNULL

EF

KNULL

WEF

SQL> SELECT SUM(sal) , MAX(sal) , MIN(sal) , AVG(sal)


2 FROM emp ;

SUM(SAL)
--------------29025

MAX(SAL)
--------------5000

MIN(SAL)
-------------800

AVG(SAL)
-------------2073.21429

MINMAXW
KK

- -

WEF
SQL> SELECT MAX(ename) , MIN(ename)
2 FROM emp ;

MAX(ENAME)
-------------------WARD

MIN(ENAME)
------------------ADAMS

WEF

SQL> SELECT AVG( NVL(comm , 0) )


2 FROM emp ;

AVG( NVL(comm , 0) )
----------------------------157.14286

NVL
commNULL

K E14FNVL

E14)E4FNVL

W
SQL> SELECT AVG( comm )
2 FROM emp ;

AVG( comm )
------------------550

- -

KCOUNT
Wcount

COUNT(*) .
COUNT(column) .

count(*)
whereNULL

K

KNULLcount(column)
K

WEF
SQL> SELECT COUNT(*),COUNT(comm), COUNT(deptno)
2 FROM emp ;

COUNT(*)
------------14

COUNT(COMM) COUNT(DEPTNO)
4

14

14
COUNT(comm)E4F
KCOMMNULL

KCOUNTE14Fdeptno

WEF

SQL> SELECT COUNT(comm) , COUNT(*)


2 FROM emp
3 WHERE deptno=30 ;

COUNT(COMM)
-------------------4

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

- -

30
K

WGROUP BY


GROUP BY

Kgroup by
ENAME
--------- 10
10
10
20
20
20
20
20
30
30
30
30
30
30

SAL
---------- 2450
5000
1300
800
1100
3000
3000
2975
1600
2850
1250
950
1500
1250

SQL >SELECT deptno , MAX(sal)


2 FROM emp
3 GROUP BY deptno ;

5000
DEPTNO
---------10
20
30

3000

MAX(SAL)
--------------5000
3000
2850

2850

E3000F20 E5000F10
KE2850F

- -

WEF

SQL> SELECT deptno , AVG(sal)


2 FROM emp
3 GROUP BY deptno
4 ORDER BY AVG(sal) ;

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

AVG(SAL)
------------------1566.66667
2175
2916.66667

GROUP BYSELECT
K

ORDER BY
K

HAVING WHERE
K

WEF
SQL> SELECT deptno , AVG(sal)
2 FROM emp
3 ORDER BY AVG(sal) ;

select(deptno)
KEFgroup by

ERROR at line 1 :
ORA-00937: not a single-group group function

- -

WEF

SQL> SELECT deptno , AVG(sal)


2 FROM emp
3 WHERE AVG(sal) > 2000
4 GROUP BY deptno ;

ERROR at line 3 :
ORA-00934: group function is not allowed here

AVG(sal)

WHEREWHERE
WEFHAVING

WEF
SQL> SELECT deptno , AVG(sal)
2 FROM emp
3 GROUP BY deptno
4 HAVING AVG(sal) > 2000 ;
DEPTNO
------------10
20

AVG(SAL)
------------------2916.66667
2175

HAVINGKE2000F
K

KSELECT

- -

WEF

SQL> SELECT job , SUM(sal)


2 FROM emp
3 WHERE job not like 'SALES%'
4 GROUP BY job
5 HAVING SUM(sal) >5000
6 ORDER BY SUM(sal) ;

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

SUM(SAL)
------------------6000
8275

SELECT

ESALESF

KE5000F

KGROUP BYWHERE

- -


MAXIMUM
---------------5000

MINIMUM
---------------800

SUM
-------29025

AVERAGE
--------------2073

JOB
---------------ANALYST
CLERK
MANAGER
PRESIDENT
SALESMAN

MAXIMUM
---------------3000
1300
2975
5000
1600

MINIMUM
---------------3000
800
2450
5000
1250

JOB
---------------ANALYST
CLERK
MANAGER
PRESIDENT
SALESMAN

COUNT(*)
---------------2
4
3
1
4

NUMBER OF MANAGERS
----------------------------------6

- -


]<gj]<]<j<^]<]

DISPLAYING DATA FROM MULTIPLE TABLES

W
W
K J
K J
KEquijoin J
KNon-Equijoin J
KOuter Join J
KSelf Join J
K J
W
K

W
K
K
K

W
K

- -

EMP table
EMPNO
7839
7698
7782
7566

ENAME
KING
BLAKE
CLARK
JONES

DEPT table
JOB
PRESIDENT
MANAGER
MANAGER
MANAGER

DEPTNO
10
30
10
20

EMPNO
----------7839
7698
7782
7566

DEPTNO
10
20
30
40

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

DNAME
ACCOUNT
RESEARCH
SALES
OPRATIONS

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

LOC
NEW YORK
DALLAS
CHICAGO
BOSTON

Join defination W

- -

Types of Joins W
WEJoinsF
KEquijoin

KNon-Equijoin

KOuter Join

KSelf Join

KWHERESELECT

Equijoin W


EPrimary KeyF

KEForeign KeyF

KEdeptno)

EMP table
EMPNO
7839
7698
7782
7566

ENAME
KING
BLAKE
CLARK
JONES

DEPT table
JOB
PRESIDENT
MANAGER
MANAGER
MANAGER

DEPTNO
10
30
10
20

DEPTNO
10
20
30
40

Foreign Key

DNAME
ACCOUNT
RESEARCH
SALES
OPRATIONS

LOC
NEW YORK
DALLAS
CHICAGO
BOSTON

Primary Key

SELECT

- -

WEF

SQL> SELECT emp.empno , emp.ename , emp.deptno ,


2
dept.deptno , dept.loc

3 FROM emp , dept


4 WHERE emp.deptno=dept.deptno ;

EMPNO
-------------- 7369
7499
7521
7566
7654
7698
7782
7788
7839
7844
7876

ENAME
--------------SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS

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

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

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

WSELECT

SELECT
EDEPTF EEMPF

KEemp . empnoFE.F

FROM
KEFROM emp,deptF

WHERE
K

- -

WEdFEdeptFEeF EempF

SQL> SELECT e.empno , e.ename , e.deptno ,


2
d.deptno , d.loc

3 FROM emp e , dept d
4 WHERE e.deptno=d.deptno ;

KEF

KINGEF
WSELECT

WEF

SQL> SELECT e.empno , e.ename , e.deptno ,


2
d.deptno , d.loc
3 FROM emp e , dept d
Ee , dF
4 WHERE e.deptno=d.deptno
5 AND e.ename = upper('king') ;

EMPNO ENAME
--------------- --------------7839 KING

DEPTNO
-------------10

DEPTNO LOC
-------------- -------------10 NEW YORK

- -

Non-Equijoin W

EZF
ESALF

ESALGRADEF
EFE3000F


KESALGRADEF

KSALGRADEEMP
EMP table
EMPNO
7839
7698
7782
7566
7654

ENAME
KING
BLAKE
CLARK
JONES
MARTIN

SALGRADE table
JOB
PRESIDENT
MANAGER
MANAGER
MANAGER
SALESMAN

SAL
5000
2850
2450
2975
1250

GRADE
1
2
3
4
5

SAL
---------5000
2850
2450
2975
1250

GRADE
-----------5
4
4
4
2

LOSAL
700
1201
1401
2001
3001

HISAL
1200
1400
2000
3000
9999


KNon-Equijoin

- -

WEF

SQL> SELECT e.ename , e.sal , s.grade


2 FROM emp e , salgrade s

3 WHERE e.sal BETWEEN s.losal AND s.hisal ;
ENAME
--------------SMITH
ADAMS
JAMES
WARD
MARTIN
MILLER
ALLEN
TURNER
JONES
BLAKE
CLARK

SAL
-------------- 800
1100
950
1250
1250
1300
1600
1500
2975
2850
2450

GRADE
------------- 1
1
1
2
2
2
3
3
4
4
4

WHERE

e.sal BETWEEN s.losal AND s.hisal


K

Outer Join W

EEquijoinF

EHF

EOuter JoinF
E40F

- -

EOuter JoinF

WEF

SQL> SELECT e.empno , e.ename , d.deptno , d.dname


2 FROM emp e , dept d
3 WHERE e.deptno(+)=d.deptno ;

EMPNO
--------- 7782
7839
7934
7369
7876
7902
7788
7566
7499
7698
7654
7900
7844
7521

ENAME
--------------CLARK
KING
MILLER
SMITH
ADAMS
FORD
SCOTT
JONES
ALLEN
BLAKE
MARTIN
JAMES
TURNER
WARD

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

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

EOuter JoinF
KE40F

- -

Self Join W

EMP table
EMPNO
7839
7698
7782
7566
7654

ENAME
KING
BLAKE
CLARK
JONES
MARTIN

JOB
PRESIDENT
MANAGER
MANAGER
MANAGER
SALESMAN

EMP (WORKER)
EMPNO
7839
7698
7782
7566
7654

ENAME
KING
BLAKE
CLARK
JONES
MARTIN

MGR
7839
7839
7839
7698

EMP (MANAGER)
MGR
7839
7839
7839
7698

EMPNO
7839
7698
7782
7566
7654

ENAME
KING
BLAKE
CLARK
JONES
MARTIN

EMGRF
E7839FEBLAKEF

EEMPNOFEMGRFEKINGF
EEMPNOF
KEEMPNOFEMGRF

EMANAGERFEWORKERF
KEEquijoinF

- -

WEF

SQL> SELECT WORKER.empno , WORKER.ename , MANAGER.ename manager


2 FROM emp worker , emp manager
3 WHERE worker.mgr = manager.empno ;
EMPNO
--------- 7369
7499
7521
7566
7654
7698
7782
7788
7844
7876
7900
7902
7934

ENAME
--------------SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
TURNER
ADAMS
JAMES
FORD
MILLER

MANAGER
--------------FORD
BLAKE
BLAKE
KING
BLAKE
KING
KING
JONES
BLAKE
SCOTT
BLAKE
JONES
CLARK

EWORKERF

EMANAGERF

KESelf JoinF

EJ F

K
KEANDF
K

- -

WEF

SQL> SELECT e.empno , e.ename , e.sal , d.dname , s.grade


2 FROM emp e , dept d , salgrade s

3 WHERE e.deptno=d.deptno
4 AND
e.sal BETWEEN s.losal and s.hisal ;

EMPNO
--------- 7369
7876
7900
7521
7654
7934
7499
7844
7566
7698
7782
7788
7902
7839

ENAME
--------------SMITH
ADAMS
JAMES
WARD
MARTIN
MILLER
ALLEN
TURNER
JONES
BLAKE
CLARK
SCOTT
FORD
KING

SAL
------- 800
1100
950
1250
1250
1300
1600
1500
2975
2850
2450
3000
3000
5000

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

GRADE
---------- 1
1
1
2
2
2
3
3
4
4
4
4
4
5

EEMPF
ESALGRADEFEDEPTF
K

- -


ENAME
---------ALLEN
WARD
MARTIN
BLAKE
TURNER
JAMES

DEPTNO
------------- 30
30
30
30
30
30

WE30F

DNAME
-------SALES
SALES
SALES
SALES
SALES
SALES

EF
JOB
---------CLERK
MANAGER
SALESMAN

LOC
-------------CHICAGO
CHICAGO
CHICAGO

WK


ENAME
---------SMITH
JONES
SCOTT
ADAMS
FORD

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

WEDALLASF

DNAME
-----------RESEARCH
RESEARCH
RESEARCH
RESEARCH
RESEARCH

ENAME
---------MILLER
CLARK
KING

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

WE10F

DNAME
-----------ACCOUNTING
ACCOUNTING
ACCOUNTING

- -

SAL
---------1300
2450
5000

GRADE
----------- 2
4
5

WE10F

EMPNO
--------- 7782
7934

ENAME
-------------CLARK
MILLER

MANAGER_NO
-------------------- 7839
7782

- -

MANAGER_NAME
------------------------KING
CLARK


]<gj]<]<j<^]<]

SUBQUERIES

W
K

W
W
K J
K J
KSingle-Row Subquery J
K J
KSelect J
KMultiple-Row Subquery J
K J
W
K

W
K
K
K

W
K

- -

KESubqueriesF
EJonesF

EJonesF

WKEJonesF

WEJonesFW

SQL > SELECT sal


2 FROM emp
3 WHERE ename = 'JONES' ;
SAL
--------2975

W
W

SQL > SELECT ename


2 FROM emp
3 WHERE sal > 2975 ;
ENAME
--------SCOTT
KING
FORD

WEF EF

SQL > SELECT ename


2 FROM emp
3 WHERE sal > (SELECT sal FROM emp WHERE ename = 'JONES' ) ;

- -

SQL > SELECT

EF

FROM

WHERE ( select from ; )

EF

KALLENWEF
SQL> SELECT empno , ename , job
2 FROM emp
SALESMAN
3 WHERE job =
(select job
from emp
where ename = 'ALLEN' ) ;

EF

EMPNO
---------- 7499
7521
7654
7844

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

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

EFEALLENF

ESALESMANF
KEFESALESMANF

EFW
KEF

- -

W
W

KSingle-Row Subquery

KMultiple-Row Subquery

KMultiple -Column Subquery

W
K

KEKK<= , >=,=,<>F


KESingle-Row SubqueryF


KEMultiple-Row SubqueryF

W
W
E= , < , > , <= , >= , <>F
KEF

EALL , ANY , INF


K

WSelect
WSELECT
KEWHERE , HAVING , FROMF
- -

Single-Row SubqueriesW

E F

KE= , < , > , <= , >= , <>F

WEF
EKINGF

SQL> SELECT ename , sal , deptno


2 FROM emp
10
3 WHERE deptno =
4
( select deptno
5
from emp
6
where ename='KING' ) ;

ENAME
----------CLARK
KING
MILLER

SAL
---------- 2450
5000
1300

DEPTNO
----------- 10
10
10

EFEKINGF
KEKINGFE10F

WEF

SQL> SELECT ename , job , sal
2 FROM emp
800
3 WHERE sal =

4
( select MIN(sal)
5
from emp ) ;

ENAME
----------SMITH

JOB
----------CLEARK

SAL
-----------800

- -

MIN(SAL)
K

WEF

E20F

SQL> SELECT deptno , MIN(sal)


2 FROM emp
3 GROUP BY deptno
800
4 HAVING MIN(sal) >
5
( select MIN(sal)
6
from emp
7
where deptno = 20 ) ;

DEPTNO
----------10
30

MIN(SAL)
-----------1300
950

MIN(SAL)

KHAVING

WEF

E7369F
KE7876F

KE7876FE7369F

- -

SQL> SELECT ename , job


2 FROM emp
CLERK
3 WHERE job =
4
(select job
5
from emp
6
where empno=7369 )
7 AND sal >
1100
8
(select sal
9
from emp
10
where empno=7876) ;

EF

ENAME
----------MILLER

JOB
-----------CLERK

EFW
W

WEF
ESMITHF

SQL> SELECT ename , job


2 FROM emp
3 WHERE job =
4
(select job
5
from emp ) ;

ERROR : ORA-01427 : single row subquery return more than one row .

SQL> SELECT ename , job


2 FROM emp
3 WHERE job =
4
(select job
5
from emp
where ename='SMITH' ) ;

ECLERKFESMITHFEF

- -

Multiple-Row SubqueriesW

KEALL , ANY , INF

IN
ANY
<ANY
>ANY
ALL
<ALL
>ALL

WEF

K
SQL> SELECT ename , sal , deptno
2 FROM emp
3 WHERE sal IN ( select min(sal)
4
from emp
5
group by deptno ) ;

E 800,950,1300 F

ENAME
----------SMITH
JAMES
MILLER

SAL
---------- 800
950
1300

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

E800 , 950 , 1300F


K

- -

E800,950,1300F

KEINF

KE800,950,1300F

WEF

KECLERKFECLERKF

SQL> SELECT empno , ename , job , sal


2 FROM emp
3 WHERE sal <ANY

4
( select SAL
E800,950,1100,1300F
5
from emp
6
where job ='CLERK' )
7 AND job <>'CLERK' ;

EMPNO
---------- 7521
7654

ENAME
----------WARD
MARTIN

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

SAL
----------- 1250
1250

ECLERKF

E800,950,1100,1300F

ESAL<ANYFKECLERKF
KE800,950,1100,1300F

- -

WEF

SQL> SELECT empno , ename , job , sal


2 FROM emp
3 WHERE sal >ALL

4
( select AVG(sal)
5
from emp
E2916.6667, 2175,1566.6667F
6
group by deptno ) ;

EMPNO
---------- 7566
7788
7839
7902

ENAME
----------JONES
SCOTT
KING
FORD

JOB
-----------MANAGER
ANALYST
PRESIDENT
ANALYST

SAL
----------- 2975
3000
5000
3000

E2916.6667 , 2175 , 1566.6667F

ESAL>ALLF
KE2916.6667, 2175,1566.6667F

- -


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

WBLAKE

HIREDATE
------------20-FEB-81
22-FEB-81
28-SEP-81
08-SEP-80
03-DEC-81

EMPNO
-----------7839
7902
7788
7566
7698
7782

ENAME
------------KING
FORD
SCOTT
JONES
BLAKE
CLARK

EDALLASF
ENAME
-----------JONES
FORD
SMITH
SCOTT
ADMES

DEPTNO
----------20
20
20
20
20

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

KESALESMANF
ESALESMANF
K
- -


]<gj]<]<j<^]<]

MULTIPLE-COLUMN SUBQUERIES

W
K

W
W
K J
KNULL J
KFROM J
W
K

W
K
K
K

W
K

- -

EF

SQL > SELECT

FROM

WHERE ( , , ...) IN
( select , , ...
from

Where ) ;

EF

KWHERE

- -


ORDER_ID
603
604
604
604
605
605
605
605
605
605
606

ITEM_ID
1
1
2
3
1
2
3
4
5
6
1

ITEM Table

PRODUCT_ID
100860
100890
100861
100860
100861
100870
100890
101860
101863
102130
102130

ACTUAL_PRICE
32
58
42
32
45
2.8
58
24
9.5
3.4
3.4


QUANTITY

2
12
100
500
5

50
100
10
1

TOTAL
224
174
84
384
4500
1400
290
1200
950
34
3.4

DEMO

KDEMO

WEF

K605605

K605W

SQL> select product_id , quantity


2 from item
3 where order_id=605 ;

- -

W
PRODUCT_ID
------------------ 100861
100870
100890
101860
101863
102130

QUANTITY
-------------- 100
500
5
50
100
10

WK605

SQL> SELECT order_id , product_id , quantity


2 FROM item
3 WHERE (product_id , quantity) IN

4
(select product_id , quantity

5
from item
6
where order_id=605 )
EF
7 AND
order_id <> 605 ;

PRDER_ID
---------------- 617
617
616

PRODUCT_ID
------------------ 100861
100870
102130

QUANTITY
-------------- 100
500
10

K605
KKE605F

- -

WNULL
NULL

whereEno rows selectedF

WK

WEF

K700700

SQL> SELECT order_id , product_id , quantity


2 FROM item
3 WHERE (product_id , quantity) IN
4
(select product_id , quantity
5
from item
6
where order_id=700 )
EF
7 AND
order_id <> 700 ;

NULL

no rows selected

E700F
NULL

EF
KEno rows selectedFK

- -

KFROM
SELECTFROM

FROM

KFROM

WEF

SQL> SELECT e.ename,e.sal,e.deptno,esub.salavg


2 FROM emp e, (select deptno,avg(sal) salavg
3
from emp

4
group by deptno) esub

5 WHERE e.deptno = esub.deptno


6 AND e.sal > esub.salavg ;
ENAME
----------KING
FORD
SCOTT
JONES
ALLEN
BLAKE

SAL
------5000
3000
3000
2975
1600
2850

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

EF

SALAVG
------------ 2916.66667

2175

2175

2175
1566.66667
1566.66667

FROM

- -

EesubF

SQL> select deptno,avg(sal) salavg


2 from emp
3 group by deptno ;
DEPTNO
-----------10
20
30

SALAVG
--------------2916.66667
2175
1566.66667

WEesubFemp

WHERE e.deptno = esub.deptno

- -

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

DEPTNO
------------30
30
30
30

SAL
----------1250
1250
1500
1600

WEDALLASF
ENAME
-----------SMITH
ADAMS
JONES
FORD
SCOTT

DNAME
------------RESEARCH
RESEARCH
RESEARCH
RESEARCH
RESEARCH

SAL
----------800
1100
2975
3000
3000

ESCOTTFJ

ENAME
-----------FORD

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

SAL
----------3000

- -


]<gj]<]<j<^]<]

MANIPULATING DATA

W
KEDMLF

W
W
KEDMLFData Manipulation Language J
J
KEINSERT INTOF
KEUPDATEF J
KEDELETE FROMF J
W
K

K
K
K

W
K

- -

SELECT

EDMLFSQL
EROWSF

WEDMLF
KINSERT INTO
KUPDATE

KDELETE FROM

KEINSERT INTOF

KEINSET INTOF

SQL > INSERT INTO (, , ..... )


VALUES

( , , .......) ;

W
KW

KWEKKKKKKK , , F

KWEKKKKKKKKK,,F

- -


KINSERT

E F
KEF

K' '

NULL
KEempnoF
EPrimary keyF

INSERT

W
KEFEDESC tableF

KWEF

SQL> INSERT INTO dept (deptno , dname , loc )


2 VALUES
( 50 , 'DEVELOPMENT' , 'DETROIT') ;

EDEPTFEDEPTF
DEPTNO
10
20
30
40

DNAME
ACCOUNT
RESEARCH
SALES
OPRATIONS

LOC
NEW YORK
DALLAS
CHICAGO
BOSTON

DEPTNO
10
20
30
40
50

DNAME
ACCOUNT
RESEARCH
SALES
OPRATIONS
DEVELOPMENT

LOC
NEW YORK
DALLAS
CHICAGO
BOSTON
DETROIT

EF

- -

EDEVELOPMENTFE50F
EDETROITF

deptno K

E' 'FEnumberF
KEvarchar2F

WENULLF
WNULL

KINSERTNULL W
KVALUESNULLW

Eprimary keyF

W

KWEF

SQL> INSERT INTO dept (deptno , dname )


2 VALUES
( 60 , 'MIS' ) ;

EDEPTF
DEPTNO
10
20
30
40
50
60

DNAME
ACCOUNT
RESEARCH
SALES
OPRATIONS
DEVELOPMENT
MIS

LOC
NEW YORK
DALLAS
CHICAGO
BOSTON
DETROIT

NULL

EMISFE60F

WELOCFNULL

SQL> INSERT INTO dept (deptno , dname , loc )


2 VALUES
( 60 , 'MIS' , NULL ) ;

- -

W
EHIREDATEFESYSDATEF

KWEF

SQL> INSERT INTO emp


2
(empno , ename , job, mgr , hiredate , sal , comm , deptno)
3 VALUES
4 (7196 , 'AHMED' , 'SALESMAN' , 7782 , SYSDATE , 2000 , NULL , 10) ;

KSYSDATE

INSERT
W

SQL> INSERT INTO emp


VALUES
(7196 , 'AHMED' , 'SALESMAN' , 7782 , SYSDATE , 2000 , NULL , 10) ;

KSubstitution Variables

SQL

SQL

E&FSQL
K
Ksubstitution Variables

- -

KWEF

SQL> INSERT INTO dept ( deptno , dname , loc )


2 VALUES
(&dept_id , '&dept_name' , '&dept_loc' ) ;
Enter value for dept_id : 80
Enter value for dept_name : EDUCATION
Enter value for dept_loc : ATLANTA

KE80FE&dept_idF

KEEDUCATIONFE&dept_nameF
KEATLANTAFE&dept_locF

W
SQL> INSERT INTO dept ( deptno , dname , loc )
2 VALUES
( 80 , 'EDUCATION' , 'ATLANTA' ) ;

WEF
K

SQL> INSERT INTO &dept_table ( &dept_id , dname , loc )


2 VALUES
( 80 , 'EDUCATION' , 'ATLANTA' ) ;
Enter value for dept_table : dept
Enter value for dept_id : deptno

EdeptFE&dept_tableF
KEdeptnoFE&dept_idF
- -

EempF EmanagersF
EmanagerF
W

WEF
KEmanagersF

SQL> INSERT INTO managers (id , name , salary , hiredate)


2
select empno , ename , sal , hiredate
3
from emp
4
where job='MANAGER' ;

W
2
3
4

select empno , ename , sal , hiredate


from emp
where job='MANAGER' ;

KEvaluesF

KEUPDATEF

KEUPDATEF

K
SQL > UPDATE
SET

= , = ......

WHERE

- -

W
KW

KW
KW

EFW
K


KE' ' F

WHERE
K

ESALESFEEDUCATIONF E30FWEF

SQL> UPDATE dept


2 SET dname='EDUCATION'
3 WHERE deptno=30 ;
1 row updated

E30F

E30F

EEDUCATIONFESALESFE30F
E30FEUPDATE

deptF

E30F WHERE

WHERE

- -

ESALESFEEDUCATIONF E30FWEF

SQL> UPDATE dept


2 SET dname='EDUCATION' ;
4 row updated

EEDUCATIONF
KEWHEREF

EBLAKEF

WEWARDF

WEF

SQL> UPDATE emp


2 SET (job , deptno) = (select job , deptno from emp where ename='WARD')
3 WHERE ename='BLAKE' ;
1 row updated

EMANAGER

30F

EBLAKEF
SETEWARDF
KEBLAKEFEjob , deptnoF

KEDELETE FROMF

KEDELETE FROMF

- -

SQL > DELETE FROM


WHERE

W
KW

EFW
KEF

WHERE

KE40FWEF

SQL> DELETE FROM dept


2 WHERE deptno = 40 ;
1 row deleted.

E40F
K

KWEF

SQL> DELETE FROM emp ;


14 row deleted.

- -

KWHERE

WF

KEEROLLBACKF

KESALESFWEF

SQL> DELETE FROM emp


2 WHERE deptno=( select deptno from dept where dname='SALES' ) ;
6 row deleted.

E30F

ESALESF

E30F

KE30F

E10F

WEF

SQL> DELETE FROM dept


2 WHERE deptno= 10 ;
ERROR at line 1 :
ORA-02292 : integrity constraint ( USR.EMP_DEPTNO_FK)
Vaiolated child record found

E10F

E10F

KEempF

- -

Primary F EdeptnoF

KEForeign KeyFEkey
EDatabase TransactionsF

Database transactions


ECOMMITFDatabase transactions
KESAVEF

WDatabase transactions

COMMIT
K

KROLLBACK
KCOMMIT
W

WW
SQL> DELETE FROM emp
2 WHERE deptno = 30 ;
6 row deleted.
SQL> COMMIT ;

E30F

KCOMMIT

W W

EDDLFESQL > EXITF


WEDCLF
(CREATE VIEW, CREATE TABLE , DROP TABLE , CONNCET ...... F

- -

EMPNO
1111
2222

ENAME
AHMED
SAUD

JOB
ENGENEER
SALES

MGR
7839
7698

HIREDATE
01-01-2004
05-02-2003

SAL
5000
3000

COMM
200
100

DEPTNO
10
20

KE7000FEAHMEDF

KE1000F E900F

KE2222FJ

- -


]<gj]<]<j<^]<]

CREATING AND MANAGING TABLES

W
K

W
W
K J
KDATATYPES J
K J
K J
EF J
K J
K J
K J
W
K

W
K
K
K

W
K

- -

SQL
EDDLFE Data Definition LanguageF


ETablesF

WK


K
W
K

W
K
KW

Table
View
Sequence
Index
Synonym

KETablesF

- -

KDATATYPES

Varchar2()
Char()

EpF
EsF

Number(p,s)


E2F
K

E4F

KE4F

Date
Long
CLOB BLOB
Bfile

W
K
K E30F

KE_ , $ , #F
K

- -

KEFROM , SELECT ...F

KCREATE TABLES

K
SQL > CREATE table (

,
,

) ;

KEdept2FWEF

SQL > CREATE TABLE dept2 (


2
deptno NUMBER(2) ,
3
dname VARCHAR2(14) ,

4
loc
VARCHAR2(13) ) ;
Table created .

Edept2F

E FEF
E F

SQL > DECRIBE dept2 ;


Name
Null? Type
----------------------------------------- -------- ---------------------------DEPTNO
NUMBER(2)
DNAME
VARCHAR2(14)
LOC
VARCHAR2(13)

- -

EEMPFE30F
W

KEEMPFE30FWEF
SQL > CREATE TABLE dept30
2
AS
3
SELECT empno , ename , sal*12 annsal , hiredate
4
FROM emp
5
WHERE deptno = 30 ;

Table created .

Edept30FE30F
EASF select
Edept30F

Edept30FEempno,ename,annsal,hiredateF
E30F
WEdept30FK
SQL > DECRIBE dept30 ;

Name
Null?
Type
----------------------------------------- ------------- ---------------------------EMPNO
NOT NULL NUMBER(4)
ENAME
VARCHAR2(10)
ANNSAL
NUMBER
HIREDATE
DATE

- -

WEdept30F

SQL> SELECT * FROM DEPT30 ;


EMPNO
---------- 7499
7521
7654
7698
7844
7900

ENAME
--------------ALLEN
WARD
MARTIN
BLAKE
TURNER
JAMES

ANNSAL
------------- 19200
15000
15000
34200
18000
11400

HIREDATE
-------------20-FEB-81
22-FEB-81
28-SEP-81
01-MAY-81
08-SEP-81
03-DEC-81

EEMPFE20FWEF
KEEMPF

SQL > CREATE TABLE dept20


6
(emp_id , emp_name , salary , start_date )
7
AS
8
SELECT empno , ename , sal , hiredate

9
FROM emp
10 WHERE deptno = 20 ;

Table created .

Edept20F
WE20F

Eemp_id , emp_name , salary , start_dateF

- -

KALTER TABLE

ESQLF

ALTER TABLE EF

WK

ALTER TABLE
ADD
MODIFY
DROP

KDEPT2EREGIONFWEF

SQL> ALTER TABLE dept2


2 ADD
( region VARCHAR2(20) );
Table altered .

EregionF

SQL > DECRIBE dept2 ;


Name
Null? Type
----------------------------------------- -------- ---------------------------DEPTNO
NUMBER(2)
DNAME
VARCHAR2(14)
LOC
V ARCHAR2(13)
REGION
V ARCHAR2(20)

- -

K1420 EDNAMEFWEF

SQL> ALTER TABLE dept2


2 MODIFY
( dname VARCHAR2(20) );
Table altered .

VARCHAR2(20)dname

WVARCHAR2(14)
KEF

KEF

KDEPTREGIONWEF

SQL> ALTER TABLE dept2


2 DROP COLUMN REGION ;
Table altered .

EDEPT2FEREGIONF

W
K

K
K
K

- -

KDROP

KEDEPT30FWEF
SQL> DROP TABLE
Table dropped .

dept 30 ;

E30F

KEDEPT30F

KRENAME

EDEPARTMENTF
EDEPT2F

KEDEPARTMENTFEDEPT2FWEF

SQL> RENAME dept2 TO deptartment


Table renamed.

EdepartmentF

- -

K
W

USER TABLES
K

EORACLE SERVERF
EDATA DICTIONARYF
K

W
KWEUSER_F
WEALL_F
K
EDBAFWEDBA_F
K

WEF
KEDATA DICTIONARYF

SQL> SELECT *
2 FROM
user_tables ;

KWEF

SQL> SELECT object_name , object_type


2 FROM
user_objects ;

K WEF

SQL> SELECT *
2 FROM
user_catalog ;

- -

DEPARTMENTJ

Column Name
Key Type
Nulls/Unigue
FK Table
FK Column
Datatype
Length

Id

Name

Number
7

Varchar2
25

EMPLOYEEJ

Column Name
Key Type
Nulls/Unigue
FK Table
FK Column
Datatype
Length

ID

LAST_NAME

FIRST_NAME

DEPT_ID

Number
7

Varchar2
25

Varchar2
25

Number
7

E50FLAST_NAMEEMPLOYEEJ

WKE25F

Name
Null? Type
----------------------------------------- -------- -----------------------ID
NUMBER(7)
LAST_NAME
VARCHAR2(50)
FIRST_NAME
V ARCHAR2(25)
DEPT_ID
NUMBER(7)

- -

FEMPLOYEE2
WEMPE
EID , LAST_NAME , DEPT_IDF

EMPLOYEE2FIRST_NAME J

EMPLOYEEJ

EMPLOYEEEMPLOYEE2J

EMPLOYEELAST_NAME J
K

- -


]<gj]<]<j<^]<]

CONSTRAINTS

W
K

W
W
KEConstraintsF J
KConstraints J
K J
K J
K J
K J
K J
W
K

W
K
K
K

W
K

- -


E100F

E
FE100F

KEFEConstraintF

- -

KConstraints
W

EDescriptionF

EconstraintF

EF

EF

NOT NULL
UNIQUE

K PRIMARY KEY
K

K
K
K
K

FOREIGN KEY
CHECK

KCreate a Constrait

K
K

K
K

- -

KPRIMARY KEY

Eprimary keyF

KENULLFJ


KEprimary keyF

KWEF

SQL > CREATE TABLE dept (


5
deptno NUMBER(2) PRIMARY KEY,
6
dname VARCHAR2(14)
NOT NULL ,

7
loc
VARCHAR2(13)
8
) ;

9
Table created .

EdeptF

FdeptnoEprimary keyFEdeptno,dnameF

E
K

dname Enot nullF


K

KENOT NULLF

- -

KWEF

SQL > CREATE TABLE dept (


2
deptno NUMBER(2) ,
3
dname VARCHAR2(14) NOT NULL ,
4
loc
VARCHAR2(13) ,
5
CONSTRAINT dept_deptno_pk PRIMARY KEY(deptno) ) ;

Table created .

Eprimary keyFEdeptF
E5F

EF
KEdept_deptno_pkF

KUNIQUE KEY

KEUNIQUEFWEF

SQL > CREATE TABLE dept (


2
deptno NUMBER(2) ,
3
dname VARCHAR2(14) ,
4
loc
VARCHAR2(13) ,
5
CONSTRAINT dept_deptno_uk UNIQUE(dname) ) ;

Table created .

EuniqueFEdeptF
EdnameF
K

- -

KFOREIGN KEY

Eprimary keyF

WEforeign keyF

EMP table
EMPNO
7839
7698
7782
7566

ENAME
KING
BLAKE
CLARK
JONES

DEPT table
JOB
PRESIDENT
MANAGER
MANAGER
MANAGER

DEPTNO
10
30
10
20

Foreign Key

DEPTNO
10
20
30
40

DNAME
ACCOUNT
RESEARCH
SALES
OPRATIONS

LOC
NEW YORK
DALLAS
CHICAGO
BOSTON

Primary Key

EdeptnoFEforeign keyF

deptno Eforeign keyFWEF


K

SQL > CREATE TABLE emp (


2
empno NUMBER(4) ,
3
ename VARCHAR2(10) NOT NULL ,
4
job
VARCHAR2(9) ,
5
mgr
NUMBER(4) ,
6
hiredate DATE ,
7
sal
NUMBER(7,2) ,
8
comm
NUMBER(7,2) ,
9
deptno NUMBER(2) REFERENCES dept(deptno) ) ;

Table created .

- -

Eforeign keyFEempF
EREFERENCESFEforeign keyFEdeptnoF
EdeptnoFEdeptnoFEforeign keyF

KKDEPT

deptno Eforeign keyFWEF


SQL > CREATE TABLE emp (


2
empno NUMBER(4) ,
3
ename VARCHAR2(10) NOT NULL ,
4
job
VARCHAR2(9) ,
5
mgr
NUMBER(4) ,
6
hiredate DATE ,
7
sal
NUMBER(7,2) ,
8
comm
NUMBER(7,2) ,
9
deptno NUMBER(2) ,
10
CONSTRAINT emp_deptno_fk FOREIGN KEY (deptno)
11
REFERENCES dept(deptno) ) ;

Table created .

KCHECK

deptno
E10 , 99F

- -

DEPTNOECHECKFWEF

SQL > CREATE TABLE dept (


2
deptno NUMBER(2) ,
3
dname VARCHAR2(14) ,
4
loc
VARCHAR2(13) ,
5
CONSTRAINT dept_deptno_ck CHECK(deptno BETWEEN 10 AND 99) ) ;

Table created .

deptnoEcheckFEdeptF

KE10 ,99F

KAdding Constrait
Alter Table
W
SQL > ALTER TABLE

ADD CONSTRAINT

KMGR EFOREIGN KEYFWEF

SQL > ALTER TABLE emp


2
ADD CONSTRAINT emp_mgr_fk
3
FOREIGN KEY(mgr) REFERENCES emp(empno) ;
Table altered .

- -

EmgrFEforeign keyF
KEselfjoinF

KDEPTNOEPRIMARY KEYFWEF
SQL > ALTER TABLE DEPT
2
ADD CONSTRAINT dept_deptno_pk PRIMARY KEY(deptno) ;

Table altered .

EdeptnoFEprimary keyF

KDROP
WAlter Table

KEemp_mgr_fkFWEF

SQL > ALTER TABLE emp


2
DROP CONSTRAINT emp_mgr_fk ;
Table altered .

Eemp_mgr_fkFEForeign keyF
KEempF

- -

Efroeign keyFdeptnoEprimary keyF

deptno

Eforeign keyF
W

WEF
K

SQL > ALTER TABLE dept


2
DROP primary key CASCADE ;
Table altered .

ECASCADEF

KEForeign keyF

KData Dictionary
W

- -

KWEF

SQL > SELECT constraint_name , constraint_type


2 FROM user_constraints
3 WHERE table_name = 'EMP' ;
CONSTRAINT_NAME
----------------SYS_C00674
SYS_C00675
EMP_EMPNO_PK
FK_DEPTNO

C
C
C
P
R


EConstraint_typeF
KCHECKC

KPrimary keyP

KForeign keyR
KUNIQUEU

KCHECKNOT NULL

KWEF
SQL > SELECT constraint_name , column_name
2
FROM user_cons_column
3
WHERE table_name = 'EMP ' ;

- -

EDEPARTMENTF
Eprimary keyF

EEMPLOYEEF J

EUNIQUEF
Eprimary keyF

KEFOREIN KEYFJ

KE1000 , 5000F

KEMPLOYEE

- -

SQL

SQL* PLUS

SELECT

EDISTICTF

ENULLF

SELCT

WHERE

ORDER BY

NOT


TO_CHAR
TO_DATE

TO_NUMBER

ECOUNTF
EGROUP BYF

SELECT

NILL
FORM

NULL

Database Transactions

PRIMARY KEY
UNIQUE KEY

FOREIGN KEY
CHECK


EF
GOTEVOT appreciates the financial support provided by BAE SYSTEMS

You might also like