Download as pdf or txt
Download as pdf or txt
You are on page 1of 155

Arab British Academy for Higher Education.

Oracle
Part 1

0
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.

Oracle Part1


Files Structure

Processes
Memory Structure

Database Startup
Database Startup
The Data Dictionary

1
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

2
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.

Oracle

. oracular

.


3
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

4
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1


Database

.
RDBMS

:
:

Process
.

Memory
.

5
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

.
:

Oracle Server

:
.1 Processes
.2 Memory Structure
.3 Physical File Structure
Database

Instance
6
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

Processes

+ = Oracle Instance
Database
+ = Oracle Server
:

7
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.


Dedicated Server Process

Sql .


Shared Server



10

100
.

dispatchers


(SGA)System Global Area
8
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.

Quee

:
dispatcher

.SGA

.
Client :

9
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.


Dedicated Server Process

TCP/IP
TCP/IP
.

.TNS Names

TNS
Transparent Network Substrate
Remote .Peer to peer communication
10
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.

Connect String

ora816.us.oracle.com

TNSNAMES.ORA

:
HostNmae

Port
SID

TCP/IP

11
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

aria.us.oracle.com 1521

.TNS Listener

Listner

Didicated Server Process

Dispatcher .Shared Server

Listener

12
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.

Listner Shared Server

13
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.

14
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.

Files Structure

Physical Files

(
.
. Data Files


Views ..procedures

.DBWR
.

Transaction

Redo Log

LGWR

) (Redo Redo Log Buffer

Redo Log Files


Switching

ARCH

15
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

Control File .

Log

& Alert . Files .


:

16
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

Physical
Structure

Parameter File

Files Data

Password file

Control File

Oracle Net

Redo Log Files

Parameter files
SGA

.
PFILE Server ) SPFILE
.(Paramater file

250 g10

30

Control File

:
17
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

Control Files .

Multiplex

.CHKP View

;SQL> select name from v$controlfile


Data Files


SQL
TableSpaces Tables

Indexes :

18
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

:
Data Files
.



.TableSpaces

.Views
SQL
.

.DataFiles
DataFile
.


.DataFiles

19
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

) System Change Number (SCN

Tablespace M100

.
Redo Log Files


New transaction

Password File
SYSDBA
SYSOPR .

20
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1


Logical

:
Segment:

Segment

Table Sgment
Index Sgments
Rollback Sgments.

Extents
Extents

.rollback Segment

1 2 .
Block

Bloack

Physical .

)2 4 8 16 32

21
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

Extents
.

Bloch Header
o Header
Table Block .Index Block
22
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

o Active transaction
.

o .
Table Directory
o

Table Directory
o
.

Block Overhead

.
: TableSpace

Segment

Extents .Block
Phiscal
Data Files .

23
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

TableSpace
USER_DATA ) (2 Data

Files ) user_data01.dbf .( user_data02.db

)( T1, T2,I1

) (2 T1, T2 ) (1
I1

) (4 Extents
.

24
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

( T1) Segment ) (2
Extent .

) ( T2, I1 .
:
o .
o .
:
8.1.5
dictionarymanaged tablespace

Extents

SQL Dictionary tables


.

. 7.3
25
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

Temporary TableSpace
Extents

8.1.5 locally
managed tablespace
dictionary managed

TableSpace extents

Bitmap

.
Redo Log Files


Instance Failure OnLine Redo

Log .


26
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

ONLINE Redo


.
Online Redo Log

.
:

27
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

Switch
0Log Check

) pointing (CHKP ).Database Block Writer (DBWn

cache

buffer

Database

SGA
redo log buffe

Commit
Data files
Redo Log Buffer ONLine

Redo Log LGRW


28
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1


Database buffer cache

.DBWR


Transactions

Database buffer cache Dirty


.Buffer

) Checkpoints (CHKP

) (DBWR CHKP

. Event
.

29
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.

:Archived Redo Log


Online Redo Log

NOARCHIVELOG

ARCHIVELOG
.

Online Redo

Archivelog
Online Redo log
:

30
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.

Processes

) (.

Processes servicing user


requests
Processes writing
data to the data files

recording transactions in log files

Processes


Processes monitoring the functioning of the database


31
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.

Data Files

Shared Memory

) Transaction

( Log
Files

32
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

Processes
Server Process

User Process


User Process

Server Process

33
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

:

.User Process

User Process
PGA
.

Server Process Oracle


Instance .

:
Oracle Processes In Background
.

I/o

34
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

.1 :
:
(DBWRn) Database Writer

Database Buffer cache


files

0Data

)Checkpoint (CKPT
Control File
Data files System Change

) Number (SCN


.
Checkpoint
.

Log Writer (LGWR)/


35
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

Transactions

Log Buffer

. CHKP
SCN

.
) ( ARCH


.
Alter log
System Archive

log_archive_start = true

36
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.

.2 :Monitoring Processes
) (SMON

) (PMON

(SMON ) System Monitor




ShutDown
normal

37
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

Temporary Segments

Database
Writer Sgments

Tempory

38
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

( PMON) Process Monitor


User Processes :
.

Locks .

.

39
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

Memory Structure

.
:
) System Global Area (SGA :
o Database buffer cache
o Redo Log buffer
o Shared pool
o Large pool
) Program Global Areas (PGA :
Stack areas o
Data areas o
:

:( System Global Area ) SGA


40
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

System global Area

o : Java Pool
JVM
o Large Pool:
Session

RMAN

o : Shared Pool

Shared Procedures dictionary caches

....

41
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

:SGA

JAVA_POOL_SIZE
SHARED_POOL_SIZE Shared Pool
LARGE_POOL_SIZE Large Pool
DB_BLOCK_BUFFERS
LOG_BUFFER

Fixed SGA
SGA

. .
:SGA

Database buffer cache


Redo Log buffer

42
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

Database buffer cache



Database buffer cache .

!.

0LRU

Data Files

DBWR .Dirty Blocks

43
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

:Redo Log buffer


Redo
LGWR OnLine Redo Log

Commit .
LOG_BUFFER

) *128 ( CPUs
:Java Pool

statistics_level TYPICAL
:Shared Pool

SGA


. .

. 1000
44
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

SQL

PL/sql .


The data dictionary .

.
:

o The Library Cache


SQL
parse tree and the execution .

o The Data-Dictionary Cache



:
user privileges
Integrity
constraints

columns in database tables
space
allocated and used for schema objects

45
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

SQL

.
):The Program Global Area (PGA

: Stack space
session's variables

arrays, and so on

Session
multithreaded server
SGA

SQL : Private SQL area


binding variables and runtime buffers is kept.

46
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.


Transaction
.
Transaction

SQL

Commit

.Rollback ) /
( client /server :

.SQL*Net
SQLPLUS

.SQL*Net

47
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.

SQL
.

48
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.

Shared Pool
sql Shared SQL Area


.

SGA

Data files
.SGA

. .

Commit
Rollback


Redo

Log Buffer OnLine Redo Log .


Database buffer cash

Datafiles

49
www.abahe.co.uk

Arab British Academy for Higher Education.

50
www.abahe.co.uk

Oracle Part1

Oracle Part1

Arab British Academy for Higher Education.

Database Startup

. :

:STARTUP NOMOUNT



51
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.

0Data Files
.

Scripts
.


Control File


:STARTUP MOUNT


archive log mode
:STARTUP OPEN

:STARTUP FORCE


52
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.


shutdown abort and then restarts the database
STARTUP RESTRICT
RESTRICTED

SESSION

53
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

Database Startup


Connect SYSOPER or SYSDBA

:

Option

Shutting Down with the NORMAL

:
SHUTDOWN NORMAL
:
.
.

.

:
Shutting Down with the IMMEDIATE Option
:
.
.

Log Off

54
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1


SHUTDOWN IMMEDIATE
:

.

Committed

rolled

. back

instance

.recovery

:
Shutting Down with the TRANSACTIONAL Option

Active Transaction :

SHUTDOWN TRANSACTIONAL
:
Shutting Down with the ABORT Option

55
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

.

.

.
:
SHUTDOWN ABORT
:
.

.

not rolled back


Instance recovery
.

56
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

The Data Dictionary


data dictionary

Schema Objects
) tables, views, indexes, clusters, synonyms,
sequences, procedures, functions, packages, triggers,
and so on

user privileges

constraints

Integrity

columns
in database tables
space allocated
and used for schema objects

SQL

DDL .

57
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

SYS, Owner of the Data Dictionary

Views

SYS


SYSTEM tablespace
Online.

:
: Base Table
.

User-Accessible Views

.
.

Data Dictionary Views


Oracle 10g

1300 .
_ DBA _ , ALL_ , USER

58
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.

DBA_TABLES

ALL_TABLES

USER_TABLES
:

59
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.

emp

60
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.

Dynamic Performance Views


10g

Oracle 350

V$ :

V$VERSION

61
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.

62
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

63
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1


.
:

64
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

.
:

.
:

:Server Manager

.
Manager

:Enterprise

:SQL Loader

.
65
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

:Export Manager

:Import Manager


.
:
1979

: ) (
) ( )

(.

: 1983

) (

)( .

: 1984

)( ) (

.
66
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

: 1985
/ ) (
640

. DOS

: 1988


) ( 1991

: 1992

:
4

67
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

i9
NT/2000/XP
" "
:
https://profile.oracle.com/jsp/reg/createUser.jsp?act=5
&src=1180588&tid=262&owner=3&nexturl=http%3A//w
ww.oracle.com/technology/software/index.html&langu
age=en
: i9
OraHome90 :
< C> or <D> or.. :\Oracle\ora90:

-:

Next
68
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.

" "

C: D:

: i9

69
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.


General Purpose

) (SID Global database name


global database name ORACLE.US.COM
) (SID ORACLE

70
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

Database file .

) (

.
.

71
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.

Next

:

Install
72
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.

CD 2 3
:

73
www.abahe.co.uk

Oracle Part1

Arab British Academy for Higher Education.

Properties properties System


Computer Name

Change Computer Name Changes

More

74
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

DNS Suffix and NetBIOS Computer Name

ORACLE.US.COM computer suffix of this Primary DNS

. OK
2000 Release 6.0 OR i6
i9

i9 2000 Release 6.0 OR i6


: configuration Net service Name Local -1
: Net Configuration Assistant

Start -> programs -> Oracle - Orahome90 -> Configuration and Migration Tools ->
Net Configuration Assistant

Local Net service Name configuration


.Next

.Next Add

Oracle 8i or later database or service


.Next

)( Service Name
global database ORACLE.US.COM "
.Next " name

75
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

TCP . Next

Name

Host TCP/IP

. Port .Next

Yes, perform a test .Next

Connecting...Test successful.
Change
login :

Username: system
Password: manager
.Next

- Net Service developer

.Next

- Next Next . Finish

tnsnames.ora
Oracle\Ora90\network\admin :


ORANT\net80\admin
sqlnet.old :
Oracle\Ora90\network\admin -
ORANT\net80\admin -

:
Username: system
76
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part1

Password: manager
Host String Or Database: developer.oracle.us.com
.

77
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle
Part 2

0
www.abahe.co.uk

Oracle Part 2

Arab British Academy for Higher Education.

Oracle Part 2

:

.

.....
.

1
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:CREATE
USER USER

Azzam BY IDENTIFIED

.236

"CREATE USER Azzam IDENTIFIED BY "236


.User created .

"CREATE USER NAMEOF USER IDENTIFIED BY "YOUR PASSWORD

:GRATN

GRATNS
.

GRANT OBJECTNAME TO YOURUSERNAME



RECOURCE DBA

DATABASE ADMINISTRATION :
:

GRANT RESOURCE,DBA TO Azzam


,

2
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:CONNECT
:
CONNECT Azzam/236
Azzam 236
.

:
SHOW USER

:DUMMY TABLE

.DUAL

:
SELECT SYSDATE FROM DUAL
.
:CREATE TABLE

CREATE TABLE STUDENTS

DATATYPE :

3
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:VARCHAR2

20 VARCHAR2 20.

:NUMBER

NUMBER4
.1234

:DATE :
CREATE TABLE table_name
(column1 datatype ,
column2 datatype ,
..
)

CONSTRAINTS

PRIMARY KEY


PRIMARY KEY.

4
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:CONSTRAINT

:
Ammar 2000-03-08
Ammar 2001-03-08

) ( ..


.
(column1,

KEY

PRIMARY

CONSTRAINT constraint_name
)column2, . column_n

FOREIGN KEY

5
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:
:
CONSTRAINT CONSTRAINT_NAME FOREIGN KEY (column1,
)column2, ... column_n


)REFERENCES parent_table (column1, column2, ... column_n


:
CONSTRAINT fk_column
)FOREIGN KEY (column1, column2, ... column_n
)REFERENCES parent_table (column1, column2, ... column_n
;)

: :
1 2 3 4

: :

1 2 3 4

: :

1 2 3 4

5 6 6 7

8 9 10

6
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:
CREATE TABLE NATIONALITY(
NAT_NO VARCHAR2(5),
NAT_NAME VARCHAR2(20),
NAT_CRE_DATE DATE,
NAT_CRE_NAME VARCHAR2(50),
CONSTRAINT NAT_PK PRIMARY KEY(NAT_NO)
)
/

, NAT_CRE_DATE
NAT_CRE_NAME

:
CREATE TABLE DEPARTMENTS(
DPT_NO VARCHAR2(5),
DPT_NAME VARCHAR2(20),
DPT_CRE_DATE DATE,
DPT_CRE_NAME VARCHAR2(50),
CONSTRAINT DPT_NO_PK PRIMARY KEY(DPT_NO)
)
/

7
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:
(CREATE TABLE EMPLOYEES
EMP_ID VARCHAR2(10),
EMP_NAME VARCHAR2(50),
EMP_BIRTH_DATE DATE,
EMP_SEX VARCHAR2(1),
NAT_NO VARCHAR2(5),
EMP_HIRE_DATE DATE,
EMP_BASIC_SALARY NUMBER(4),
EMP_ADD_EXCHANGE NUMBER(4),
DPT_NO VARCHAR2(5),
EMP_CRE_DATE DATE,
EMP_CRE_NAME VARCHAR2(20),
CONSTRAINT EMP_ID_PK PRIMARY KEY(EMP_ID),
)CONSTRAINT NAT_NO_FK FOREIGN KEY (NAT_NO
REFERENCES NATIONALITY (NAT_NO),
)CONSTRAINT DPT_NO_FK FOREIGN KEY (DPT_NO
)REFERENCES DEPARTMENTS (DPT_NO
)
/

NAT_NO
DPT_NO
. EMP_CRE_DATE

EMP_CRE_NAME

: DESCRIBE YOUR_TABLENAME

NOT NULL

8
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

DESC EMPLOYEES :

DESCRIBE EMPLOYEES <SQL


NAME
NULL?
EMP_ID
NOT
NULL
EMP_NAME
EMP_BIRTH_DATE
EMP_SEX
NAT_NO
EMP_HIRE_DATE
EMP_BASIC_SALARY
EMP_ADD_EXCHANGE
DPT_NO
EMP_CRE_DATE
EMP_CRE_NAME VARCHAR2(20)

TYPE
VARCHAR2(10)
VARCHAR2(50)
DATE
VARCHAR2(1)
VARCHAR2(5)
DATE
NUMBER(4)
NUMBER(4)
VARCHAR2(5)
DATE

9
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:
-1

5 20

2 :
PRIMARY KEY
FOREIGN KEY
3 .FOREIGN KEY

4 :
PRIMARY KEY
:

= e0001 = 10
= e0002 = 10

10
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2


Insert Update Delete
1 :insert

insert
into

Primary key

key foreign values


VARCHAR2 ' 'VALUE DATE

' ' VALUE

CUTAION SINGLE ;commit

.
:

INSERT INTO table


)(column-1, column-2, ... column-n
VALUES
;)(value-1, value-2, ... value-n
.
:
11
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:
NAT_NO

NAT_NAME

NAT_CRE_DATE
NAT_CRE_NAME

INSERT INTO
NATIONALITY(NAT_NO,NAT_NAME,NAT_CRE_DATE,NAT_CRE
_NAME)
VALUES('001','SAUDI',SYSDATE,USER);
INSERT INTO
NATIONALITY(NAT_NO,NAT_NAME,NAT_CRE_DATE,NAT_CRE
_NAME)
VALUES('002','JORDAN',SYSDATE,USER);
INSERT INTO
NATIONALITY(NAT_NO,NAT_NAME,NAT_CRE_DATE,NAT_CRE
_NAME)
VALUES('003','EGYPT',SYSDATE,USER);
INSERT INTO
DEPARTMENTS(DPT_NO,DPT_NAME,DPT_CRE_NAME,DPT_CRE
_DATE)
VALUES ('DP01','EMPLOYEES',USER,SYSDATE);
INSERT INTO
DEPARTMENTS(DPT_NO,DPT_NAME,DPT_CRE_NAME,DPT_CRE
_DATE)
VALUES ('DP02','ACCOUNT',USER,SYSDATE);
INSERT INTO
DEPARTMENTS(DPT_NO,DPT_NAME,DPT_CRE_NAME,DPT_CRE
_DATE)
VALUES ('DP03','COMPUTER',USER,SYSDATE)
COMMIT;

12
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

2 :DELETE
:
DELETE
DELETE FROM
DELETE FROM table name
DELETE TBALE_NAME

:
.
;DELETE DEPARTMENTS
;DELETE FROM NATIONALITY
;COMMIT
.
: WHERE CONTION

AND

DELETE FROM DEPARMENTS


'WHERE DPT_NO='DP02
;COMMIT

13
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

3 :UPDATE

UPDATE SET .

update table_name set field_name = value


:
'UPDATE DEPARTMETS SET DPT_NAME='ALL
where
condition :

update table name set field name = value,field_name2=value


:
'UPDATE DEPARTMETS SET DPT_NAME='ALL' ,DPT_NO='02
'WHERE DPT_NO='DPT02

14
www.abahe.co.uk

Oracle Part 2

Arab British Academy for Higher Education.

Select Statement :
Select Statement

statement select

Update Delete Insert function


.

1 SELECT:
SELECT *

FROM FROM
:

* SELECT
;>FROM <table name
:
SELECT * FROM NATIONALITY
.

2 SELECT :
*
>SELECT <column name, column name, ..., <column name
;>FROM <table name

15
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:
SELECT DPT_NO,DPT_NAME FROM DEPARTMENTS
. SELECT
:WHERE CONDTION SELECT 3
WHERE CONDITION
SELECT *
FROM <table_name>
WHERE ....
:
SELECT * FROM DEPARTMENTS
WHERE DPT_NO='DP01'
DELETE INSERT UPDATE SELECT

:CREATE TABLE
:INSERT SELECT
INSERT

SELECT
.SELECT

INSERT INTO TABLE_NAME


(COLOUMN1...,COLOUMN2...)
SELECT COLOUMN1...,COLOUMN2...)
FROM OTHER_TABLE_NAME
WHERE .....
:
16
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

INSERT INTO DEPARTMENTS(DPT_NO,DPT_NAME)


SELECT NAT_NO,NAT_NAME
FROM NATIONALITY;

:DELETE SELECT
DELETE FROM TABLE_NAME
WHERE COLOUMN_NAME [COLOR=blue]IN[/COLOR]
(SELECT COLUMN FROM TABLE NAME
WHERE ....
IN WHERE CONDTION FUNCTION
SELECT

:UPDATE SELECT
UPDATE TABLE_NAME SET COUMN_NAME= SELECT
CLOUMN_NAME FROM TABLE_NAME WHERE ....
SELECT

17
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:TABLE CREATE SELECT


:
CREATE TABLE new_table
AS (SELECT column_1, column2, ... column_n
FROM old_table_1, old_table_2, ... old_table_n);
SELECT
:
CREATE TABLE DEPT
AS (SELECT DPT_NO,DPT_NAME FROM DEPARTMENTS
WHERE DPT_NO='DP001')

18
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

functions
:
1 :
:ALIASES
.

;select sysdate as "My Date" from dual


My Date
-------22-10-06
:DISTINCT

SELECT
.SELECT :

1980-07-02
1981-07-02
SELECT

DISTINCT
.

SELECT DISTINCT CLOUMN1...,COLUMN2.. FROM


TABLE_NAME
SELECT DISTINCT DPT_NAME FROM DEPARTMENTS

19
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:LOWER UPPER

LOWER SMMAL UPPER CAPITAL


:

SELECT UPPER(CLOUMN OR STRING) FROM TABLE NAME


SELECT LOWER(CLOUMN OR STRING) FROM TABLE NAME

:
SELECT LOWER('ADMIN05') FROM DUAL;
SELECT UPPER('admin05') FROM DUAL;
. DUAL
SELECT UPPER('DPT_NAME'),LOWER(DPT_NAME FROM
DEPARTMENTS
SMALL CAPITAL

capital :initcap
select initcap(cloumname or string) from table_name
select initcap('admin05') from dual;
NULL :NVL
.
SELECT NVL(CLUMONAME,YOUR_VALUE) FROM
TABLE NAME

20
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:
SELECT NVL(dpt_name,'not found') from departments
select NVL(number,0) from dual
string : to char

select to_char(cloumn,'ur mask') from table name


select to_char(cloumn) from table name
select to_char(sysdate,'dd-mm-yyyy') from dual
select to_char(sysdate) from dual;
:ORDER BY

SELECT SELECT


.DESC ASC

ORDER BY COLUMN_NAME ASC


SELECT DPT_NO,DPT_NAME FROM DEPARTMENTS
ORDER BY DPT_NO ASC
GROUP BY : GROUP BY

SELECT column1, column2, ... column_n, aggregate_function


(expression)
FROM tables
WHERE predicates
GROUP BY column1, column2, ... column_n;

21
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:Count
:
)SELECT COUNT(expression
FROM tables
;WHERE predicates
COUNT


.GROUP BY

SELECT COUNT(DPT_NO) as "Number of Dept",DPT_NAME FROM


DEPARTMENTS
GROUP BY DPT_NAME

COUNT GROUP BY
.

:SUM :

22
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

SELECT SUM(expression )
FROM tables
WHERE predicates;
DISTINCT SUM
:
SELECT SUM(DISTINCT salary) as "Total Salary"
FROM employees
WHERE salary > 25000;
.

SELECT SUM(sales*0.10) as "Commission"


FROM order details;
BY GROUP SUM
:
SELECT department, SUM (sales) as "Total sales"
FROM order_details
GROUP BY department;
. :MAX
SELECT MAX (expression)
FROM tables
WHERE predicates;
MAX :MIN
23
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

SELECT MIN (expression)


FROM tables
WHERE predicates;
:
SELECT MIN(salary) as "Lowest salary"
FROM employees;
DPT_NAME
GROUP BY COUNTDPT_NO

.MAX,MIN,SUM
GROUP BY :HAVING

GROUP BY
.

:
SELECT column1, column2, ... column_n, aggregate_function
(expression)
FROM tables
WHERE predicates
GROUP BY column1, column2, ... column_n
HAVING condition1 ... condition_n;
SUM,MAX,MIN,COUNT

24
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:
:SUM
SELECT department, SUM(sales) as "Total sales"
FROM order_details
GROUP BY department
HAVING SUM(sales) > 1000;
: COUNT[/COLOR]
[COLOR=red]
SELECT department, COUNT(*) as "Number of employees"
FROM employees
WHERE salary > 25000
GROUP BY department
HAVING COUNT(*) > 10;
:MIN
SELECT department, MIN(salary) as "Lowest salary"
FROM employees
GROUP BY department
HAVING MIN(salary) = 35000;
: MAX[/COLOR]
[COLOR=red]
SELECT department, MAX(salary) as "Highest salary"
FROM employees
GROUP BY department
HAVING MAX(salary) < 50000;

25
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:( ) ( ) / BETWEEN

SELECT columns
FROM tables
WHERE column1 between value1 and value2;
:
SELECT *
FROM suppliers
WHERE supplier_id between 4000 and 4500;
:( ) NOT BETWEEN
NOT
BETWEEN
SELECT *
FROM suppliers
WHERE supplier_id not between 4000 and 4500;

26
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:
1 = DP04 =marketing
2 :
where condition
3
4
5 select
6 select
7 select .DP01
8 statement select
9 2006-01 01 2006
to_char
10 nvl initcap select
11 sum
12

13

14 between not between


15 5

:TO_DATE STRING

STRING . DATE
27
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

to date( string1, [ format mask ], [ nls_language ] )


. STRING1
: FROMAT_MASK

.STRING

: NLS_LANGUAGE
.
:
to_date('2003/07/09', 'yyyy/mm/dd') would return a date value of July 9,
2003.
to_date('070903', 'MMDDYY') would return a date value of July 9, 2003.
to_date('20020315', 'yyyymmdd') would return a date value of Mar 15,
2002.

:LAST_DAY
.

:
last day( date )
:
last day(to_date('2003/03/15' ,'yyyy/mm/dd')) would return Mar 31, 2003
last day(to_date('2003/02/03' ,'yyyy/mm/dd')) would return Feb 28, 2003
last day(to_date('2004/02/03' ,'yyyy/mm/dd')) would return Feb 29, 2004

: ADD_MONTHS
:

add months( date1, n )


28
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

n
:
add_months('01-Aug-03', 3) would return '01-Nov-03'
add_months('01-Aug-03', -3) would return '01-May-03'
add_months('21-Aug-03', -3) would return '21-May-03'
add_months('31-Jan-03', 1) would return '28-Feb-03'

. :NEXT_DAY
next date(date1,n)
n

NEXT_DAY('01-01-2006',5) RETURN '06-01-2006'


NEXT_DAY('15-01-2006',-5) RETURN '10-01-2006'
next_day('01-Aug-03', 'TUESDAY')

29
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:TRIM

) trim( [ leading | trailing | both [ trim character ] ] string1


leading trailing

both

)//( trim
.
)' trim(' tech ''tech
)' trim(' ' from ' tech 'from 'tech
)' trim(leading '0' from '000123 '' 123
)' trim(trailing '1' from 'Tech1 ''Tech
)' trim(both '1' from '123Tech111
'Tech' 23

: Ltrim .
.
) ] ltrim( string1, [ trim_string
:
'ltrim(' tech'); would return 'tech
'ltrim(' tech', ' '); would return 'tech
'ltrim('000123', '0'); would return '123
'ltrim('123123Tech', '123'); would return 'Tech
'ltrim('123123Tech123', '123'); would return 'Tech123
'ltrim('xyxzyyyTech', 'xyz'); would return 'Tech
'ltrim('6372Tech', '0123456789'); would return 'Tech
y
:Rtrim trim Ltrim
30
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

rtrim( string1, [ trim_string ] )


:
rtrim('tech '); would return 'tech'
rtrim('tech ', ' '); would return 'tech'
rtrim('123000', '0'); would return '123'
rtrim('Tech123123', '123'); would return 'Tech'
rtrim('123Tech123', '123'); would return '123Tech'
rtrim('Techxyxzyyy', 'xyz'); would return 'Tech'
rtrim('Tech6372', '0123456789'); would return 'Tech'
:LPAD

lpad( string1, padded length, [ pad string ] )


padded length

10 + RRR
7 3

+++++++RRR
:

lpad('tech', 7); would return ' tech'


lpad('tech', 2); would return 'te'
lpad('tech', 8, '0'); would return '0000tech'
lpad('tech on the net', 15, 'z'); would return 'tech on the net'
lpad('tech on the net', 16, 'z'); would return 'ztech on the net'

31
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:RPAD

) ] rpad( string1, padded_length, [ pad_string


:
' rpad('tech', 7); would return 'tech
'rpad('tech', 2); would return 'te
'rpad('tech', 8, '0'); would return 'tech0000
'rpad('tech on the net', 15, 'z'); would return 'tech on the net
'rpad('tech on the net', 16, 'z'); would return 'tech on the netz
:SUBSTR

) ] substr( string, start position, [ length


SUBSTR

.
:

'substr('This is a test', 6, 2) would return 'is


'substr('This is a test', 6) would return 'is a test
'substr('TechOnTheNet', 1, 4) would return 'Tech
'substr('TechOnTheNet', -3, 3) would return 'Net
'substr('TechOnTheNet', -6, 3) would return 'The
'substr('TechOnTheNet', -8, 2) would return 'On
:INS

.
32
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

instr( string1, string2, [ start_position ], [ nth_appearance ] )


:
instr('Tech on the net', 'e') would return 2; the first occurrence of 'e'
instr('Tech on the net', 'e', 1, 1) would return 2; the first occurrence of 'e'
instr('Tech on the net', 'e', 1, 2) would return 11; the second occurrence of 'e'
instr('Tech on the net', 'e', 1, 3) would return 14; the third occurrence of 'e'
instr('Tech on the net', 'e', -3, 2) would return 2.

. :LENGTH
length( string1 )
:
length(NULL) would return NULL.
length('') would return NULL.
length('Tech on the Net') would return 15.
length('Tech on the Net ') would return 16.
:TRANSLATE
RTYYRT RTY

T 3 Y QW3
QW33QW Q R W

33
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:
translate( string1, string_to_replace, replacement_string
(
string_to_replace

replacement_string .
:

'translate('1tech23', '123', '456); would return '4tech56


'translate('222tech, '2ec', '3it'); would return '333tith
:REPLACE replace( string1,
( [ string_to_replace, [ replacement_string
TRANSLATE

TRANSLATE REPLACE

:

'replace('123123tech', '123'); would return 'tech


'replace('123tech123', '123'); would return 'tech
TRANSLATE
'replace('222tech, '2', '3'); would return '333tech
'replace('0000123', '0'); would return '123
'replace('0000123', '0', ' '); would return ' 123

34
www.abahe.co.uk

Arab British Academy for Higher Education.

35
www.abahe.co.uk

Oracle Part 2

Arab British Academy for Higher Education.

Oracle Part 2

. :CONCAT
concat( string1, string2 )
||
concat('Tech on', ' the Net'); would return 'Tech on the Net'.
concat('a', 'b') would return 'ab'.
'Tech on'|| ' the Net' would return 'Tech on the Net'.
'a'|| 'b' would return 'ab'.

36
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

birth_date

emp_name

emp_no

20-01-1970

ali ahmed ali

10

20-02-1976

Admin05 05 05

20

20-01-1960

ahmed moheme

30

20-10-1950

50dfgdr50

40

-1 5

-2 5

-3 3

-4 concat

-5 a e

-6 m

-7

-8 3 v

-9 9

-10

37
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

) :(Subqueries
:WHERE CONDITION -1
select * from all_tables tabs
where tabs.table_name in (select cols.table_name
from all_tab_columns cols
;)'where cols.column_name = 'SUPPLIER_ID
WHERE IN

all_tables
select .

)where cols.column_name in (select * from table_name


:

SELECT EMP_NAME,EMP_NO FROM EMPLOYEES
WHERE DPT_NO IN (SELECT DPT_NO FROM
DEPARTMENTS
' '=WHERE DPT_NAME
10

SELECT ) (.

38
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:UNION Query -2

select field1, field2, . field_n


from tables
UNION
select field1, field2, . field_n
from tables;
:
select supplier_id
from suppliers
UNION
select supplier_id
from orders;
:union With ORDER BY Clause
......1 unio
select supplier_id, supplier_name
from suppliers
where supplier_id > 2000
UNION
select company_id, company_name
from companies
where company_id > 1000
ORDER BY 2;
company_name supplier_name 2

Order By

"CODE]select supplier_id, supplier_name as "name


suppliers from
2000 < where supplier_id
39
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

UNION
"company_name as "name ,select company_id
from companies
1000 < where company_id
[BY name;[/CODE ORDER

:Query UNION ALL


union
select field1, field2, . field_n
from tables
UNION ALL
select field1, field2, . field_n
from tables;
:
select supplier_id
from suppliers
UNION ALL
select supplier_id
from orders;

40
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

: INTERSECT Quer -y3 union

field_n . ,select field1, field2

from tables
INTERSECT
select field1, field2, . field_n
from tables;
:
select supplier_id
from suppliers
INTERSECT
select supplier_id
from orders;
:MINUS Query

select field1, field2, . field_n
from tables
MINUS
select field1, field2, . field_n
from tables;
:
select supplier_id
from suppliers
MINUS
select supplier_id
from orders;

41
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

. )
(

:ALTER TABLE
:
:column(s) to a table Adding

.
:

ALTER TABLE table_name


;ADD column_name column-definition
ALTER TABLE ADD
.
:
ALTER TABLE supplier
;)ADD supplier_name varchar2(50
.
ALTER TABLE table_name
ADD ( column_1 column-definition,
column_2 column-definition,
...
;) column_n column_definition

42
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:Modifying column(s) in a table


.
:

ALTER TABLE table_name


MODIFY column_name column_type;
. SQL MODIFY
:
ALTER TABLE supplier
MODIFY supplier_name varchar2(100) not null;
:
ALTER TABLE table_name
MODIFY ( column_1 column_type,
column_2 column_type,
...
column_n column_type );

:column(s) in a table DropALTER TABLE table_name


DROP COLUMN column_name;
:
ALTER TABLE supplier
DROP COLUMN supplier_name;
43
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

(2 NEW in Oracle 9i Release) :Rename column(s) in a table i R29

ALTER TABLE table_name


RENAME COLUMN old_name to new_name;
:
ALTER TABLE supplier
RENAME COLUMN supplier_name to sname;
:TABLE DROP
:
DROP TABLE table_name;
:
DROP TABLE supplier;
CASCADE CONSTRAINTS

DROP TABLE supplier CASCADE CONSTRAINTS;

44
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:
1 Union Select

2 count union

3 INTERSECT Query Query Minus

45
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:
: unique constraint -1-

Primary Key UNIQUE


UNIQUE
PRIMARY KEY NULL VALUE .

Primary key unique


key Primary

E01
2222 w01 E01

3333 w02

primary Key

unique
primary key
unique

primary key
.unique

:unique unique
.
46
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

CREATE TABLE table_name


(column1 datatype null/not null,
column2 datatype null/not null,
...
CONSTRAINT constraint_name UNIQUE (column1, column2,
. column_n)
);
:
CREATE TABLE supplier
( supplier_id numeric(10) not null,
supplier_name varchar2(50) not null,
contact_name varchar2(50),
CONSTRAINT supplier_unique UNIQUE (supplier_id)
);
: unique
:
CREATE TABLE supplier
( supplier_id numeric(10) not null,
supplier_name varchar2(50) not null,
contact_name varchar2(50),
CONSTRAINT supplier_unique UNIQUE (supplier_id,
supplier_name)
);
:
ALTER TABLE table_name
add CONSTRAINT constraint_name UNIQUE (column1,
column2, ... column_n);
:
ALTER TABLE supplier
add CONSTRAINT supplier_unique UNIQUE (supplier_id);

47
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

: unique
:
ALTER TABLE supplier
add CONSTRAINT supplier_unique UNIQUE (supplier_id,
supplier_name);
:Constraints Check
: .
.(View )( check)
( check)
.

. ( Sub Query ) ( check)


:
:
CREATE TABLE table_name
(column1 datatype null/not null,
column2 datatype null/not null,
...
CONSTRAINT constraint_name CHECK (column_name
condition) [DISABLE]
);
:
CREATE TABLE suppliers
( supplier_id numeric(4),
supplier_name varchar2(50),
CONSTRAINT check_supplier_id
48
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

CHECK (supplier_id BETWEEN 100 and 9999)


);
:
CREATE TABLE suppliers
( supplier_id numeric(4),
supplier_name varchar2(50),
CONSTRAINT check_supplier_name
CHECK (supplier_name = upper(supplier_name))
);
capital
.Capital

:ALTER
ALTER TABLE table_name
add CONSTRAINT constraint_name CHECK (column_name
condition)
:
ALTER TABLE suppliers
add CONSTRAINT check_supplier_name
CHECK (supplier_name IN ('IBM', 'Microsoft', 'Nvidia'));

49
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:CONSTRAINTS
ALTER TABLE table_name
drop CONSTRAINT constraint_name;
:
ALTER TABLE suppliers
drop CONSTRAINT check_supplier_id;

:CONSTRAINT
ALTER TABLE table_name
enable CONSTRAINT constraint_name;
:
ALTER TABLE suppliers
enable CONSTRAINT check_supplier_id;
:CONSTRAINT
ALTER TABLE table_name
disable CONSTRAINT constraint_name;
:
ALTER TABLE suppliers
disable CONSTRAINT check_supplier_id;

50
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

CONSTRAINT

: USER_CONSTRAINTS

CONSTRAINT
CONNECT SYSTEM/UR_PASSWORD
SELECT CONSTRAINT_NAME,CONSTRAINT_TYPE
FROM USER_CONSTRAINTS
WHERE TABLE_NAME='SUPLLIERS';
CONSTRAINT

NOVALIDATE CONSTRAINT
.VALIDATE
:NOVALIDATE
ALTER TABLE uclass MODIFY CONSTRAINT pk_uclass
DISABLE VALIDATE;
:VALIDATE
ALTER TABLE uclass ENABLE NOVALIDATE PRIMARY KEY;

51
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

1 PRIMARY KEY UNIQUE

2 PRIMARY

KEY
.

3 CONSTRAINT

52
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:Function
CREATE [OR REPLACE] FUNCTION function_name
] )][ (parameter [,parameter
RETURN return_datatype
IS | AS
][declaration_section
BEGIN
executable_section
[EXCEPTION
]exception_section
;]END [function_name

function_name CREATE [OR REPLACE] FUNCTION


REPLACE CREATE OR
FUNCTION REPLACE

] )[ ([parameter [,parameter

IN .

OUT

IN OUT
.

:RETURN return_datatype

53
www.abahe.co.uk

Oracle Part 2

Arab British Academy for Higher Education.

IS | AS :IS
][declaration_section
.
:BEGIN
executable_section
SELECT
]:EXCEPTION
[exception_section

;[function_name] END

54
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:
CREATE OR REPLACE Function FindCourse
( name_in IN varchar2 )
RETURN number
IS
cnumber number; cursor c1 is
select course_number
from courses_tbl
where course_name = name_in;
BEGIN
open c1;
fetch c1 into cnumber;
if c1%notfound then
cnumber := 9999;
end if;
close c1;
RETURN cnumber;
EXCEPTION
WHEN OTHERS THEN
raise_application_error(-20001,'An error was encountered '||SQLCODE||' -ERROR- '||SQLERRM);
END;
:( Procedure)
CREATE [OR REPLACE] PROCEDURE procedure_name
[ (parameter [,parameter]) ]
IS
[declaration_section]
BEGIN
executable_section
[EXCEPTION
exception_section]
END [procedure_name];

55
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

procedure_name CREATE [OR REPLACE] PROCEDURE


Procedure OR CREATE

REPLACE PROCEDURE PROCEDURE

REPLACE PROCEDURE
PROCEDURE

] )[ ([parameter [,parameter

:

IN .

OUT .

IN OUT
.

/ IS :
][declaration_section
.Procedure
:BEGIN
executable section
Procedure SELECT

56
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:EXCEPTION
[exception section]

END [PROCEDURE_name];
. Procedure
:
CREATE OR REPLACE Procedure UpdateCourse
( name_in IN varchar2 )
IS
cnumber number; cursor c1 is
select course_number
from courses_tbl
where course_name = name_in;
BEGIN
open c1;
fetch c1 into cnumber;
if c1%notfound then
cnumber := 9999;
end if;
insert into student_courses
( course_name,
course_number)
values ( name_in,
cnumber );
commit;
close c1;
EXCEPTION
WHEN OTHERS THEN
raise_application_error(-20001,'An error was encountered '||SQLCODE||' -ERROR- '||SQLERRM);
END;

57
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:TRIGGER
TRIGGER

FUNCTION PROCEDURE

CREATE or REPLACE TRIGGER trigger_name


TRIGGER TYPE
ON table_name
[ FOR EACH ROW ]
DECLARE
-- variable declarations
BEGIN
-- trigger code
EXCEPTION
WHEN ...
-- exception handling
END;

trigger_name CREATE or REPLACE TRIGGER


CREATE OR REPLACE Trigger

REPLACE TRIGGER TRIGGER

TRIGGER TRIGGERJ

58
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:TYPE TRIGGER

Trigger Delete Update Trigger Insert Triggers

:ON table_name
[ FOR EACH ROW ]

:

views 1

new 2

old 3

:(Triggers Insert )

:INSERT Trigger BEFOR

CREATE or REPLACE TRIGGER trigger_name


BEFORE INSERT
ON table_name
[ FOR EACH ROW ]
DECLARE
-- variable declarations
BEGIN
-- trigger code
EXCEPTION
WHEN ...
-- exception handling
END;
:
59
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:
CREATE TABLE orders
( order_id number(5),
quantity number(4),
cost_per_item number(6,2),
total_cost number(8,2),
create_date date,
created_by varchar2(10)
);
:
CREATE OR REPLACE TRIGGER orders_before_insert
BEFORE INSERT
ON orders
FOR EACH ROW
DECLARE
v_username varchar2(10);
BEGIN --
SELECT user INTO v_username
FROM dual; -- new
:new.create_date := sysdate; --

new

INSERT
:new.created_by := v_username;
END;

60
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:AFTER INSERT
CREATE or REPLACE TRIGGER trigger_name
AFTER INSERT
ON table_name
[ FOR EACH ROW ]
DECLARE
-- variable declarations
BEGIN
-- trigger code
EXCEPTION
WHEN ...
-- exception handling
END;
:
:
CREATE TABLE orders
( order_id number(5),
quantity number(4),
cost_per_item number(6,2),
total_cost number(8,2)
);
:
CREATE OR REPLACE TRIGGER orders_after_insert
AFTER INSERT
ON orders
FOR EACH ROW
DECLARE
v_username varchar2(10);
BEGIN
-- Find username of person performing the INSERT into the
table
SELECT user INTO v_username
61
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

FROM dual; -- Insert record into audit table


INSERT INTO orders_audit
( order_id,
quantity,
cost_per_item,
total_cost,
username )
VALUES
( :new.order_id,
:new.quantity,
:new.cost_per_item,
:new.total_cost,
v_username );
END

:Drop a Trigger /
DROP TRIGGER trigger_name;
:
DROP TRIGGER orders_before_insert;
:DISABLE
ALTER TRIGGER trigger_name DISABLE;
:
ALTER TRIGGER orders_before_insert DISABLE;

62
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:
ALTER TABLE table_name DISABLE ALL TRIGGERS;
:
ALTER TABLE orders DISABLE ALL TRIGGERS;
:
ALTER TRIGGER trigger_name ENABLE;
:
ALTER TRIGGER orders_before_insert ENABLE;
:
ALTER TABLE table_name ENABLE ALL TRIGGERS;
:
ALTER TABLE orders ENABLE ALL TRIGGERS;

63
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:
1
2
3 SELECT
4
5
6 .SELECT

64
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

Views
views

.
:View

CREATE VIEW view_name AS


SELECT columns
FROM table
WHERE predicates;
:
CREATE VIEW sup_orders AS
SELECT supplier.supplier_id, orders.quantity, orders.price
FROM supplier, orders
WHERE supplier.supplier_id = orders.supplier_id
and supplier.supplier_name = 'IBM';
: view
SELECT *
FROM sup_orders;
: view
CREATE OR REPLACE VIEW view_name AS
SELECT columns
FROM table
WHERE predicates;

65
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:
CREATE or REPLACE VIEW sup_orders AS
SELECT supplier.supplier_id, orders.quantity, orders.price
FROM supplier, orders
WHERE supplier.supplier_id = orders.supplier_id
and supplier.supplier_name = 'Microsoft';
: view
DROP VIEW view_name;
:
DROP VIEW sup_orders;

66
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

: Synonyms
tables, Synonyms

,views, sequences, stored procedures


.

:
create [or replace] [public] synonym [schema .] synonym_name
for [schema .] object_name [@ dblink];
Synonyms replace or
public

.schema

table package
view materialized view
sequence java class schema object
stored procedure user-defined object
function synonym
:
create public synonym suppliers
for app.suppliers;
puplic suppliers app synonym

synonym

[COLOR=blue]select * from suppliers;[/COLOR]

67
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

: synonym
create or replace public synonym suppliers
for app.suppliers;
:synonym
drop [public] synonym [schema .] synonym_name [force];
puplic synonym public

synonym force

.oject
:

drop public synonym suppliers;

68
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

ROLES

Creating a Role Role privileges Role system

CREATE ROLE role_name


| [ NOT IDENTIFIED
| IDENTIFIED {BY password | USING [schema.] package
;} EXTERNALLY | GLOBALLY
role_name role
: NOT IDENTIFIED role role

.role

:IDENTIFIED role
:BY password
role
:USING package role

: EXTERNALLY
EXTERNALLY .role

: GLOBALLY

.enterprise

NOT IDENTIFIED IDENTIFIED


role .NOT IDENTIFIED

69
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:
role test_role
;CREATE ROLE test_role
role
CREATE ROLE test_role
;IDENTIFIED BY test123
Roles Grant Privileges (on Tables) to
role privilege
:
Select select

Insert
Update
Delete

References Constraints
Alter

Index index
:
grant privileges on object to role_name

70
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

:Roles
grant select, insert, update, delete on suppliers to test_role;
:Roles
grant all on suppliers to test_role;
:Roles
Revoke Privileges (on Tables) to Roles
Roles
revoke privileges on object from role_name;
:
revoke delete on suppliers from test_role;
:
revoke all on suppliers from test_role;
:roles
revoke execute on object from role_name;
:
revoke execute on Find_Value from test_role;

71
www.abahe.co.uk

Arab British Academy for Higher Education.

Oracle Part 2

: Roles
Granting the Role to a User

:
GRANT role_name TO user_name;
:
GRANT test_role to smithj;
:The SET ROLE statement
Roles Set Role

SET ROLE
( role_name [ IDENTIFIED BY password ]
| ALL [EXCEPT role1, role2, ... ]
| NONE );

72
www.abahe.co.uk

Arab British Academy for Higher Education.

73
www.abahe.co.uk

Oracle Part 2

Arab British Academy for Higher Education.

74
www.abahe.co.uk

Oracle Part 2

Arab British Academy for Higher Education.

Oracle Part 2

:
ABAHE DHID
.


...


75
www.abahe.co.uk

Arab British Academy for Higher Education.

76
www.abahe.co.uk

Oracle Part 2

You might also like