0% menganggap dokumen ini bermanfaat (0 suara)
6 tayangan127 halaman

Panduan Lengkap Server Oracle dan Fitur-Fiturnya

Dokumen ini membahas Oracle, sebuah sistem manajemen basis data yang dikembangkan oleh Oracle Corporation. Ini mengelola sejumlah besar data dalam lingkungan multi-pengguna, menyediakan keamanan dan pemulihan. Pengguna mengakses server Oracle menggunakan perintah SQL, yang dieksekusi server pada basis data. Dokumen ini juga menjelaskan peran Oracle dalam komputasi klien/server, fitur-fitur server Oracle seperti dukungan basis data besar dan konkurensi data, serta arsitektur keseluruhan dan pemrosesan Oracle, termasuk penyimpanan fisik, struktur logis, dan pemrosesan kueri.

Diterjemahkan oleh

ScribdTranslations
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
6 tayangan127 halaman

Panduan Lengkap Server Oracle dan Fitur-Fiturnya

Dokumen ini membahas Oracle, sebuah sistem manajemen basis data yang dikembangkan oleh Oracle Corporation. Ini mengelola sejumlah besar data dalam lingkungan multi-pengguna, menyediakan keamanan dan pemulihan. Pengguna mengakses server Oracle menggunakan perintah SQL, yang dieksekusi server pada basis data. Dokumen ini juga menjelaskan peran Oracle dalam komputasi klien/server, fitur-fitur server Oracle seperti dukungan basis data besar dan konkurensi data, serta arsitektur keseluruhan dan pemrosesan Oracle, termasuk penyimpanan fisik, struktur logis, dan pemrosesan kueri.

Diterjemahkan oleh

ScribdTranslations
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

ORACLE

lm
alad atad raseb ham
lujes alolegnm egnay D B
M ,aSsi t I
ugajutIm
[Link]
seknsgaetpadngpeuaknybangahiesngkuail
menyedakiakneamanadnapnem
m
[Link]
ipadnam
nengdm
oaeltenggunakoaesinrlal
model.
OracleadalahnamasistemmanajemenbasisdatayangdikembangkanolehOracle
Korporasi.
[Link]
[Link]
rracelmenem
ri apenriathSQLdapriengguna
dam
neanljkam
nedrkadbtiabseuanl.

SERVER ORACLE

Basis Data

PeranOracledalamKomputasiKlien/Server

KomputasK
i lien/Serveradalahmetodedm
i ana

Databasedisimpandiserverdalamjaringan
Program yang didedikasikan, disebut back-end, berjalan di server ini untuk mengelola
ym duaibsngjtaeivs.,repdani
Penggunamengaksesdatadidatabasedenganmenjalankanaplikasi,jugadisebut
yam
ngm
enar,iebstknalgbduaicnkepdiasylnradbjegr
.rveres
Apkilaysiangbearjlndkeilnbenrietrakdsienganpengguna.
Back-endmengurusmanajemenbasisdatasecarakeseluruhan.

1
Aplikaskiliendanback-endberjalandm
i esinyangberbeday,ang
mungkin dari berbagai jenis. Misalnya, back-end dapat berjalan di
mainframe dan front-end mungkin ada di PC.

Oracleadalahsistembasisdatayangberjalandiserver,dandigunakanuntukmengelola
.dE
n-kcB
ahaladarevrem
sanniL
[Link]
dan

V
ebtreasuridevraO
irearcedlalh9.i

[Link]
ofm
partlem
tO
patbnaelrcj.

WindowsNT.
NoveN
l ew
t are
Unix

Apa itu Personal Oracle?

danniiO
eDaclvm
resalO
[Link]
eoP
snalcer
m
nadinyaialasarngdaedaberbeniIm [Link] isedinalajrbeneikl
OracleServerberjalandiServerdanFront-endberjalandiClient.

nosrePnakanuggnm
e isaki lpa nakgnam
begnm
ekutnu nikgnm
uhalaAd
aClient/Serverenvironment.PersonalOraclecansupportupto15
kodanbetaks.i

F
u
O
triraecl

BkeiarudtalhbebeauprtreifnaigtdO
airarS
celevre.r

LargeDatbaseSupport

Oraclemendukungbasisdataterbesar,berpotensiratusanpetabytedalamukuran.
gned neisi fe gnay gnaur naanuggnep naknikgnm
m
ue aguj inI
manajemen.

DataKonsistensi

Oraclemendukungaksesbersamaankedatabaseolehbanyakpengguna.
m
otsaecriendm
[Link]
tum
nekigtsrbiaugkenrajnci

irtsu
d
ni m
naaireneprad
nats

Oracleserver100%sesuaidenganKetentuanANSI/ISO.
Oraclemematuhistandarindustriuntukbahasaaksesdata,jaringan
2
pm
[Link]
uatm
aerclyebm
rsatunei,am
kgd'jai'nidelungi
lpa nakhadnm
im
e kutnu hadM
u .naggnalep i sat sevni

3
Poratb
isli

PerangkatlunakOracledapatdiportingkesistemoperasiyangberbedadanituadalah
pengembangannkapidasilam l Oaercbsaldpinidahkanke
em
tsisom
paeisranapduainkdem
[Link]

EnforcedIntegrtiy

[Link]
[Link]

KeamananData

Oraclemenyediakankeamanandiberbagailevel-levelsistemdanlevelobjek.
um
gjaem
penbapkeuranm
tm
hebainlanP
uadnm
[Link]

Dukunganunu
tnk
ilgkunganK
einlS/erver

[Link]
em
sedsm
angem
K
akurndiatkelm
anpusO
ejkgbaiscluenra.
dureospruknm
tbealdaatdasism
baldam
diinpasdiukuntm
kodem
enkarveungkires
dam nuIfinge.m siungknkiosaniedarletam
nengnuaigrnjagni
.satni l ulal

DatabaseArchitecture

Sebuah basis data mengandung informasi dengan berbagai panjang. Namun untuk pengguna akhir, kami memiliki
iynm
ubeynm
enagnednakulrepidgnay ism
arofni aynahnakl m
ipanm
ekutnu
penyembakuldnakiynpm
aitnengunakbanm
[Link]

ad iskar tsba level 3 nakanuggnm


e tapad at ik R
D
B
M
,S
m
alD
a

T
nigkFsiat
T
ngikL atosgi
Veiwelvel

PhycsiaL
level

Surkbstidufasetdirm
t [Link]
eksm
[Link]

DataFile
BerkasRedoolg
4
Berkaskontrol

sencF
ieaolritm
dbsiausdtaatbasdebiua.t

DataFiles

bat pai teS .atad sisab i rad atad isi reb inI
[Link]
yeaSyelvacrnleidm
agfbdtpahesndalgtikeradnispeargti
bekras.

RedoLogFiles

[Link]
yealnidkgfiesnbadlgaR
bteiF
[Link]
lkegaganl
.eogfildoleorntettw
eiraesbatdaheotm
sngethadcA
[Link]
)gol .10odersm eanel iF(

FileKontrol

Mengandunginformasyiangdiperlukanuntukmemverifkasintegritasbasisdata,
net skE( esabatad id nial el i f m
aan kusm
aret

DatabaseName
Namesandolcaoitnsofdaatfielsandredoolgfiels.

PhaK
tD
tiapM
atengunakanO
phocadltm
re\alctrU
nviesrunktM
hSaitem
l ua
3tipeberkas

5
LogcaS
ilrtucu
tre

apO
[Link]
F
duepriksnotS
dgeitndar
B dsm
[Link]

RuanT
gabel
Segmen
Eksetnsi
Balok

RuangTabel

[Link],atidapam
t enggunakanatbel
.ijgaiskaA
PiY
butesplnagdR
edieO
cnpasL
tukm
L
ikauntm
nrgybaeinspatdau

[Link].
[Link]
[Link]

kadi t aratnm
ees lebat gnaur taum
m
bekutnu nikgnm
uhalaA d
me nagned i lam
bek aidesret ayntaum bm
e nad rutagnm e
D
n,eB
iA
lfpkaoecsbfnaubtpl.t

Segmen

Datakedalamruangtabeldatangdalambentuksegmen.
TabeC
l onothadaalhsebuahsegmen

SebuahbasdiatOracelmemeurlkanhnigga4ejnsiegmen

Segmendata lebat atad nam


piynm
ekutnu nakanugDi
skednInm
egeS Digunakanuntukmenyimpanindeks
Roblacksegmenst Informaysiangditakdkieathudismpan
S
gm
eaS
m
eranente OraclekoleksiTabelSementara

Keterbatasan

Ruangpenym i pananyangdaoilkaksianunutksegmenbearddaalmbenutkEkS
[Link]
[Link]
m
ijT
epstahe.drbcaltse6l5if3i6sTbpeisarcel
[Link]fi[Link]-menerusterus
dbbolcksmakesupanExen.t

6
OveralSystemStructure

Sistem basis data dibagi menjadi beberapa modul, yang menangani yang berbeda
.nahurulesekm
etsisw
baj gnugnat

Komponenufngoseintm
dsialirbdasidtalh

KomponenPengolahKueri
KomponenManaeP
jrenym
i panan

KomponenProsesQuery

Komponaendialhkumpualndpoarisebskeiru.t

DMLCompiler:InimenerjemahkanpernyataanDMLketingkatyanglebihrendah
i reuk i saulave ni sm
e helo i t regnm
eid gnay i skur t sni

EmbeddedDMLprecompelirInm
i engonversp
iernyataanDMLyangtertanam
t soh id lm
aronrudesorp nal iggnm
aem
paladnanm
iargorpi saki lpa
baha.s

DDLInterpreterInimenginterpretasikanpernyataanDDLdanmerekamnya
m
ajetes

QueryevaluationengineItexecuteslowerlevelinstructions
DM
ortaL
kom
lhepiolnkalishadi

KomponenManaejrPenym
i panan

id nam
pisid gnay atad aratna akm
uratna halada ut I
porgarm
dakynuaneidrsgahikem
satknie.

ManajerOtorsiasd
ianIntegrtiasItestsuntukkepuasan
nm
e kutnu anuggnep gnanw
ew
e aski rm
em
e nad nasatam
bep sat i rgetni

TransactoinManagerItensuresconcurrentransactoinexecutoins
[Link]
ManajerFelimengaturaolkasriuangddisikdandata
.m
irosafninakisatneserpm
erkeutnunaknugidgnayrutkurts
7
PengeolalbuferInb
iertanggungjawabuntukmengambd
liatadard
isik
m
[Link]
am
eliadrom
naiynpe

8
InstansiOracle

SeaitpbassidaatOraceletrkadtienganInsatnsO i [Link]
m
deabm
rtaiese,m
auiylaS
nesdbogiym
urtsG
AoSb(leG
arlAaut)
ShaerdGolbA alerdoalikaksiandansuaebtlhpiorsdem
i [Link]

KombnS
iasiGA
danporseO
sardceslibseubtagnIastniO
sarcel.

SGA
edtrbiairebearpaurstkutm
remo:ir

Pboeobrdglaiguinakaunnum tkenym
ipaS
[Link]
.atadm
aksuiradnaknugidurabgnilapgnayatadnadnataynrep
TheseSQLaestmensm
t aybesubm etdbiyauseprorcenshiot,er
m
KD
baicspm
na,[Link]
daueotrspdlahla

Cachbdeaubftrdagseiunakaunnum tkenym
ipaynanpgbialdguriunakan
[Link],cdntalir

Therdolgbuffsueisradocktchangesmadohetdabtaseby
. ratalsesorpnadrevres

9
Queryprocess

1 Parse
2 Jalankan 3
3 Ambil

Server
Proses DB
s

1
Pengguna
Proses

2
Clie
nt

Ketika pengguna terhubung ke database, ia secara otomatis membuat dua berbeda


poryseandsgebiuaP tgoraP
iseenggundaPnorP
S
[Link]
porgamrpyneakrdyabipgsS
rnetlaQPL veosres.
[Link]
rdairkidinyganantyarpenkaikueske

Agadithaapuatmdaalmpengoalhansebuahku:eir
P ngisar
Eksekusi
Amlbi

Mengasnial

Selamatahapparsing,pernyataanSQLditeruskandariprosespengguna
srapidhalet gnay isatneserper nad , revres sesorp ek
S
am
dQ
ealkiream
sbL
uerata.
Selamapenguraian,prosesservermelakukanfungsi-fungsiberikut:
MencaciropySQLyangadadialmshaerdpool
aynxS
gnudQ
aktnysnL
iagedsailav
Makelukpanekancim
arudnam uktsdem
akbnotem
ldavisal
{"deofiin"}dtnsi":ef

Eksekusi

10
JaalnkanI:denfitkasbiarsiyangdpihil
Langkahaln-gkahyanghaurdasimsm abltiengeksekpuesinryatn
Pengom pitadalalhufndgasilmOarS
celevryerangmenenutkan
enrcankgebulsnrgm
anoiptal

Amb
li

A
Km:em
klbepiskaodebnrisagD
lm
duanm
[Link],egstlabnim
20lbi
.utw
kaadapnatatac

DMLProcessingSteps

Pernyataan bahasa manipulasi data (DML) hanya memerlukan dua fase.


memporse:
Pasm
erdaengnpayesfginrangduinakaunum
kt empokresuier
Eksekusm i emerulkanpemrosesanatmbahanunutkmembuapterubahandaat

DMLExecutePhase

Porsesvrm erengcatmbseabreulmkbeolbkorlackdan
pebroaulrdkia.t
Keduaperubahanindiilakukandciachebuferbasisdata.

Saeiptbolkyangbeurbahdalmcachebuedfatrnidseabiagbaiuekfroytu:arti,
buefyrandgitaksamadenganbolkyangsesudasik.

PemorsesanpneairthDELETEatuN ISERTmenggunakanlgkahaln-gkahyangseurpa.
beom
friageofarDELETEmenganduknogalim nidam
lybasnirdhgiapus,
dagnambseaurelmnN IydairSER
noifm
T
[Link]

Karenaperubahanyangdibuaptadablokhanyadicatadtalammemori
gnayrm
oketupnalagek,ksidekgnusgnal silutidkaditnadrutkurts
S
nagG
m
.ylapnm
eihybA
diaknuepybtharentkgai

11
OracleVersions

Oracle6.0 1990
Oracle7.0 1995
Oracle7.1 1996
Oracle7.2 1997
Oracle7.3 s i s a b r e b k e j b O 8 9 9 1
Oracle8.0 S MB D R O 9 9 9 1
0 0 2 t e n r e Otraclen8i I s i s a b r e B i s a k i l p A
Oracle9i 1 0 0 i 2 s a k i l pr Ae v r e S

F
u
&
triManafat

Orakel

Scalability Satu Manajemen


Antarmuka
9i

Internet
Keandalan Keterampilan Umum
Set
Pengembang Tunggal

Model

F
utri

Oraclemenawarkaninfrastrukturkinerjatinggiyangkomprehensifuntuk
[Link]
utarm
[Link],
[Link]

Manfaat
Skaltdbsildaiirepaetrmenkuetsib-snipsieursahaan
12
Arsetikutyrangandeat,rlsedaid,anaman
Modelpengembangansatu,pilihanpengembanganmudah
KeterampilanumumtermasukSQLP ,L/SQLJ,AVAdanXML
SatuManajemenAntarmukauntuksemuaaplikasi

9P
iroduk

AddaupaorduM
[Link]
aenyedaikaniaurfstkuytraneglngkapdansedehrana
. tenretnI i saki lA
pkutnu

IAS Basis Data

9i 9i

ServerApk
ilasi

9A ipocpiantlsevrem
r enanljkansemuakdpialsin9diabtam seenym
i pansumbkearmi
da.t
Oracle9iApplicationserverberjalan
uw
stisPaleobtr
aJvaT oanrA
iascoltnicsaptil
Membkapneigretnarsigdgadunka,pintsla,

13
Oracle9i:ORDBMS

OracleadalahbasisdatapertamayangmampuobjekyangdikembangkanolehOracleCorporation.
ukudnm
ekutnu 8elcaO r atad naledm oep naum m
paek saul rem m
peut I
-kejbom
w
eabgnayurabnim
senakaidem
yneelcaOr . lanoisaler atadsisab lm edo
kdoanm
sneks,ipbliekobm
jadatekp,sliteko,bjpemiasoenm
gtriobrean
. lanoisaler ainud nagned hunepsat i l ibi tam pok

Oracle9mendukung

TipeDataDanObjekYangDidefinisikanPengguna
SepenuhnyakompbaidtelnganbadsiaertlosinM
(alendukungsemuaCODD)
)naruta
Suppotrm
fm uitledaiandLagreobejcst
snoi taci lppadesabbw
ednarevrestnei lct roppusoslat I

Oracle9idapatmenskalakanpuluhanribupenggunayangbersamaandanmendukunghingga
51p2aebtyet
a=
e1pbru0eytasdubrG
a0steyntB

Lnigkungan
OraclemenggunakanduajenislingkunganuntukmengeksekusipernyataanSQLkami.
SQL*puldsanSQL*puls.

i9 elcaO
r i rad aynah aidesret sulpQ
*L
SI

SebuahLnigkungan
ProprietariOracle
Kaatkuncdiapadtsingkat
Runsonabrowser
Dimuastecaraterpusatid,akperluditerapkandsietiapmesin

PerbedaanantaraSQL*PlusdanISQL*Plus
SQL*PulasdalhCUdIanSQL*Pulbseajrlndbiorwser
SQL*pulhsaurdsm
i udsaeitpestimkeisnled,angkan
id ul rep kadi t , tasupret araces tam
uid gnay , sulp*Q
LSi
mesin

14
Rnigkasan

[Link]/Server,Oracledijalankandiserver
ahdbalestdiarosglibueasckrStgeunm
[Link]
atad s i sab ki s i f rutkur t s i rad nednepedni
[Link]

SebuahInsatnsOraceladalhkombniasS
iGAdanprosesOracel.
ssecorpdnuorgkcabfonoi tcel locasniatnocecnat sni
[Link]
taknupkejlanr

[Link]
daortfw
esbue,m
ludsbiaurhn,ktmengem
kabinaeslgmeuntkmenyeadkiandat
.inestskoins

Lath
ian

f s d n a t s AG S ) 1
_ _ _ _ _ _ _ _ _ _ _ ) 2
ketikadatabasedibuat.
n emg e s i D ) 3
e b r e p a pA ) 4
Lo d eR s a k r eB ) 5
i s n e t s k E ) 6
e B _ _ _ _ _ _ _ _ ) 7
u t i a pA ) 8
a p a k a p A ) 9
A
10kseuavr)?piteslria

15
TipeDataOracle

SeaitpnalikioolmdankonsatnatdaalmpernyaatanSQLmemkilpitedaat,
irdadilvanyganganternda,ankldeak,ifim spenpyeimnpaorftandgeatikaret
om
[Link]
tpaknA
usnethrandaA ,m baklendaK
tm
[Link]
.kutibw areandtapeim tkeanO
yodem
licakolr.

TipeDataKarakter
CHARDatatype
TpieDaatVARCHAR2danVARCHAR
TipeDataNCHARdanNVARCHAR2

TipeDataLONG
TipeDataANGKA
TipeTanggal
LOBDyatpes
BLOBdatatype
TipedataCLOBdanNCLOB
BFILEDatatype

TpieDaatRAWdanLONGRAW

CharacterDatatypes

Tpidekatarkm
etrenym
i pankarafk(neltrumkdeir)alm
nirgst.
dengannilaibyteyangsesuaidengankarakter.

TipedataCHAR

DkatarkpetranajneagtpdenganukuarndalmbU
(yet.kuarndeafdutalh1dan
ukuran maksimum adalah 2000).
keasbhnedlaneD
iugkrbankilegortsenpganugjkuanr.

VARCHAR2(ukuran)

npkgiaS
nm
rekavjbtgiaerluekm uam
inrliam
kisum
400b0eyt
. )1 halada t luafed naruU
k(
M ukanorgsem
[Link]

NVARCHAR2(ukuran)

ndgiK
erntsgapenkranytavjbgniam
ergluekm
uam
inrliam
kisum
400b0eyt
)1 halada t luafed naruU
k(

16
ataukarakter,tergantungpadapilihansetkarakternasional.
[Link]
serukanoyrtgsanogt

NOMOR(ukurand
,)

U
koum enkdtaenygadnigod
nltnoum rkidm
[Link]
[Link]
hbeiU
olhc,ntasM
bidkaiB
tE2R
)5,(

PANJANG

Daatkaraketdrenganukuranvaraibehlnigga2GBdaalmpanajngH
. anyasautkoolmLONG
. lebat m
alad id gnaral id
Kom
l pandjaigktasbgdiunakanpadausem
btefkn,psgueirspat
.knsdeuiatalausakl

DATE

Re4aJn17tygu1diaS
g2nrvaiglM
alnhgig3D
a1esm9b9e9rM
9.
Y
)M
O
N
-D
- t luafD
elaggnaTtm
aroF(

TIMESTAMP(ketepatan)

Tanggalditambahwaktu,dimanapresisiadalahjumlahdigitdibagianpecahan
[Link])dn(atekugfdlainret

MENTAH(size)

Tanggablinermentahu,kuranbytepanjangU
. kuranmaksimumadalah2000byte.

LONGRAW

Rawbinarydatas,elainitusamadenganLONG.

Keduem
djnasitemungknikanpenym
i panangamba.r

CLOB

17
KaraketrLargeobejch,tnigga4GBdaalmpanajng.

BLOB

Objekbesarbinerh,ingga4GBdalampanjang.

BFILE
.nebm
ritsP
opiasenrbkuearnskj

18
Q
SL
ratnagnP
e

Sejarah Singkat SQL

SeajrhSQL dm
ialbduoailorutirmBIM S
dianJoC
seo,fainrli,
[Link]
BahasaQuery,danseluruhbahasanyaseringdisebutsebagai"sequel."It
awalnyadikembangkanuntukprodukDB2IBM(sebuahbasisdatarelasional
sistem manajemen, atau RDBMS, yang masih bisa dibeli hari ini untuk berbagai
[Link])btenanS ryQ
a,L
membR uatDBMSmem
nadjiunS
gknQ
i.L
nagned sar tnok , larudesorp-non asahab halada
nkapticdihalC
eO
tnB
gyiaC
O
tndarpeL
3sG
(L)isarnegashab
sampasiuta.t

l a r u d e s o r p n oN : NATATAC
menggambakradnpaytanagkadnm
dihiadm
upt,iubls,iasukkdpainrdb,agm
aiancm
araeklukannya
. tubesret isarepo

KakyrisetairngmembedakanDBMSdR
airDBMSadalhbahwa
[Link],
SQ
hw
baL
aitrarbetes isanteiorB
S
rQ
ehL
[Link] isanteiorrbengyaatdasisbaashab
dpaom
rsetlskoelmpok.

Akm
aoiN
nlareisandraStuttitnsIgnad,nadrtsisaO gnair
lanoi sanretnI radnatS i sas inagO r nad ) IA N
S(
pormoeS tQLanstdadonrstidT yur.shteANS9-I2anstdhadsternidadr
adnat snupiksM e. iniukubgnajnapesnakanugidgnayQ LSkutnu
badm anenayepsm aiknutsadnpak,ternum
idtcnsaktisbgais
aA
npobtsdreaD
rudN
tbsikeaunrsm
.taelrnS
tgiIktapai
laggnut anuggnep sinsib isaki lpa isisopm alad igolonket
.naped asm a nahum but rep

GambaranUmumSQL

SQLadalhbahasatndayrangdgiunakanunutkmemanpiuadlsianmengamdblaidtair
sabuatam
am
rergorpgnaroes naknikgm
neuQ
SL. ini lanoisaler atad sisab
adm
ouartnktsimakelukankb:uiert

Modifikasi struktur basis data


Mengubahpengaturankeamanansistem
Tambahkanzinpenggunapadadatbaseyangdapdautiruktan
Kueridatabaseuntukinformasi

19
Perbaruikontenbasisdata

20
I RAD NAD HI L I P

m
alad atad nal im
bagnep kutnu nanugnab kolb halada ut I

SniatkP
s:ILIH<KOLOM>DAR<
ITABEL>;

KueP
rieratmaAnda

INPUT:
SQL>pilih * dari EMP;
OUTPUT:
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
------ ---------- --------- ---------- --------- ---------- ---------- ----------
7369 SMITH KLERK 7902 17-DEC-80 800 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN PELANGGAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7788 SCOTT ANALIS 7566 09-DEC-82 3000 20
7839 RULER PRESIDEN 17-NOV-81 5000 10
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7876 ADAMS PETUGAS 7788 12-JAN-83 1100 20
7900 JAMES CLERK 7698 03-DEC-81 950 30
7902 FORD ANALIS 7566 03-DEC-81 3000 20
7934 MILLER PETUGAS 7782 23-JAN-82 1300 10

ANALISIS:
Perhatikan bahwa kolom 6 dan 8 dalam pernyataan output disusun kanan dan bahwa kolom 2 dan 3 disusun kiri.
diperjustifikasi. Format ini mengikuti konvensi penjajaran di mana tipe data numerik dirasa sejajar ke kanan
dan tipe data karakter diratakan ke kiri.

Asterisk (*) dipilih *memberitahu basis data untuk mengembalikan semua kolom yang terkait dengan tabel yang diberikan
dijelaskan dalamDARIklausa. Basis data menentukan urutan pengembalian kolom.

Pemindaian tabel penuh digunakan setiap kali ada klausa nowhere pada sebuah kueri.

21
MengubahUrutanKoolm

Kitabisamengubahurutanpemilihankolom

INPUT:
SQL>SELECT empno, ename, sal, job, comm from EMP;

KELUARAN
EMPNO ENAME SAL JOB COMM
---------- ---------- ---------- --------- ----------
7369 SMITH 800 KLERK
7499 ALLEN 1600 SALESMAN 300
7521 WARD 1250 PENJUAL 500
7566 JONES 2975 MANAJER
7654 MARTIN 1250 SALESMAN 1400
7698 BLAKE 2850 MANAGER
7782 CLARK 2450 MANAGER
7788 SCOTT 3000 ANALIS
7839 KING 5000 PRESIDENT
7844 TURNER 1500 SALES MAN 0
7876 ADAMS 1100 KLERK
7900 JAMES 950 PEGAWAI
7902 FORD 3000 ANALYST
7934 MILLER 1300 PETUGAS

14 baris dipilih.

EkspresK
,i ondsid,ianOperator

Ekspresi

DdsenbasifruahekusetpdiershiranSa:ebuahekspm
[Link]
Tpieekspresiangaultasm , encakupberbagaejinsidaatseperit
SniN rgt,umdkeiar,[Link],msepm ri uyaangmengkiuit
nii kutim
aD
[Link] FER (L )nuyaO
EalC
m
tusaM
T
kli,
hentdeiauocehnvtlansurterxem ahtontm
aeisnpexlriount
kolomjumlah.
PILIHgD aijARK I ARYAWAN;

iserpske halada i jG
aAN
,A
T
BJ N
A
M
A, tuki reb naataynrepm
alD
a

SELECTENAMED
, ESIGNATIONS,ALFROMEMP;

22
Sekarangp,erkisaekspresbierkiu:t

DIMANANAMA='RAJA'

hotnoc nakapurm
egnay , N
G
'K
I ' =N
E
A
M
E, isidnok gnudnagnmeut I
[Link] = 'KING' akan menjadi TRUE atau FALSE, tergantung pada
.=noi t idnoceht

Conditons

uata utnet retm


et i nakm
uenm
enigni hanrep adA n akiJ
m
aW
dlaH
dptareER tEK [Link] asnaduknm aelre
EN haAldaM nyaK
iE
N
s= Ikon'diG
um
'lbe,nyasohm oaD
[Link]
rkhairem
atj10irdahbielajrkbeA nygandaisasngiaordingaorpaitesC ira
month,yourconditionwouldbeSAL>2000
Kondism i emungkinkanAndauntukmembuaktuersielektifD
. alamyangpalingumum
k , lebai rav i rad i r idret i s idnok,kutneb
EahN
dnalym
beltiApvocearD
hnatM
.oiroahtkpndoeralnytE
s,
'RAJA', dan operator perbandingannya adalah =.

aynnatsnok A
,L
Shalada aynlebai rav ,audek hotnocm alD a
um
belsgaim
eleneduam uhaineA
gltprenda>.hadalngbandpireortaopre
W aus.H
kolrtaE
oprR
e:dnaE tyrasbreikuresm ineuA
ldptanda

KalusuW
l HERE

SnaitkasluiW
sa HEREadalh

SINTAKSIS:
PILIH <KOLOM> DARI <TABEL> DI MANA <PENCARIAN>
CONDITION>;

SELECT, FROM, dan WHERE adalah tiga klausul yang paling sering digunakan dalam
[Link] hanya membuat kueri Anda lebih selektif. Tanpa
Dalam klausa WHERE, hal paling berguna yang bisa Anda lakukan dengan kueri adalah menampilkan

em
[Link]
ualypadnim
gbanlet

23
ki tegnm
e asib adA
n ,utnet retW
K
A
Y
R
A
Nnaknignignm
e adA
n akiJ

INPUT/OUTPUT:
SQL>SELECT * FROM EMP WHERE ENAME = 'RAJA';

Yang akan menghasilkan hanya satu catatan:

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


------ ---------- --------- ---------- --------- ---------- ---------- ----------
7839 RAJA PRESIDEN 17-NOV-81 5000 10

ANALISIS:
Conothsedehram
niaenunujkkanbagam
i anA
anddaapm
atembsypeairtddayatanA
gnda
inginmengambilkembali.

ki tegnm
e asib adA
n ,utnet retW
K
A
Y
R
A
Nnigni adA
n akiJ

INPUT

SQL>SELECT * FROM BIKES WHERE ENAME != 'KING';


ATAU
SQL>SELECT * FROM BIKES WHERE ENAME <> 'KING';

KELUARAN
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
------- ---------- --------- ---------- --------- ---------- ---------- ----------
7369 SMITH KLERK 7902 17-DEC-80 800 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7566 JONES MANAJER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MEI-81 2850 30
7782 CLARK MANAJER 7839 09-JUN-81 2450 10
7788 SCOTT ANALIS 7566 09-DEC-82 3000 20
7844 TURNER PENJUAL 7698 08-SEP-81 1500 0 30
7876 ADAMS KLERK 7788 12-JAN-83 1100 20
7900 JAMES PETUGAS 7698 03-DEC-81 950 30
7902 FORD ANALIS 7566 03-DEC-81 3000 20
7934 MILLER PETUGAS 7782 23-JAN-82 1300 10

ANALISIS:

MenampilkansemuakaryawanselainKING.

24
Operator
OperatoradalahelemenyangAndagunakandidalamekspresiuntukmenyatakanbagaimana
om
neaklepom
k:dainejbgairet orO
[Link]
dtaukunegm
tauknlanetbitdiynagiskondinngiA inda
mhiokmgpdab,liuenargainc,am
pbekranm
tdgkia.n,iaert

OperatorArtimatk
ia

Opm etaoritrkeiatdalhtmba*(kh+ .)uaib,)lrna/(,g)-(i


Empyatngpaetm rM
[Link] l engembkailasbnliganbdualtir
.dvsi

ComparisonOperators

bpnm
aedrganigm
oS anruoem
atspideraneka,brnigeskdpm
irankibal
Tu:R esvhalronU teofF EA ,LSU oEr,nknown.

PILIH * DARI EMP DI MANA SAL >= 2000;

SELECT * FROM EMP WHERE SAL >= 3000 AND SAL <= 4000;

PILIH * DARI EMP DIMANA SAL ANTARA 3000 DAN 4000;

PILIH * DARI KARYAWAN DI MANA GAJI TIDAK ANTARA 3000 DAN 4000;

.tkidiesm huaintgelA rpenda,D lnkaekdaiT inygamnkam antpdeUsukAmbeintigbandm


hai
aenkgotnN espaU d,atsbahL
idsD
lakiL
adhetam
[Link]
inafi[Link] berarti kolom memiliki nol atau kosong di dalamnya. Sebuah nol atau a
banlvksuaN [Link] diaL
ktdabpieatrpudnam
lbdkA
[Link]
aembseubautah
N
haU
dalL
dL
leF
,iukuntialniunyatsu-tasdna9=dleFiitpersngbandpire
hadalD kneldaTiK neara.D kneldaT
ikmekanignbaldpire
uncomfoartbelcondoitinm , osfl tavorsofSQLchangeUnknownotFALSE
dam nenyedakiaonpkoeahrtA usus,DALAH NULuL nut,m
kenkgoN
uinjdsiULL.

BerikutadalahcontohNULL:MisalkansebuahentridalamtabelHARGAtidak
itpershutakm
G
unityim
aqR
unlergadlrieunO
gdukranitgkilH
R
[Link]
: ini

25
PILIH * DARI EMP DIMANA COMM ADALAH NULL;

PILIH * DARI KARYAWAN DIMANA KOMISI TIDAK NULL;

OperatorKarakter

rekatrangirtsam racukntm eiresapm


kutAlnaridpanoetgrdautonpkaren
nam
teanpepsesorpm
aladnum
puaatadnaraulekm
aladkiab , iliw kaid
pyadnm ysaBkgtdrm
[Link]
ym
ang,enyam
|ko|L
anpeK
isIorodaE
tpner:oroatper
[Link]

operaotL
rIKE
Apa jadinya jika Anda ingin memilih bagian dari basis data yang sesuai dengan pola tetapi
tidakcocoksecarapersis?Andabisamenggunakantandasamadengandanmenjalankannyamelalui
akm euasntiekm uopeasrapnikew
S
tuyagnite,[Link],
m
L
aK
negsuIAnkabE
[Link]

Pertimbangkanhablerikut:

INPUT:
PILIH * DARI EMP DIMANA ENAME SEPERTI 'A%';

ANALISIS

Menampilkan semua karyawan yang namanya dimulai dengan huruf A

INPUT:
PILIH * DARI EMP DI MANA ENAME TIDAK MIRIP 'A%';

ANALISIS

Menampilkan semua karyawan yang namanya tidak diawali dengan huruf A

26
INPUT:
PILIH * DARI EMP DI MANA ENAME SEPERTI '%A%';

ANALISIS

Menampilkan semua karyawan yang namanya mengandung huruf A


jumlah A

INPUT:
PILIH * DARI EMP DIMANA ENAME SEPERTI '%A%A%';

ANALISIS
Displays all the names whose name contains letter A more than one
time

INPUT:
PILIH * DARI EMP DI MANA TANGGAL_DIHIRE LIKE '%DES%';

ANALISIS

Menampilkan semua karyawan yang bergabung pada bulan Desember.

INPUT:
PILIH * DARI EMP DIMANA TANGGAL_DIPEKERJAKAN SEPERTI '%81';

ANALISIS

Menampilkan semua karyawan yang bergabung pada tahun 81.

INPUT:
PILIH * DARI EMP DI MANA SAL LIKE '4%';

ANALISIS

Menampilkan semua karyawan yang gajinya dimulai dengan angka 4.


(Konversi data implisit terjadi).

27
Garb
siawah(_)

Gbsairwahadalhw
dlciadrkaurktentrgga.l

INPUT:
SQL>SELECT EMPNO,ENAME DARI EMP DIMANA ENAME SEPERTI
'_A%'
OUTPUT:
EMPNO ENAME
---------- ----------
7521 WARD
7654 MARTIN
7900 JAMES

ANALISIS
Displays all the employees whose second letter is A

INPUT:
SQL>SELECT * FROM EMP WHERE ENAME LIKE '__A%';
OUTPUT:
ENAME
----------
BLAKE
CLARK
ADAMS

ANALISIS
Menampilkan semua karyawan yang huruf ketiganya adalah A
__A

INPUT:
SQL>SELECT * FROM EMP WHERE ENAME LIKE‘A%\_%’
ESCAPE '\';
KELUAR:
ENAME
----------
AVINASH_K
ANAND_VARDAN
ADAMS_P

ANALISIS
Menampilkan semua karyawan dengan garis bawah (_). '\' Karakter escape
Garis bawah digunakan untuk mengidentifikasi posisi dalam string. Untuk memperlakukan _ sebagai
karakter yang harus kita gunakan adalah karakter Escape (\)
28
operatorkonkatenasi)(|

Digunakanuntukmenggabungkanduastringyangdiberikan

INPUT
PILIH ENAME || JOB DARI EMP;

KELUAR
ENAME||JOB
-------------------
SMITHCLERK
PEGAWAI PENJUALAN
WARDSALESMAN
JONESMANAGER
MARTINSALESMAN
BLAKEMANAGER
CLARKMANAGER
SCOTTANALYST
RAJA PRESIDEN
JUALAN TURNER
ADAMSCLERK
JAMESCLERK
FORDANALYST
MILLERCLERK

ANALISIS
Menggabungkan nama dan jabatan sebagai satu string.

MASUK
SQL>SELECT ENAME || ', ' || JOB DARI EMP;

KELUAR
ENAME||','||Pekerjaan
----------------------
SMITH, PETUGAS
ALLEN , PEGAWAI PENJUALAN
WARD , PENJUAL
JONES, MANAJER
MARTIN, TENDA PENJUALAN
BLAKE, MANAJER
CLARK , MANAGER
SCOTT, ANALIS
RAJA, PRESIDEN
TURNER , SALES REPRESENTATIF
ADAMS, PETUGAS
JAMES , PETUGAS
FORD, ANALIS
MILLER, PENGURUS

ANALISIS
Menggabungkan nama dan jabatan sebagai satu string yang dipisahkan oleh,
29
LogcaO
ilperaotrs

INPUT:
PILIH ENAME DARI EMP DIMANA ENAME SEPERTI '%A%' dan
ENAME TIDAK SAMA DENGAN ‘%A%A%’
OUTPUT
NAMA
----------
ALLEN
KELURAHAN
MARTIN
BLAKE
CLARK
JAMES

ANALISIS
Menampilkan semua karyawan yang namanya mengandung huruf A tepat satu kali
waktu.

SELECT * FROM EMP WHERE SAL >= 3000 AND SAL <= 4000;

PILIH * DARI EMP DI MANA SAL ANTARA 3000 DAN 4000;

PILIH * DARI KARYAWAN DIMANA GAJI TIDAK ANTARA 3000 DAN


4000

30
OperatorMiscellaneous:DI,ANTARA dan DISTINCT

DuoapeN aoIrtrdanBETWEENmembkeiransigkatnunutkufnygasinA
gnda
ahunsdtgahunaw
gjSabeA
[Link] rgask:ynbuakditengriet

INPUT:
SQL>SELECT ENAME, JOB FROM EMP WHERE JOB= 'CLERK'
ORJOB=‘MANAGER’ ORJOB= 'SALESMAN';
OUTPUT:
ENAME JOB
---------- ---------
SMITH JURUPACAR
ALLEN PENJUAL
WARD SALESMAN
JONES MANAJER
MARTIN PENJUAL
BLAKE MANAJER
CLARK MANAGER
TURNER PENJUAL
ADAMS JURU KENCANA
JAMES PETUGAS
MILLER JURU TULIS
ANALISIS
Tampilkan karyawan dengan jabatan manajer, petugas, dan salesman.

Penryatam
INPUT: ndtsiembuthkaenlbhianyakwakutnutkdpiaham
ya,nigmenguarngi
SQL>SELECT
.inseisife * FROM EMP WHERE PEKERJAAN
IN('PETUGAS','PENJUAL','MANAJER');
OUTPUT:
ENAME JOB
---------- ---------
SMITH PETUGAS
ALLEN PEMASAR
WARD SALESMAN
JONES MANAJER
MARTIN PENJUAL
BLAKE MANAGER
CLARK MANAGER
TURNER KARYAWAN PENJUALAN
ADAMS PETUGAS
JAMES PETUGAS
MILLER PETUGAS 31
ANALISIS
Tampilkan karyawan dengan jabatan manajer, clerk, dan salesman.
INPUT:
SQL>SELECT ENAME, JOB DARI EMP
DIMANA PEKERJAAN TIDAK DI ('PEGAWAI','TENAGA PENJUAL','MANAGER');
OUTPUT:
ENAME JOB
---------- ---------
SCOTT ANALYST
KING PRESIDENT
ANALIS FORD

ANALISIS
Tampilkan penunjukan selain manajer, pegawai, dan salesman

INPUT:
SQL>SELECT ENAME,TANGGAL_DITERIMA
DARI EMP
DI MANA TANGGAL_DIPERKERJAKAN DALAM (’01-MEI-1981’,’09-DESEMBER-1982’);

KELUAR
ENAME HIREDATE
---------- ---------
BLAKE 01-MAY-81
SCOTT 09-DEC-82

ANALISIS
Display employees who joined on two different dates.
INPUT:
OPERATORUNIK
SQL>SELECT DISTINCT PEKERJAAN DARI KARYAWAN;

KELUAR:
JOB
---------
ANALIS
PEGAWAI
MANAJER
PRESIDEN
PENJUAL
32
ANALISIS
Operator distinct menampilkan penunjukan unik.
Operator distinct secara default menampilkan informasi dalam urutan menaik.
33
ORDERBYCLAUSE

Tampilkaninformasidalamurutantertentu(MenaikatauMenurun)
panes

Sintaksis

PILIH <KOLOM> DARI <TABEL> DI MANA <KONDISI>


URUTKAN PER BASIS <KOLOM(KOLOM)>;

MASUK
SQL>SELECT ENAME DARI EMP URUTKAN MENURUT ENAME;
KELUAR
ENAME
----------
ADAMS
ALLEN
BLAKE
CLARK
FORD
JAMES
JONES
RAJA
MARTIN
MILLER
SCOTT
SMITH
TURNER
WARD

ANALISIS
Tampilkan karyawan dalam urutan menaik berdasarkan nama.

34
MASUK
SQL>SELECT JABATAN,NAMA,SALARY DARI KARYAWAN URUTKAN MENURUT

PEKERJAAN, NAMA
KELUAR
JOB ENAME SAL
--------- ---------- ----------
ANALIS FORD 3000
ANALYST SCOTT 3000
PEGAWAI ADAMS 1100
CLERK JAMES 950
PEGAWAI MILLER 1300
CLERK SMITH 800
MANAGER BLAKE 2850
MANAGER CLARK 2450
MANAGER JONES 2975
PRESIDENT KING 5000
SALESMAN ALLEN 1600
SALESMAN MARTIN 1250
PEMASAR TURNER 1500
TENAGA PENJUAL WARD 1250

ANALISIS
Tampilkan karyawan dalam urutan menaik berdasarkan pekerjaan. Dengan setiap pekerjaan, ditempatkan

INPUT
SQL>SELECT * DARI EMP URUTKAN MENURUT pekerjaan, nama DESC;

KELUARAN:
Tampilkan karyawan dalam urutan menaik berdasarkan pekerjaan. Dengan setiap pekerjaan, ditempatkan
informasi dalam urutan menurun dari nama.

MASUK
SQL>SELECT * FROM KARYAWAN ORDER BY pekerjaan DESC, nama_karyawan DESC;

OUTPUT:
Tampilkan karyawan dalam urutan menurun berdasarkan pekerjaan. Dengan setiap pekerjaan yang ditempatkan.

informasi dalam urutan menurun nama.

35
ORDERBYCLAUSE

Tampilkaninformasidalamurutantertentu(MenaikatauMenurun)
panes

Sintaksis

PILIH <KOLOM> DARI <TABEL> DI MANA <KONDISI>


URUTKAN PER BASIS <KOLOM(KOLOM)>;

MASUK
SQL>SELECT ENAME DARI EMP URUTKAN MENURUT ENAME;
KELUAR
ENAME
----------
ADAMS
ALLEN
BLAKE
CLARK
FORD
JAMES
JONES
RAJA
MARTIN
MILLER
SCOTT
SMITH
TURNER
WARD

ANALISIS
Tampilkan karyawan dalam urutan menaik berdasarkan nama.

34
Latihan
_ _ _ _ _ _ _ _ . 1
_ _ _ _ _ _ _ . 2

m h a l mu J . 3
n a k l a s iM . 4
AsumskianbahwaneatlimpadktieduakoolmadalhRAVI.
Berapa ukuran sname dan sname1
b a p a r e B . 5

h a t n i r e P . 6
n a k l i p m a T . 7
8.Tampilkankaryawandalamurutanmenaikberdasarkan5kolomditabel ht

37
FUNGSI

Sebuah fungsi adalah subprogram, yang dieksekusi setiap kali kita memanggilnya dan mengembalikan
nilaiuntuktempatpanggilan.

Funguf-sdinkaifglskianmenadjueijnasi

Funyaegptndhskiltgan
Fungsiyangditentukanpengguna

Predefinedu
fncoitns

Funguf-sdinbiagm
lgsiienadjpuieta

FungsiKelompokatauAgregat
FungB
siasT
irunggal

FungsiAgregat

Funguf-sjingidaseibseubtagufanigursM
[Link]
[Link]
am
[Link]-ailnikandrbse

JUMLAH

FunC
gsiOUNTmengembkailunjmalhbysairngmemenukhoindsi
W
.E
R
H
Easualkm
alad

KatkanalhAndnaignaithubearpabanyakayrawandsaina.

INPUT:
SQL>SELECT COUNT(*) DARI EMP;

OUTPUT:

HITUNG(*)
--------
14

ANALISIS
Ini dihitung jika baris ada di tabel

38
:sailagunkaocbam
,abchdiubediham
U
luknm
oetdbuta

INPUT/OUTPUT:
SQL>SELECT COUNT(*) JUMLAH_KARYAWAN DARI KARYAWAN;

NUM_OF_EMP
-------------------
14

INPUT/OUTPUT:
SQL>SELEKSI HITUNG(COMM)
DARI EMP;

HITUNG(*)
--------
4

ANALISIS

Ini hanya menghitung ketika ada nilai di kolom kom.


Catatan: Count (*) lebih cepat daripada count(comm)
Hitung(*) menghitung jumlah baris ketika ada baris yang ada di tabel sedangkan
Count(comm) menghitung baris hanya ketika ada nilai di kolom.

INPUT/OUTPUT:
SQL>SELECT COUNT(*) DARI EMP DIMANA PEKERJAAN =
MANAGER

HITUNG(*)
-------
4

ANALISIS
It counts only managers

39
INPUT/OUTPUT:
SQL>SELECT count (distinct job) FROM EMP;
HITUNG (*)
-------
4

ANALISIS
Ini hanya menghitung pekerjaan yang berbeda

JUMLAH
[Link] nilai dalam a
om
kol.

INPUT:
SQL>SELECT SUM(SAL) TOTAL_SALARY DARI EMP;
KELUAR:
TOTAL_SALARY
-------------
29025
ANALISIS
Temukan total gaji yang diterima oleh semua karyawan

INPUT/OUTPUT:
SQL>SELECT SUM(SAL) TOTAL_SALARY,SUM(COMM)
TOTAL_COMM,
DARI EMP;
TOTAL_SALARY TOTAL_COMM
------------- ----------
29025 2200

INPUT/OUTPUT:
SQL> SQL>SELECT SUM(SAL) TOTAL_SALARY,
SUM(COMM) TOTAL_COMM,
DARI EMP DI MANA PEKERJAAN = 'SALESMAN';
TOTAL_SALARY TOTAL_COMM
------------- ----------
5600 2200

40
Rata-rata

Fungsi AVG menghitung rata-rata dari sebuah kolom.


INPUT:
SQL>SELECT AVG(sal) rata_rata_gaji
2DARI KARYAWAN;
OUTPUT:
AVERAGE_SALARY
---------------
2073.21429

ANALISIS
Temukan rata-rata gaji semua karyawan

INPUT:
SQL>SELECT AVG(COMM) rata_rata_comm DARI EMP;
OUTPUT:

AVERAGE_COMM
------------
550

ANALYSIS
Fungsi mengabaikan baris null

41
MAKS

INPUT:
SQL>SELECT MAX(SAL) DARI EMP;
OUTPUT:

MAKS(SAL)
--------
5000
ANALYSIS
Mengambil nilai dari satu baris berbeda dari satu kolom tertentu

INPUT:
SQL>SELECT MAX(ENAME) DARI EMP;
OUTPUT:

MAKS(ENAME)
--------
RUANG

ANALISIS
Maksimum dari nama diidentifikasi berdasarkan nilai ASCII

INPUT:
SQL>SELECT MAX (hiredate) DARI EMP;
OUTPUT:

MAKS(TANGGAL_DITERIMA)
-------------
12-JAN-83

42
MIN

INPUT:
SQL>SELECT MIN(GAJI) DARI KARYAWAN;
OUTPUT:

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

INPUT:
SQL>SELECT MIN(ENAME) DARI EMP;
OUTPUT:

MIN (NAMA)
--------
ADAMS

MASUK

PILIH JUMLAH(SAL), RATA-RATA(SAL), MIN(SAL), MAKS(SAL), HITUNG(*) DARI


EMP;

KELUARAN
SUM(SAL)AVG(SAL) MIN(SAL) MAX(SAL) COUNT(*)
-------------- --------------- -------------- -------------- -------------
29025 2073.21429 800 5000 14

ANALISIS
Semua fungsi agregat dapat digunakan bersama dalam sebuah pernyataan SQL tunggal

43
FUNGSB
IARISTunggal

Fubniegkspiaejradaseipbdtsairnmengembkaiklnaeli
m
et.m
eptalnagi

Funguf-sdinkaifglskiankdealmbebraegjnsai

FungA
sim
tri akita
FungsiKarakter
FungsiTanggal
FungsiBeragam

FungsA
i rtimatk
ia

Banyak dari penggunaan yang Anda miliki untuk data yang Anda ambil melibatkan matematika.
Sebagian besar implementasi SQL menyediakan fungsi aritmetika yang mirip dengan itu dari
.niyosanrcokgatpudeirdi

ABS

FunA gsiBSmengembkailbnalisodaunlatirgkyaanA
gndutanujk.
Mnyals:i

INPUT:
SQL>SELECT ABS(-10) NILAI_ABSOLUT DARI dual;

KELUAR
ABSOLUTE_VALUE
----------------------------
10
ANALYSIS

ABSmengubah semua angka negatif menjadi positif dan membiarkan angka positif
sendirian.

Dual adalah tabel sistem atau tabel dummy dari mana kita dapat menampilkan sistem
informasi (misalnya tanggal sistem dan nama pengguna dll) atau kita bisa membuat yang kita sendiri
perhitungan.

44
CEILandFLOOR

CEIL mengembalikan bilangan bulat terkecil yang lebih besar dari atau sama dengan argumennya.
LANTAI melakukan sebaliknya, mengembalikan bilangan bulat terbesar yang sama dengan atau lebih kecil

.aynm
nuegra

INPUT:
SQL>SELEKSI CEIL(12.145) DARI DUAL;
OUTPUT:
CEIL(12.145)
-----------------
13

INPUT:
SQL>SELECT CEIL(12.000) DARI DUAL;
OUTPUT:
CEIL(12.000)
-----------------
12
ANALYSIS
Minimum kami memerlukan satu tempat desimal, untuk mendapatkan angka bulat berikutnya yang lebih tinggi

INPUT/OUTPUT:
SQL>SELECT FLOOR(12.678) LANTAI DUAL;

OUTPUT:

LANTAI(12.678)
-----------------
12

INPUT:
SQL>SELECT FLOOR(12.000) DARI DUAL;
KELUARAN:
LANTAI(12.000)
-----------------
12

45
MOD
al in utas igam
m
be at ik taas asis naki lam
begnm
eut I

MASUK

SQL>SELECT MOD(5,2) DARI DUAL;


OUTPUT:
MOD(5,2)
---------------
1

MASUKKAN

SQL>SELECT MOD(2,5) DARI DUAL;


KELUAR:
MOD(2,5)
---------------
2
ANALISIS
Ketika nilai pembilang kurang dari penyebut, itu mengembalikan
nilai pembilang sebagai sisa.

DAYA
P
niO
gunkiaW
n,iugm
D
saifE
[Link]
U
ukngeatk
:audekm
nuegranagnednaktakgnapidm atrepm nuegra

INPUT:
SQL>SELECT POWER(5,3) DARI DUAL;

OUTPUT:
125

46
FungsK
i arakter

Banyak implementasi SQL menyediakan fungsi untuk memanipulasi karakter


[Link]

CHR

CHR mengembalikan karakter yang setara dengan angka yang digunakannya sebagai

gaurm
diayrK
kdnem [Link]
dabtaA
[Link] lce,sokdytCniaht.I

INPUT:
SQL>SELECT CHR(65) DARI DUAL;

OUTPUT:
A

LOWERdanUPPER

SepyeirtangmungkniAndaharapkanL,OWERmengubahsemuakaraketm
r enajdhiurukfec;li
UPPERmengubahsemuakaraktermenjadihurufbesartersebut.
SQL>SELECT ENAME,UPPER(ENAME) UPPER_CASE,LOWER(ENAME)
lower_case dari emp;
ENAME UPPER_CASE LOWER_CASE
---------- ---------- ----------
SMITH SMITH smith
ALLEN ALLEN allen
BLOK BLOK blok
JONES JONES jones
MARTIN MARTIN martin
BLAKE BLAKE blake
CLARK CLARK clark
SCOTT SCOTT scott
RAJA RAJA raja
TURNER TURNER turner
ADAMS ADAMS adams
JAMES JAMES james
FORD FORD ford
MILLER MILLER miller

47
LPADdanRPAD

LPAD dan RPAD membutuhkan minimal dua dan maksimal tiga


gaurm
A
[Link]
[Link] ptsenrahdal
onlaiopsgaikteynagdnam
tbhakn,diushraynagrekatkraum
hajlhadlakdeua
gaurmD [Link]
kientkepadansbat
kosobasunteirgkpuas,[Link]

Penryatnbkeim
rutenambahkm
ainlkaadsrinke,ntrganasum
basihwbadiang
LASTNAMEdidefinisikansebagai bidang15-karakter:

INPUT:
SQL>SELECT LPAD(ENAME,15,'*') DARI EMP;
OUTPUT:
LPAD(ENAME,15,'
---------------
**********SMITH
**********ALLEN
***********BANGSAL
**********JONES
*********MARTIN
**********BLAKE
**********CLARK
**********SCOTT
RAJA
*********TURNER
**********ADAMS
**********JAMES
***********FORD
*********MILLER
ANALISIS:
15 lokasi dialokasikan untuk menampilkan ename, dari situ, nama sedang menempati beberapa
ruang dan di ruang yang tersisa di sisi kiri nama diisi dengan *.

INPUT

SQL>SELECT RPAD(5000,10,'*') DARI DUAL;

OUTPUT:

5000******

48
GANTI

[Link] dengan tiga argumen, yang pertama adalah string yang akan

onlaoipsipnegathdal rkahireY
[Link]
[Link]
iradnam
eklucnpaiteN
sU
uaL Lta,nakiabidagitekm [Link]
dnegaignatdidkaitdnahpausdiiracdiynagngirtspdakunicakta
[Link]

SINTAKSIS :

GANTI(STRING,STRING_CARI,GANTI_STRING)

INPUT:

SQL> PILIH GANTI (‘RAMANA’,’MA’, ’VI’) DARI DUAL;

Keluaran

RAVINA

MASUK
SQL> SELECT REPLACE('RAMANA','MA') FROM DUAL;

KELUARAN

RANA
ANALISIS
Ketika string pengganti hilang, string pencarian dihapus dari yang diberikan
string

INPUT
SQL> PILIH GANTI ('RAMANA','MA', NULL) DARI DUAL;

KELUAR

RANA

49
TERJEMAHKAN

FunT
gsiRANSLATEmengam
giagtrublm
iniaregstne,:t
DARIstring,[Link]-elemenstring targetyangterjadi di
O
Tehtni tm
nelegnidnopserrocehtotdetalsnarteragnirR F
O
Methst
.gnirts

INPUT:
SQL>SELECT TRANSLATE('RAMANA','MA','CD') FROM DUAL;
OUTPUT:
RDCDND

ANALISIS

Perhatikan bahwa fungsi ini sensitif terhadap huruf besar dan kecil.
Ketika string pencarian cocok, itu menggantikan dengan string pengganti yang sesuai dan jika ada
satu karakter cocok dalam string pencarian, itu diganti dengan pengganti yang sesuai
character.

SUBSTR
Fugniagtrusimm
eniemungknikaA
nnduanutkmengamsepbloitnagdtreatir
haladaudekA
m
[Link]
ladatA m [Link]
A ahgduaklrm
[Link]
numberofcharacetrsotshow.

SINTAKSIS

SUBSTR(STRING,POSISI_MULAI[,JUMLAH_KARAKTER])

INPUT:
SQL>SELECT SUBSTR('RAMANA',1,3) DARI DUAL;

KELUAR:
RAM

ANALISIS
Itu mengambil 3 karakter pertama dari karakter pertama

50
INPUT:
SQL>SELECT SUBSTR('RAMANA',3,3) DARI DUAL;
KELUAR:
PRIA

ANALISIS
Diperlukan 3 karakter dari posisi ketiga

INPUT:
SQL>SELEKSI SUBSTR('RAMANA',-2,2) DARI DUAL;
OUTPUT:
NA

ANALISIS
Anda menggunakan angka negatif sebagai argumen kedua, titik awalnya adalah
ditentukan dengan menghitung mundur dari akhir.

INPUT:
SQL>SELECT SUBSTR(‘RAMANA’,1,2) || SUBSTR(‘RAMANA’,-
2,2) DARI DUAL;
OUTPUT:
RANA

ANALISIS
Dua karakter pertama dan dua karakter terakhir digabungkan menjadi
string tunggal

INPUT:
SQL>SELECT SUBSTR(‘RAMANA’,3) DARI DUAL;
OUTPUT:
MANA

ANALISIS
Ketika argumen ketiga hilang, itu mengambil semua karakter dari awal
posisi

51
INPUT:
SQL>SELECT * FROM EMP WHERE SUBSTR(HIREDATE,4,3) =
SUBSTR(SYSDATE,4,3);

OUTPUT:
RANA

ANALISIS
Menampilkan semua karyawan yang bergabung di bulan ini
SYSDATE adalah fungsi baris tunggal, yang memberikan tanggal saat ini.

INPUT:
SQL>SELECT SUBSTR(‘RAMANA’,1,2) || SUBSTR(‘RAMANA’,-
2,2) DARI DUAL;
OUTPUT:
RANA

ANALISIS
Dua karakter pertama dan dua karakter terakhir digabungkan menjadi sebuah
string tunggal

INSTR

m
aN
tIaP
S
rgeuT
nkaR.,diajretuntetretapolngirtm
asm
ldanadim hU
uaikntge
Aguram .gnaertcogudictknopreadohnkutlsan.
Angkkageidatankempm atew
etm
aiklipuantukmm
ualiendcairn
pertandinganmanayangakandilaporkan.

Conom
tnhiengembkailnangkyaangmewkaeikm
liuncualnpaetm
rO
a
audekgnaynagedim
alu

MASUK

SQL> PILIH INSTR(‘RAMANA’,’A’) DARI DUAL;

KELUAR
2
ANALISIS

Temukan posisi kemunculan pertama huruf A

52
MASUK

SQL> PILIH INSTR(‘RAMANA’,’A’,1,2) DARI DUAL;

KELUARAN
4
ANALISIS

Temukan posisi kemunculan kedua huruf A dari awal


dari string.
Argumen ketiga mewakili posisi dari mana, Argumen keempat mewakili,
kejadian mana.

SQL> PILIH INSTR ('RAMANA','a') DARI DUAL;

KELUARAN
0
ANALISIS

Fungsi ini peka terhadap huruf besar dan kecil; ia mengembalikan 0 (nol) ketika karakter yang diberikan adalah
tidak ditemukan.

MASUK

SQL> PILIH INSTR(‘RAMANA’,’A’,3,2) DARI DUAL;

KELUARAN
6
ANALISIS

Temukan posisi kemunculan kedua huruf A dari 3rd


posisi dari string

53
FungsiKonversi

Funguf-sm inigsienyedaikancayrangpuarskniutkmengonvesaudjnetskarite
nM
aiylaum
.ertekrbagerunum
aktenguobam
nfdrhtgangalkta
tm
arof

KE_CHAR

PenggunanuatmT
aO_CHARadalhunutkmengubahangkm
[Link]
Implementasiyangberbedajugadapatmenggunakannyauntukmengonversitipedatalain,seperti
Tanggal,menjadikannyakarakter,atauuntukmenyertakanberbagaiargumenformat.

Conothbkeim
rutenggambakranpenggunanuatmT
aO_CHAR:
INPUT:

SQL>SELECT SAL, TO_CHAR(SAL) DARI EMP;

OUTPUT:

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

ANALISIS

Setelah konversi, informasi yang dikonversi akan sejajar ke kiri. Jadi kita bisa mengatakan bahwa
itu adalah sebuah string.

54
Penggunanuatmufandigaslhiunutkmengubahofm
ratnagtgdalnangka.
tm
arof

INPUT:

SQL>SELECT SYSDATE,TO_CHAR(SYSDATE,'DD/MM/YYYY')
DARI DUAL;

OUTPUT:
TANGGAL_SISTEM
TO_CHAR(SYSDATE,'DD/MM/YYYY')
--------- ------------------------------
24-MAR-07 24/03/2007

ANALISIS

Ubah format tanggal bawaan ke format DD/MM/YYYY

INPUT:

SQL>SELECT SYSDATE,TO_CHAR(SYSDATE,'DD-BUL-YY') DARI


DUAL;

OUTPUT:
Tanggal Sistem TO_CHAR(SYSDATE,'DD-BUL-YY')
--------- ------------------------------
24-MAR-07 24-MAR-07

INPUT:

SQL>SELECT SYSDATE,TO_CHAR(SYSDATE,'DY-MON-YY') DARI


DUAL;

KELUARAN:
TANGGAL_SISTEM
TO_CHAR(SYSDATE,'DY-MON-YY')
--------- ------------------------------
24-MAR-07 SAT-MAR-07

ANALISIS:
DY menampilkan 3 huruf pertama dari nama hari

55
INPUT:

SQL>SELECT SYSDATE,TO_CHAR(SYSDATE,'HARI BULAN TAHUN')


DARI DUAL;

OUTPUT:
TANGGAL_SISTEM
TO_CHAR(SYSDATE,'HARI BULAN TAHUN')
--------- ------------------------------
24-MAR-07 SABTU TANGGAL DUA RIBU TUJUH

ANALISIS:
HARI memberikan nama hari total
MONTH memberikan nama bulan total
YEAR menulis angka tahun dalam kata-kata

INPUT:

SQL>SELECT SYSDATE,TO_CHAR(SYSDATE,'DDSPTH BULAN


TAHUN') DARI DUA;

OUTPUT:
SYSDATE TO_CHAR(SYSDATE,'DDSPTHMONTHYEAR')
--------- -------------------------------------------------------------------
24-MAR-07 DALAM DUABELAS MARET DUA RIBU TUJUH

ANALISIS:
DD memberikan nomor hari
DDSP Writes day number in words
TH adalah format. Tergantung pada angkanya, itu memberikan baik ST / RD / ST / ND
format

56
INPUT:

SQL> PILIH TANGGAL_DITERIMA, TO_CHAR(TANGGAL_DITERIMA, 'DDSPTH BULAN TAHUN')


DARI EMP;

KELUAR:
TANGGAL_DITERIMA TO_CHAR(TANGGAL_DITERIMA,'DDSPTHBULANTAHUN')
--------- -------------------------------------------------------------------
17-DESEMBER-80 TUJUH BELAS DESEMBER SERIBU Sembilan ratus DELAPAN
20-FEB-81 DUA PULUH FEBRUARI SERATUS SEBELAS
22-PEB-81 DUA PULUH DUA FEBRUARI SERIBU SEMBILAN RATUS DELAPAN PULUH SATU
02-APR-81 KEDUA APRIL SERIBU SEDERHAK SEMBILAN PULUH SATU
28-SEP-81 DUAPULUH DELAPAN SEPTEMBER SERIBU SEMBILAN RATUS DELAPAN PULUH SATU
01-MEI-81 HARI PERTAMA MEI SEPUH DELAPAN
09-JUN-81 SEPTEMBER JUNI SEMBILAN BELAS DELAPAN SATU
09-DEC-82 SEBULAN DESEMBER SERIBU SEMBILAN RATUS DELAPAN PULUH DUA
17-NOV-81 TANGGAL TUJUH BELAS NOVEMBER SERIBU Sembilan RATUS DELAPAN PULUH SATU
08-SEP-81 DELAPAN SEPTEMBER SERIBU Sembilan RATUS DELAPAN PULUH SATU
12-JAN-83 DUA BELAS JANUARI SEmbILAN BELAS DELAPAN PULUH TIGA
03-DEC-81 TANGGAL TIGA DESEMBER SERIBU SEMBILAN RATUS DELAPAN PULUH SATU
03-DESEMBER-81 HARI KETIGA DESEMBER SERIBU SEMBILAN RATUS DELAPAN PULUH SATU
23-JAN-82 DUABELAS JANUARI SERIBU SEMBILAN RATUS DELAPAN PULUH DUA

ANALYSIS:
Mengubah semua tanggal perekrutan dalam tabel EMP menjadi kata-kata

57
INPUT:

SQL>SELECT TO_CHAR(SYSDATE,'HH:MI:SS AM') DARI DUAL;

OUTPUT:
TO_CHAR(SYS
-----------
08:40:17 PM

ANALISIS:

}
HH mengembalikan Jam
MI mengembalikan Menit } Mengembalikan waktu dari tanggal saat ini
SS returns Seconds }
AM mengembalikan AM / PM tergantung pada Waktu

MASUKKAN:

SQL>SELECT TO_CHAR(SYSDATE,'HH24:MI:SS') DARI DUAL;

OUTPUT:
KE_CHAR(
--------
20:43:12
ANALISIS:

HH24 mengembalikan Jam dalam format} 24 jam


MI returns Minutes } Mengembalikan waktu dari tanggal saat ini
SS mengembalikan Detik }

INPUT:

SQL>SELECT TO_CHAR(12567,'99.999,99') FROM DUAL;

OUTPUT:
TO_CHAR(12567,'99.999,99')
-----------------------------
12,567.00
58
ANALISIS:

Mengubah angka yang diberikan ke dalam format koma dengan dua tempat desimal
INPUT:

SQL>SELECT TO_CHAR(12567,'L99,999.99') DARI DUAL;

OUTPUT:
TO_CHAR(12567,'L99.999,99')
-----------------------------
Rp12.567.000,00

ANALISIS:

Tampilkan simbol mata uang lokal

INPUT:

SQL>SELECT TO_CHAR(-12567,’L99.999,99PR’) FROM DUAL;

KELUAR:
TO_CHAR(-12567,'L99.999,99PR')
-----------------------------------
<$12,567.00>

ANALISIS:

PR Kurung angka negatif

59
FungsiTanggalDanWaktu
Kitahidupdalamperadabanyangdiaturolehwaktudantanggal,dankebanyakanbesar
pocot snoi tcnufevahQ
LSfosnoi tatnm
eelm
pi

laggnat nad utkw


a isgnuf nakkujnunm
e inI

TAMBAH_BULAN
Fum
nigsienambahkanseujmalhbualnkatneggyalngedtnuitkan.

anueposgkrlaMhem
tnalnteyruals,m
etnjkaoiuyrngapehtgdal
poeidbr6U [Link] tkenemukaneutam
ghjgalpdoepotsi

INPUT:
SQL>SELECT ADD_MONTHS (SYSDATE, 6) TANGGAL_JATUH_TEMPO
DARI DUAL;
OUTPUT:

MATURITY_DATE
--------------------
24-SEP-07

ANALISIS
Ini menambahkan 6 bulan ke tanggal sistem

INPUT:
SQL>SELECT TANGGAL_DIPEKERJAKAN, TAMBAH_BULAN(TANGGAL_DIPEKERJAKAN,33*12)
TANGGAL_PENSIUN DARI KARYAWAN;
OUTPUT:
HIREDATE RETIRE_DATE
--------- ---------------
17-DEC-80 17-DEC-13
20-FEB-81 20-FEB-14
22-PEB-81 22-PEB-14
02-APR-81 02-APR-14
28-SEP-81 28-SEP-14
01-MEI-81 01-MEI-14
09-JUN-81 09-JUN-14
09-DEC-82 09-DEC-15
17-NOV-81 17-NOV-14
08-SEP-81 08-SEP-14
12-JAN-83 12-JAN-16
03-DEC-81 03-DEC-14
03-DEC-81 03-DEC-14
23-JAN-82 23-JAN-15
60
ANALYSIS
Temukan tanggal pensiun seorang karyawan
Assume, 33 years of service from date of join is retirement date
INPUT:
SQL>SELECT TANGGAL_PEKERJAAN,
TO_CHAR(ADD_MONTHS(HIREDATE,33*12),'DD/MM/YYYY')
TANGGAL_PENSIUN DARI KARYAWAN;
OUTPUT:

HIREDATE RETIRE_DATE
--------- ---------------
17-DEC-80 17/12/2013
20-FEB-81 20/02/2014
22-FEB-81 22/02/2014
02-APR-81 02/04/2014
28-SEP-81 28/09/2014
01-MEI-81 01/05/2014
09-JUN-81 09/06/2014
09-DEC-82 09/12/2015
17-NOV-81 17/11/2014
08-SEP-81 08/09/2014
12-JAN-83 12/01/2016
03-DEC-81 03/12/2014
03-DEC-81 03/12/2014
23-JAN-82 23/01/2015

ANALISIS
Displaying the retirement date with century.

LAST_DAY

LAST_DAYmengembkailanhetarkirdhbraiuralnyangdetniutkan.
am
[Link]
tm
uS
conplehibdtr,aegnhaiueti

BULAN_SEBELUM
Digunakanuntukmenemukanjumlahbulanantaraduabulanyangdiberikan

INPUT:
SQL>SELECT LAST_DAY(SYSDATE) DARI DUAL;
KELUAR:

HARI_TERAKHIR(TANGGAL_SISTEM)
-------------------------
31-MAR-07

ANALISIS
Temukan tanggal terakhir bulan ini
61
INPUT:
SQL>PILIH
ENAME,MONTHS_BETWEEN(SYSDATE,HIREDATE)/12
PENGALAMAN DARI EMP;
OUTPUT:
ENAME EXPERIENCE
---------- ----------
SMITH 26.2713494
ALLEN 26.0966182
WARD 26.0912419
JONES 25.9783387
MARTIN 25.4917795
BLAKE 25.8976935
CLARK 25.7928548
SCOTT 24.2928548
RAJA 25.3546827
TURNER 25.545543
ADAMS 24.2014569
JAMES 25.3089838
FORD 25.3089838
MILLER 25.171887

ANALISIS
Menemukan jumlah bulan antara sysdate dan hiredate. Hasilnya dibagi.
with 12 to get the experience

62
Fungsi Beragam

BerikutadalahtigafungsiberbagaiyangmungkinAndaanggapberguna.
TERBESARdanTERKECIL

INPUT:
SQL>SELECT GREATEST(10,1,83,2,9,67) DARI DUAL;
KELUAR:

TERHEBAT
---------
83
ANALISIS

Menampilkan nilai terbesar dari kumpulan nilai yang diberikan

Perbedaan antara GREATEST DAN MAX ADALAH


1) GREATEST ADALAH FUNGSI BARIS TUNGGAL, MAX ADALAH SEBUAH KELOMPOK
FUNGSI
2) YANG TERBAIK MENGAMBIL NILAI DARI KOLOM YANG BERBEDA
DARI SETIAP BARIS, DI MANA MAKSIMUM MENGAMBIL NILAI DARI
BARIS YANG BERBEDA DARI SEBUAH KOLOM.

Anggapalhadatbesiw
la
MAHASISWA
ROLLNONAMESUB1SUB2SUB3SUB4
1 5 46RAV82I552
2 2 15KR65IS785
3 7 74 42 25 5UBAB
4 INPUT: 8 86UN65A 5 4 4
SQL>SELECT NAMA,SUB1,SUB2,SUB3, SUB4,
nhdearetndangiitret m
iaU netniunka GREATEST(SUB1,SUB2,SUB3,SUB4) GREATEST_MARK,
uklm
LEAST(SUB1,SUB2,SUB3,SUB4) LEAST_MARK FROM STUDENT

OUTPUT:
ROLLNO NAME SUB1 SUB2 SUB3 SUB4 GREATEST LEAST
TANDA MARKA
1 RAVI 55 22 86
63 45 86 22
2 KRIS 78 55 65 12 78 12
3 BABU 55 22 44 77 77 22
4 ANU 44 55 66 88 88 44
64
PENGGUNA

USERmengembalikannamaKarakterpenggunaSaatIniDariBasisData.

INPUT:
SQL>SELECT USER DARI DUAL;
OUTPUT:

PENGGUNA
--------
SCOTT

ANALISIS
Menampilkan nama pengguna sesi saat ini
Kita juga dapat menampilkan nama pengguna menggunakan perintah lingkungan
SQL> TAMPILKAN PENGGUNA

FungsD
i ECODE

FunD
gsiECODEadalhsalhsauptneairthpnaiglkudatlmSQL*Pulds-an
mungyknainpB
[Link]
daQ
rL
kekuarngapnorseduarl
s asahabm
alad gnudnakret gnay isgnuf
m EDOCED n a a t a y n r e P
bahapsemorgarmD
anm
.dpiuaselktriaeunkblfnusiaktebuthapnaeploayrnankgompekls,
DECODEseringmampumengisikesenjanganantaraSQLdanfungsidariprosedural
baha.s

SYNTAKSIS:
DECODE (kolom1, nilai1, keluaran1, nilai2, keluaran2, keluaran3)

Conotnhsam
intkisealkukanufnD
gsiECODEpadkaolm1.

km
a ,1eulav ial in iki lm
m
iem
1olok akiJ
.uelvanterurc

km
a ,2eulav ial in iki lm
m
iem
1olok akiJ
.nii tas ialni

in niales ial in iki lm


m
iem
1olok akiJ
okm
li.darniatsaiplad3nipdouart
65
INPUT
SQL> PILIH ENAME, JOB, DECODE(JOB,'CLERK','EXEC','SALESMAN',
PROMOSI PEKERJAAN DARI EMP

OUTPUT
ENAME JOB PROMOTION
---------- --------- ---------
SMITH PETUGAS EKSEKUTIF
ALLEN SALESMAN [Link]
WARD SALESMAN [Link]
JONES MANAGER VP
MARTIN PENJUAL PETUGAS S.O.
BLAKE MANAGER VP
CLARK MANAJER VP
SCOTT ANALSIS PM
RAJA PRESIDEN PRESIDEN
TURNER PENJUAL [Link]
ADAMS CLERK EXEC
JAMES PEGAWAI EKSEKUTIF
FORD ANALIS PM
MILLER CLERK EXEC

ANALISIS
Ketika JOB memiliki nilai CLERK, maka tampilkan EXEC sebagai pengganti CLERK
Ketika JOB memiliki nilai SALESMAN, maka tampilkan [Link] sebagai ganti SALESMAN
Ketika JOB memiliki nilai ANALYST, maka tampilkan PM sebagai ganti ANALYST
Ketika JOB memiliki nilai MANAGER, maka tampilkan VP sebagai ganti MANAGER
SEBALIKNYA TAMPILKAN PEKERJAAN YANG SAMA

66
MASUK
SQL>SELECT ENAME, JOB, SAL, DECODE(JOB, 'CLERK', SAL*1.1, 'SALESMAN',
SAL*1.2,'ANALIS',SAL*1.25,'MANAJER',SAL*1.3,SAL) Gaji_BARU DARI KARYAWAN;
KELUARAN
ENAME JOB SAL NEW_SAL
---------- --------- ---------- ----------
SMITH CLERK 800 880
ALLEN SALESMAN 1600 1920
WARD SALESMAN 1250 1500
JONES MANAGER 2975 3867.5
MARTIN SALESMAN 1250 1500
BLAKE MANAGER 2850 3705
CLARK MANAGER 2450 3185
SCOTT ANALYST 3000 3750
KING PRESIDENT 5000 5000
TURNER SALESMAN 1500 1800
ADAMS PETUGAS 1100 1210
JAMES CLERK 950 1045
FORD ANALYST 3000 3750
MILLER CLERK 1300 1430
ANALISIS
Ketika JOB memiliki nilai CLERK, maka memberikan kenaikan 10%
Ketika JOB memiliki nilai SALESMAN, maka memberikan kenaikan 20%
Ketika JOB memiliki nilai ANALYST, maka memberikan kenaikan 25%.
Ketika JOB memiliki nilai MANAGER, maka memberikan kenaikan 30%
SEBALIKNYA tidak ada kenaikan

Anggapadasebuahatbedlenganempnoen,amse,x

MASUK
SQL> PILIH ENAME, SEX, DECODE(SEX, 'LAKI-LAKI', 'Tuan.' || ENAME,
'MS.'||ENAME) DARI EMP;

ANALISIS
Menambahkan 'Tn.' atau 'Ny.' sebelum nama berdasarkan Jenis Kelamin mereka

67
68
KASUS

SeajkOraceA
l9,indadapam
t enggunakanfungC
siASEsebagapiengganD
[Link]
siASE
aki tek icnuk atak nakanuggnm
e isgnuf
edok taum
bm
e nikgnm
u gnay , i tuki id
DECODE.

Contoh

SQL> PILIH PEKERJAAN,


KASUS PEKERJAAN
KETIKA 'MANAGER' maka 'VP'
WHEN 'CLERK' THEN 'EXEC'
KETIKA 'SALESMAN' MAKA '[Link]'
LAINNYA
JOB
SELESAI
DARI EMP;

PEKERJAAN CASEJOBWH
--------- ---------
CLERK EXEC
PEMBERIAN PENJUALAN [Link]
PEGAWAI PENJUAL
MANAGER VP
TENAGA PENJUALAN [Link]
MANAGER VP
MANAJER VP
ANALIS ANALIS
PRESIDEN PRESIDEN
PEMASAR PETUGAS
CLERK EXEC
CLERK EXEC
ANALIS ANALIS
CLERK EXEC

ANALISIS
Bekerja mirip dengan DECODE

69
NVL

sot lauqesinoi tcnufsiht N ,U


Lsieulaveht fI
ajm
netapadi tnaggneP . ial innagnedm ashaladaini isgnuf
koaum
.atiasput

NVLsinortesrtcietdotnumberscti,anbeusedwhtiCHARV
,ARCHAR2D
, ATE,
dapnilapedinlteaiytgnhag,aum
rnistpdyieatm
nksgaim
lia.

SINTAKSIS NVL(nilai, pengganti)

MASUK

SQL> PILIH EMPNO, SAL, COMM, SAL + COMM TOTAL DARI EMP;

KELUAR
EMPNO SAL COMM TOTAL
---------- ---------- ---------- ----------
7369 800
7499 1600 300 1900
7521 1250 500 1750
7566 2975
7654 1250 1400 2650
7698 2850
7782 2450
7788 3000
7839 5000
7844 1500 0 1500
7876 1100
7900 950
7902 3000
7934 1300

ANALISIS
Operasi aritmatika hanya mungkin dilakukan ketika ada nilai di kedua kolom

70
MASUKKAN

SQL> PILIH EMPNO, SAL, COMM, SAL + NVL(COMM,0) TOTAL DARI


EMP;

KELUAR
EMPNO SAL COMM TOTAL
---------- ---------- ---------- ----------
7369 800 800
7499 1600 300 1900
7521 1250 500 1750
7566 2975 2975
7654 1250 1400 2650
7698 2850 2850
7782 2450 2450
7788 3000 3000
7839 5000 5000
7844 1500 0 1500
7876 1100 1100
7900 950 950
7902 3000 3000
7934 1300 1300

ANALISIS
Dengan menggunakan NVL, kami mengganti 0 jika COMM adalah NULL.

INPUT
SQL>SELECT DEPTNO, SUM(SAL), RATIO_TO_REPORT(SUM(SAL))
OVER() DARI EMP GROUP BY DEPTNO;

OUTPUT
DEPTNO SUM(SAL) RATIO_TO_REPORT(SUM(SAL))OVER()
---------- ---------- -------------------------------
10 8750 .301464255
20 10875 .374677003
30 9400 .323858742

ANALISIS
FUNGSI RATIO_TO_REPORT MENEMUKAN RASIO GAJI DEPARTEMEN TERSEBUT
MENGENAI TOTAL GAJI SEMUA KARYAWAN.

71
LENGTH
Temukanpanajnngiofm
ryasingdbikeiran

SQL> SELECT ENAME,LENGTH(ENAME) FROM EMP;


SQL> PILIH PANJANG(SYSDATE) DARI EMP;
SQL> PILIH SAL,PANJANG(SAL) DARI EMP;

ASCI
TemukA
analiSC
dkIairkyetrangdbikeiran

SQL> SELECT ASCII('A') FROM DUAL;

Lath
ian

.utasreputasretkarakisutitsbusnakum leisgnuf_
pakgnelaracesnuhathujutnakm
kutapdntueaknugidnoitpomrotaf_
FunT
gO
si_CHAR.
nakirebidgnaygnirtsaudm nakgubnetnunaknugidm ilobs_
Apa yang terjadi jika "replacestring" tidak diberikan untuk fungsi REPLACE
Dapatkahangkadikonversm i enjadT
iANGGAL?
UbahnilaniamadtiabeE l MPmenjadhiurufkecil
Tampilkannama-namakaryawanyangmemilikilebihdari4karakterdidalamnya
nama.
*’biaurhlaynanagdam
Cauektjm langeskrbtaut
Tampilkannama,[Link],cetaksebagaiNOCOMM
Tambahkanujmalhkariaetnggyalangdbiekrian
Tampilkanduakarakterpertamadanterakhirdarinamayangdiberikandangabungkan.
)isgnufaynahnakaG nu(gnirtselgnisam seaht
Temukanpebredananadtruatnggyalngdbikeiran
Tampilkansemuanamayangmengandunggarisbawah
nkairbedingyanlgat irdanabulum hajlngiakur

72
73
KLAUSULGRUP

Groupbystatementmengelompokkansemuabarisdengannilaitulangankolomyangsama.
Gunakanuntukmenghasilkanringkasandaridatayangtersedia.
Setiap kali kita menggunakan fungsi grup dalam pernyataan SQL, kita harus menggunakan grup
aukesl.

MASUK
SQL> PILIH JOB, HITUNG (*) DARI EMP GRUP MENURUT JOB;

KELUAR
JOB COUNT(*)
--------- ----------
ANALYST 2
PEGAWAI 4
MANAGER 3
PRESIDEN
PEMASAR 4

ANALISIS
Menghitung jumlah karyawan di bawah setiap pekerjaan.
Ketika kami mengelompokkan berdasarkan pekerjaan, awalnya pekerjaan ditempatkan dalam urutan naik.
pesan dalam segmen sementara.
Pada segmen sementara, klausa group by diterapkan, sehingga pada setiap
fungsi hitung pekerjaan serupa diterapkan.

MASUK
SQL> PILIH PEKERJAAN, JUMLAH (GAJI) DARI KARYAWAN GRUP MENURUT PEKERJAAN;

KELUAR
PEKERJAAN JUMLAH(GAJI)
--------- ----------
ANALYST 6000
PEGAWAI 4150
MANAGER 8275
PRESIDENT 5000
PEMBELI 5600

ANALISIS

Dengan setiap pekerjaan, itu menemukan total gaji

74
75
ERRORdenganKLAUSEGROUPBY

Caatatn:

HanyakolomyangdikelompokkanyangdiperbolehkandalamklausaGROUPBY
Setiap kali kita menggunakan fungsi grup dalam pernyataan SQL, kita harus
gunakankalusagroupby.

MASUK

SQL> PILIH JABATAN, COUNT(*) DARI KARYAWAN;

KELUARAN
PILIH PEKERJAAN, HITUNG (*) DARI KARYAWAN
*
ERROR di baris 1:
ORA-00937: bukan fungsi grup grup tunggal

ANALISIS
Ini hasil terjadi karena the grup functions, seperti sebagai JUMLAH dan
HITUNG ditugaskan untuk memberi tahu Anda sesuatu tentang sekelompok atau barisan,
bukan baris individu dari tabel. Kesalahan ini dihindari dengan menggunakan
PEKERJAAN dalam klausa GROUP BY, yang memaksa COUNT untuk menghitung semuanya
baris dikelompokkan dalam setiap pekerjaan.

INPUT

SQL> PILIH JOB, ENAME, COUNT(*) DARI EMP GRUP MENURUT JOB;

KELUAR

SELECT JOB,ENAME,COUNT(*) FROM EMP GROUP BY JOB


*
ERROR at line 1:
ORA-00979: bukan ekspresi GROUP BY

ANALISIS

Dalam kueri di atas, JOB hanya merupakan kolom yang dikelompokkan sedangkan ENAME
kolom bukan kolom yang dikelompokkan.

Apa pun kolom yang kita kelompokkan, kolom yang sama diperbolehkan untuk
display.

76
MASUK
SQL> PILIH JOB, MIN(SAL), MAX(SAL) DARI EMP GRUP MENURUT JOB;

KELUARAN
JOB MIN(SAL) MAX(SAL)
--------- ---------- ----------
ANALYST 3000 3000
CLERK 800 1300
MANAGER 2450 2975
PRESIDENT 5000 5000
SALESMAN 1250 1600

ANALISIS
Dengan setiap pekerjaan, ia menemukan GAJI MINIMUM DAN MAKSIMUM

.abelt diM
aralontgenikm
aorsfkianliaspi

MASUK
SQL> PILIH PEKERJAAN, JUMLAH(GAJI), RATA-RATA(GAJI), MIN(GAJI), MAKS(GAJI), HITUNG(*)
DARI EMP GRUP MENURUT JABATAN;

KELUAR
JOB SUM(SAL) AVG(SAL) MIN(SAL) MAX(SAL) COUNT(*)
--------- ---------- ---------- ---------- ---------- ----------
ANALYST 6000 3000 3000 3000 2
CLERK 4150 1037.5 800 1300 4
MANAGER 8275 2758.33333 2450 2975 3
PRESIDENT 5000 5000 5000 5000 1
SALESMAN 5600 1400 1250 1600 4

ANALISIS

Dengan setiap pekerjaan, temukan informasi ringkasan total.

77
m
etnerpdandanatbajnkarasdarbeijgalaotm
tU
uknam
entlpi
Dengan laporan gaya matriks.

MASUK

SQL> PILIH PEKERJAAN, JUMLAH(DECODE(DEPTNO,10,GAJI)) DEPT10,


SUM(DECODE(DEPTNO,20,SAL)) DEPT20,
SUM(DECODE(DEPTNO,30,SAL)) DEPT30,
JUMLAH(SAL) TOTAL DARI KARYAWAN GRUP MENURUT PEKERJAAN;

KELUAR

JOB DEPT10 DEPT20 DEPT30 TOTAL


--------- ---------- ---------- ---------- ----------
ANALYST 6000 6000
CLERK 1300 1900 950 4150
MANAGER 2450 2975 2850 8275
PRESIDENT 5000 5000
SALESMAN 5600 5600

ANALISIS
Ketika kita menerapkan group by, pada awalnya semua jabatan ditempatkan dalam urutan menaik dari
penunjukan.
Kemudian klausa grup mengelompokkan penunjukan yang serupa, kemudian fungsi DECODE (Tunggal
fungsi baris) diterapkan pada setiap baris dari kelompok itu dan memeriksa DEPTNO. Jika
DEPTNO=10, ini mengoper gaji yang sesuai sebagai argumen ke SUM().

MASUK

SQL> PILIH DEPTNO,JOB,JUMLAH(*) DARI EMP GRUP MENURUT


DEPTNO,JOB;

KELUARAN
DEPTNO JOB COUNT(*)
---------- --------- ----------
10 PELAYAN 1
10 MANAJER 1
10 PRESIDEN 1
20 PETUGAS 2
20 ANALIS 2
20 MANAJER 1
30 PETUGAS
30 MANAJER 1 78
30 PENJUAL

ANALISIS
79
im
D
U
ulknaE
m
entuP
lT
ptiaN
sO
nhya

INPUT

SQL> BREAK ON DEPTNO SKIP 1


SQL> PILIH DEPTNO, JOB, JUMLAH(*) DARI EMP KELOMPOK BERDASARKAN DEPTNO, JOB;

Keluaran
DEPTNO JOB COUNT(*)
---------- --------- ----------
10 JURU KEDİK 1
MANAJER
PRESIDEN 1

20 PETUGAS
ANALIS
MANAJER 1

30 PETUGAS 1
MANAGER
PEJABAT PENJUALAN 4

ANALISIS

Break adalah perintah Lingkungan, yang memutuskan informasi yang berulang.


kolom dan menampilkannya hanya sekali.
SKIP 1 digunakan dengan BREAK untuk meninggalkan satu baris kosong setelah penyelesaian tiap
Deptno.

ngkL
ungaihantm
irpenugsnkarhatkink,airbedinygadaem
jU
ukngephuats

SQL> HAPUS BREAK;

80
FungsC
i UBE

WecanuseCUBEfunctiontogeneratesubtotalsforallcombinationsofthevalues
U
PL
O
Rnad E
U
B
C( .yb puorg lusualkm
alad

MASUK
SQL> PILIH DEPTNO, JOB, COUNT(*) DARI EMP GRUP PER
KUBE(DEPTNO,PEKERJAAN);

Keluaran
DEPTNO JOB COUNT(*)
---------- --------- ----------
14
KLERK 4
ANALIS N
MANAJER 3
SALESMAN 4
PRESIDEN
10 3
10 PETUGAS 1
10 MANAGER 1
10 PRESIDEN 1
20 5
20 PETUGAS 2
20 ANALIS 2
20 MANAJER 1
30 6
30 PETUGAS 1
30 MANAJER 1

DEPTNO JOB COUNT(*)


---------- --------- ----------
30 PENJUAL 4

ANALISIS

Kubus menampilkan keluar dengan semua permutasi dan kombinasi dari semua kolom
diberikan fungsi CUBE.

81
82
FUNGSIROLLUP

C
U
B
E isgnuf nagned pi rm
i inI

MASUK
SQL> PILIH DEPTNO, JOB, HITUNG(*) DARI EMP GRUPKAN MENURUT
ROLLUP(DEPTNO, JOB)

KELUARAN
DEPTNO JOB COUNT(*)
---------- --------- ----------
10 JURU KUALA 1
10 MANAJER 1
10 PRESIDEN 1
10 3
20 JURU KETIK 2
20 ANALIS 2
20 MANAJER 1
20 5
30 PETUGAS 1
30 MANAGER 1
30 PENJUAL
30 6
14

KLAUSULHAVING

Setiap kali kita menggunakan fungsi grup dalam kondisi, kita harus menggunakan having
.byoupgreusalcm
ngdaesrabengkuadieusaH
[Link]

anbatbkjdaernsm
uinkgS
tcaojnehbt,anglom
itkanlpi

MASUK
SQL> PILIH PEKERJAAN, JUMLAH(GAJI) DARI KARYAWAN GRUP MENURUT PEKERJAAN;

KELUAR
SQL> PILIH PEKERJAAN, JUMLAH(GAJI) DARI KARYAWAN GRUP MENURUT PEKERJAAN;

JOB SUM(SAL)
--------- ----------
ANALYST 6000
PETUGAS 4150
MANAJER 8275
PRESIDENT 5000
PEMBECAK

83
84
50irdahbielnyaijgalaottnyganatbajm
nhyaU
uknam
entlpi

MASUK
SQL> PILIH PEKERJAAN, JUMLAH(GAJI) DARI KARYAWAN DIMANA JUMLAH(GAJI) > 5000
GROUP BY PEKERJAAN;
KELUAR
PILIH PEKERJAAN, JUMLAH(GAJI) DARI KARYAWAN DI MANA JUMLAH(GAJI) > 5000 GRUPKAN DENGAN PEKERJAAN
*
ERROR di baris 1:
ORA-00934: fungsi grup tidak diperbolehkan di sini

ANALISIS
Klausul where tidak mengizinkan penggunaan fungsi grup dalam kondisi.
Ketika kita menggunakan fungsi grup dalam kondisi, kita harus menggunakan klausa having.

MASUK
SQL> PILIH JOB,JUMLAH(SAL) DARI EMP GRUPKAN MENURUT JOB DENGAN
JUMLAH(SAL) > 5000;

KELUAR
JOB SUM(SAL)
--------- ----------
ANALYST 6000
MANAGER 8275
SALESMAN 5600

ANALISIS

Menampilkan semua jabatan yang total gajinya lebih dari 5000.

85
MASUK
SQL> PILIH PEKERJAAN, COUNT(*) DARI EMP GRUPKAN MENURUT PEKERJAAN DENGAN
COUNT(*) ANTARA 3 DAN 5;

KELUAR
PEKERJAAN JUMLAH(*)
--------- ----------
CLERK 4
MANAGER 3
PEMBAWA JAMINAN 4

ANALISIS

Menampilkan semua jabatan yang memiliki jumlah karyawan antara 3 dan 5

INPUT
SQL> PILIH SAL DARI EMP GRUP PER SAL MEMILIKI JUMLAH(SAL) > 1;

KELUAR
SAL
----------
1250
3000

ANALISIS

Menampilkan semua gaji yang muncul lebih dari satu kali di tabel.

86
POINT YANG PERLU DIINGAT

Klausul WHERE dapat digunakan untuk memeriksa kondisi berdasarkan


nilai kolom dan ekspresi tetapi bukan hasil dari GROUP
fungsi.
Klaus HAVING dirancang secara khusus untuk mengevaluasi kondisi
yang didasarkan pada fungsi grup seperti SUM, COUNT, dll.
Klausa HAVING hanya dapat digunakan ketika klausa GROUP BY ada.
used.

URUTANEKSEKUSI

Here are the rules ORCALE uses to execute different clauses given in SELECT
perintah

. Memilih baris berdasarkan klausa Where


. Mengelompokkan baris berdasarkan klausa GROUP BY
. Menghitung hasil untuk setiap kelompok
. Hapus grup berdasarkan klausa HAVING
. Kemudian ORDER BY digunakan untuk mengurutkan hasil
87
Contoh
MASUK
SQL> PILIH JOB,SUM (SAL) DARI EMP DIMANA JOB != 'CLERK'
GROUP BY JOB HAVING SUM(SAL) > 5000 ORDER BY JOB DESC;

LATIHAN

LAMPIRAN–APERTANYAAN2

SubkuerB
i ersarang

Nesnitgadaalhnitdakanmenyemaktansubkuerdidiaalmsubkueralininya.
SN
I TAKSS I

Pilih * DARI SESUATU DIMANA (SUBKUERI (SUBKUERI


(SUBQUERY)));

Setiap kali informasi tertentu tidak dapat diakses melalui satu kueri, maka kita
haurm
senuskilankuyeirangbebredasuetm
r asukyanganli.

Subkuderiapbatersarangsedalmyangdzinkanoelhm
i pelmenaS
tsiQLAnda.

Kitadapatmenulisberbagaijenissubkueri
SubkueB
irasT
irunggal
Subkueri Multibarisan
Subkueri Multikolom
Subkueryiangberkorelasi.

88
SubkuerB
iarsT
iunggal
Subkueri yang hanya mengembalikan satu nilai.
INPUT
SebagSQL>
caoinoth, PILIH ENAME, SAL DARI EMP DIMANA SAL = ( PILIH
MAX(SAL) DARI EMP);
m
iksaum
im
jga?iw
ynagrnkeapaSi
KELUAR
ENAME SAL
------------ ----------
RAJA 5000

ANALISIS 89
Kueri sisi kanan disebut sebagai kueri anak dan kueri sisi kiri disebut sebagai orang tua
kueri. Dalam kueri bersarang, kueri anak dieksekusi terlebih dahulu sebelum mengeksekusi induk
kueri.
79
MASUK
SQL> PILIH ENAME,SAL DARI EMP DIMANA SAL < (PILIH
MAX(SAL) DARI EMP);

KELUAR
ENAME SAL
---------- ----------
SMITH 800
ALLEN 1600
WARD 1250
JONES 2975
MARTIN 1250
BLAKE 2850
CLARK 2450
SCOTT 3000
TURNER 1500
ADAMS 1100
JAMES 950
FORD 3000
MILLER 1300

ANALYSIS

Tampilkan semua karyawan yang gajinya kurang dari


gaji maksimum dari semua karyawan.

Query

m
nim
uam
indarksum
ntadidarbenyaijgaw
ynagm
erkasnU
uknam
entlpi
igja

MASUK

SQL> PILIH * DARI EMP DIMANA SAL ANTARA (PILIH MIN(SAL)


DARI EMP) DAN (PILIH MAKS(SAL) DARI EMP);

91
Tampilkansemuakaryawanyangmendapatkankomisimaksimumdi
iasgoanri

SQL> PILIH * DARI EMP DI MANA COMM =


(PILIH MAKS(COMM) DARI EMP);

Kueri

Tampilkansemuakaryawandaridepartemen30yanggajinyakurangdarimaksimum
m
[Link]

SQL> PILIH EMPNO, ENAME, SAL DARI EMP DIMANA DEPTNO=30


DAN SAL < (PILIH MAKS (SAL) DARI EMP DIMANA DEPTNO = 20);

SubkueriMultirow

Subquery, yang mengembalikan lebih dari satu nilai.

INPUT
SQL>SELECT ENAME,SAL DARI EMP DIMANA SAL DALAM(SELECT
SAL DARI EMP GRUP MENURUT SAL MEMILIKI COUNT(*)> 1);

KELUARAN
ENAME SAL
---------- - ---------
Ruang 1250
MARTIN 1250
SCOTT 3000
FORD 3000

ANALISIS
Menampilkan semua karyawan yang memiliki gaji serupa

Ketika kueri anak mengembalikan lebih dari satu nilai, kita harus menggunakan operator IN untuk
perbandingan.

92
SubkueriMultiKolom

Kapan subkueri mengembalikan nilai dari kolom yang berbeda.


SQL> PILIH EMPNO, ENAME, DEPTNO, SAL DARI EMP DI MANA (DEPTNO, SAL)
IN (SELECT DEPTNO, MAX(SAL) DARI EMP GROUP BY DEPTNO);
KELUAR
EMPNO ENAME DEPTNO SAL
---------- ---------- ---------- ----------
7839 RAJA 10 5000
7788 SCOTT 20 3000
7902 FORD 20 3000
7698 BLAKE 30 2850

ANALISIS
Tampilkan semua karyawan yang mendapatkan gaji tertinggi di setiap departemen

PERNYATAANDMLDALAMSUBKUERI

m
ep1lbeatkeonkgslbeat irdahilpidinygasm
U
uikm
erbnatuknas

MASUK
SQL> MASUKKAN KE EMP1
PILIH * DARI KARYAWAN ;

ANALISIS
EMP1 adalah tabel yang ada. Menyisipkan semua baris yang dipilih ke dalam tabel EMP1.

93
Lath
ian

m
uinm
i i jagm
ai renm
enw
aayrak utas ,02 nm
eet raped D i
ynagniam
eltdpnerayiw
akdraT
km
[Link]
spigntaides
[Link]

Tampilkansemuakaryawanyanggajinyadalamrentang±1000darirata-rata
uyhw
akrlesnaigja

TampilkankaryawanyangmelaporkepadaKING

Tampilkansemuakaryawanyanggajinyakurangdarigajiminimumdari
MANAJER.

94
INTEGRITYCONSTRAINTS

Keterbatasandigunakanuntukmenerapkanaturanstandarsepertkieunikandalamkunci
kolm AG a1n5ratiE
nlhiabusirer
[Link]

Oracleservermemastikanbahwabatasantidakterlanggarmeskiapadabarudimasukkan
abrepid uata , supahid ,nakkusm
aid

Keterbatasanbiasanyadidefinisikanpadasaam
t embuatabeT
[Link]
.butadibalethaletesnasbtakm
enim
suknuitnagiekdfe

JENS
IJ-ENS
IKONSTRN
IT

Batasandiklasifkasikanmenjaddiuajenis

KbaesrntTabel
PembatasKolom

KendaalTabeK
l endala yang diberikan pada tingkat tabel disebut sebagai Tabel
[Link]
i ungkinmerujukpadalebihdarsiatukolomdartiabel.

Contoh tidak biasa adalah batasan PRIMARY KEY yang digunakan untuk mendefinisikan komposit
kuanm
tcia.

PembatasKolomSebuah batasan yang diberikan di tingkat kolom disebut sebagai Kolom


niaom
kolkem
ukujredpatdkait niIom
[Link]
niinedfiI .aknedla
,nakisinifedidut i am na idm o,lok
Contoh atipikal adalah batasan PRIMARY KEY ketika satu kolom adalah kunci utama
kum nciaej

Berbagejn
absiaatsanietgatris

PRM
I ARYKEY
UNIK
TIDAKNULL
CEK

95
nu araces si rab isaki f i tnedignm ekuK tnuUN naC
kaIU
nugTA
idMiA
nI
ahdalutidem
kan,kioijkm
ulats, idarhebil idarirdiertdaputtI .am bueltdbalskuhaunciats
um
tm
Iangea([Link]
raustdiATAdlnaul
m.i)raetdidpatdkait ialni

A
M
U
T
AK
U
IN
C
=D
L
A
K
N
UITK
+U
N
I .ut iay
Secaarootmm
saitembuniadtekusnkiunutkmenegakkankeunkian.

UNIKMempertahankan nilai unik dan NULL adalah dapat diterima.

Oraclesecaraotomatismembuatindeksunikuntukkolomtersebut.

TIDAKNULKeunikantidakterjagadannilainoltidakdapatditerima.

TeAnS
tuK
kanIkRoEndPisiyangharusdipenuhisebelumpenyisipan
dapnembaurakdnluikan.

DDL(BahasaDefinisiData)
CreateA
, lterD
, rop

PERNYATAAN DDL MELAKUKAN KOMIT SECARA OTOMATIS. Ada


tidak perlu menyimpan secara eksplisit.

BuatTabel

BUAT TABEL <TABLE-NAME> (KOLOM


DEFINISI1, DEFINISI KOLOM2);

Sniatks-:i

ColumnDef:
<NamaT
>
peiD
D
N
ab[<
ista]lnateiufm
l pa>
eiB
ta]st

Noet=
:MniC
. oulmnniaatbel=1

96
[Link]=1000

97
Aturan:-

b a t a m a N . 1

angkadalmmereka
a k e r eM . 2
s lebat kutnu m
aaturet nakanugid#,$.ut iay

Contoh:

SQL>BUAT TABEL EMPL47473 (EMPNO NOMOR (3) KETERBATASAN


PK_EMPL47473_EMPNO PRIMARY KEY, ENAME VARCHAR2 (10)
TIDAK NULL, JENIS KELAMIN CHAR(1) KETENTUAN
CHK_EMPL47473_JENIS KELAMIN CEK(UPPER(GENDER) DI
( ‘L’,’P’)), EMAIL_ID VARCHAR2 (30) UNIK, JABATAN
VARCHAR2 (15), SALARY NUMBER (7,2) PERIKSA (SALARY
ANTARA 10000 DAN 70000));

Catatan:
Namakendalabergunauntukmemanipulaskiendalayangdiberikan
Ketika nama batasan tidak diberikan pada saat mendefinisikan batasan,
m
S
naY
nagS
de_C
[Link]
etbatm esitbuas
Keterbatasanyangditentukanpadatabetlertentudisimpandalamtabeklamusdata
USER_CONSTRAINTS,USER_CONS_COLUMNS.
T
kypeoahisnbldieglfgm
uisdniapdanm
klabm
telU
dautsSER_TABLES

SQL> DESKRIPSI USER_CONSTRAINTS


SQL> PILIH NAMA_KONSTRAN, TIPE_KONSTRAN,
KONDISI_PENCARIAN DARI BATASAN_PENGGUNA
DIMANA NAMA_TABEL = 'EMPL47473';

KELUARAN
CONSTRAINT_NAME CONSTRAINTTYPE SEARCH_CONDITION
------------------------------ - ------------------------------------------------------------------------------
SYS_C003018 C "ENAME" TIDAK NULL

CHK_EMPL47473_GENDER C UPPER (JENIS KELAMIN) DI ('L','P')

SYS_C003020 C GAJI ANTARA 10000 DAN 70000

PK_EMPL47473_EMPNO P

SYS_C003022 U

ANALISIS

Jelaskan struktur tampilan tabel kamus data.


98
SQL> DESKRIPSI USER_CONS_COLUMNS
SQL> PILIH NAMA_KONSTRINT, NAMA_KOLOM DARI
USER_CONS_COLUMNS DI MANA NAMA_TABEL =
EMPL47473

KELUARAN
CONSTRAINT_NAME COLUMN_NAME
------------------------------ - --------------------------------
CHK_EMPL47473_JENIS_KELAMIN GENDER

PK_EMPL47473_EMPNO EMPNO

SYS_C003018 ENAME

SYS_C003020 GAJI

SYS_C003022 EMAIL_ID

ANALISIS

Describe displays structure of the data dictionary table.


Pernyataan SELECT digunakan untuk melihat batasan yang ditentukan pada kolom

99
ALTERTABEL
Digunakanuntukmemodifikasistrukturtabel

SINTAKSIS
ALTER TABLE <NAMA_TABEL> [ TAMBAH | UBAH |
DROP | RENAME] ( KOLOM(S));

TAMBAH untuk menambahkan kolom baru ke dalam tabel


MODIFIKASI untuk memodifikasi struktur kolom
HAPUS untuk menghapus kolom dalam tabel (8i)
GANTI NAMA - untuk mengganti nama kolom (Hanya dari 9i)

SQL> ALTER TABLE EMPL47473 TAMBAH (ALAMAT


VARCHAR2 (30), TANGGAL_MASUK DATE, KODE_POS VARCHAR2(7));
SQL> ALTER TABLE EMPL47473 MODIFIKASI (ENAME
CHAR (15), NOMOR GAJI (8,2));
SQL> ALTER TABLE EMPL47473 DROP COLUMN
PINCODE;
SQL> UBAH TABEL EMPL47473 HAPUS
(DESIGNATION,ADDRESS);

SQL> UBAH TABEL EMPL47473 NAMA KOLOM


NAMA EMPEKERJA MENJADI NAMA KARYAWAN

Catatan:Pern
itahn
ijiugabergunauntukmemanp
iualsb
iatasan

INPUT
SQL> ALTER TABLE EMPL47473 HAPUS KUNCI UTAMA;

ANALISIS
Untuk menghapus kunci utama dari tabel. Pembatasan lainnya dihapus
hanya dengan merujuk pada nama batasan.

MASUK
SQL>ALTER TABLE EMPL47473 TAMBAH KUNCI UTAMA(EMPNO);
ANALISIS
Untuk menambahkan kunci primer di tabel tanpa
100 nama batasan. Ini membuat
nama batasan dengan SYS_Cn.
INPUT
SQL>ALTER TABLE EMPL47473 TAMBAHKAN BATASAN
PK_EMPL47473_EMPNO KUNCI UTAMA(EMPNO);

ANALISIS
Untuk menambahkan kunci utama dalam tabel dengan nama batasan

MANIPULASIDATA

MEMASUKKANBARIS

SINTAKSIS
MASUKKAN KE DALAM NAMA_TABEL [ NAMA_KOLOM,NAMA_KOLOM,
….]
VALUES(VALUE1,VALUE2,VALUE3, …..);

SQL> MASUKKAN KE EMPL47473


VALUES(101,'RAVI','L',
‘RAMESH_B@[Link]’,5000,’10-JAN-2001’);
ATAU
SQL> MASUKKAN KE DALAM EMPL47473 NILAI(&EMPNO ,
'&NAMA_KARYAWAN', '&JENIS_KELAMIN', '&EMAIL_ID', &GAJI, '&TANGGAL_MASUK';

UNTUK MEMASUKKAN KOLOM YANG DITENTUKAN KE DALAM TABEL

SQL> MASUKKAN KE DALAM


EMPL47473(EMPNO, NAMA_KARYAWAN, GAJI)
VALUES(101,'RAVI', 5000);
ATAU
SQL>INSERT INTO
EMPL47473(EMPNO,NAMA KARYAWAN,GAJI)
NILAI(&EMPNO,'7NAMAKARYAWAN',&GAJI);

101
id aynah esabatad id taubid gnay nC ahatbautarneP
CO
hantM
m
irpengM
unkaiiT
,m
Ilaitkinygam
orm
infsam
inyenpa
ROLLBACKS .AVEPOINT(PernyaatanprosesanrtansaksoinaY
langDkiena)l

SQL>KOMIT;

ANALISIS

Informasi dari halaman bayangan dikembalikan ke tabel dan bayangan


halaman dihancurkan secara otomatis.

SQL>ROLLBACK;

ANALISIS

Halaman bayangan dihancurkan secara otomatis tanpa mentransfer


informasi kembali ke meja.

SIMPANTAHAP

KitadapatmenggunakantitiksimpanuntukmengembalikansebagiandarisettransaksiAndasaatini

Conhtya

SQL> INSERT INTO EMPL47473


VALUES(105,'KIRAN','L',
‘KIRAN_B@[Link]’,5000,’10-JAN-2001’);

SQL> SAVEPOINT A

SQL> INSERT INTO EMPL47473


VALUES(106,'LATHA','F',
‘LATHA_D@[Link]’,5000,’15-JAN-2002’);

SQL> SAVEPOINT B

102
SQL> MASUKKAN KE DALAM EMPL47473
VALUES(107,'RADHA','F',
‘RADHA_V@[Link]’,15000,’15-JAN-2002’);

Ketika kita memilih data dari tabel


SQL> PILIH * DARI EMPL47473;

EMPNO EMPNAME G EMAIL_ID SALARY DOJ


---------- ---------- - ------------------ ---------- ---------
105 KIRAN M KIRAN_B@[Link] 5000 10-JAN-01
106 LATHA F LATHA_D@[Link] 5000 15-JAN-02
107 RADHA F RADHA_V@[Link] 15000 15-JAN-02

H
malsienunujkkgaierntkamanbauryanaegtm
[Link]
:nakkusm
a

SQL> ROLLBACK KE B;

Tnidakanyangakanmemakskaom
m
tienunbuatekjdr,hikantpA
andm
aengnuirstksiannyatua,
D
ahntD
iperapL
m
un,)udem
arnkgelabnksuroahm
.kets(iuarkel,uarkel

AUTOROLLBACK

etadpu,st resni fosei resadetelm pocev’uoyfI


adapek nm
et m
iokreb t i s i lm pi araces
[Link]
dblieynagnam
ejspkersnom
aeuoliatbtaraceseO
lcarkom
,kanusrkeput
mesinatau databasenya turun, ia melakukan pekerjaan pembersihan ini di waktu berikutnya
dabtaiesw
backup.

Catatan:
103
Roblackworksonylonuncommetiddaat
Transaksi ADDL setelah transaksi DML, secara otomatis mengikat.
Kita dapat menggunakan perintah Environment SETVERIFYOFF untuk menghapus yang lama
danpesanbm
asurtenpysikadna.t

104
MEMBUATMEJADARIMEJALAIN

SINTAKSIS
BUAT TABEL <TABLENAME> SEBAGAI PILIH <COLUMNS>
DARI
<TABEL YANG ADA> [DIMANA <KONDISI>];

Contoh
SQL> BUAT TABEL EMP47473 SEBAGAI PILIH
EMPNO,ENAME,SAL,JOB
FROM EMP;

Unu
tkmenambahkankolmbarud
atb
iel

SQL> ALTER TABLE EMP47473 ADD(SEX CHAR(1));


SQL> PILIH * DARI EMP47473;

MEMPERBARUIBARIS

Pnedaigrthiunakanunutkmengubahdatbatel

SINTAKSIS

PERBARUI <NAMA_TABEL> SET kolom1 = ekspresi, kolom2 =


ekspresi WHERE <kondisi>;

SQL> PERBARUI EMP47473 SET SAL = SAL*1.1;


SQL> KOMIT / BATALKAN;
ANALISIS
Memberikan peningkatan yang seragam kepada semua karyawan

SQL> PERBARUI EMP47473 SET SAL = DECODE (JOB, 'CLERK', SAL*1.1,


‘PEGAWAI PENJUAL', SAL*1.2, SAL*1.15);
SQL> KOMIT / BATAL;
105
`

106
SQL> PERBARUI EMP47473 SET SEX = 'M' DIMANA ENAME DITEMUKAN
(‘KING’,’MILLER’,’BLAKE’);
SQL> KOMIT / GULUNG BALIK;
SQL> PILIH * DARI EMP47473;

SQL> PERBARUI EMP47473 SET JENIS_KELAMIN = 'F' DIMANA JENIS_KELAMIN ADALAH

NULL;
SQL> COMMIT / ROLLBACK;
SQL> PILIH * DARI EMP47473 ;

SQL> PERBARUI EMP47473 SET ENAME =


DECODE(JENIS_KELAMIN, 'L', 'Tuan.' || NAMA, 'Nyonya.' || NAMA);
SQL> KOMIT / BATALKAN;
ANALISIS
Tambahkan Tuan atau Nyonya sebelum nama yang ada sesuai dengan nilai JENIS KELAMIN

107
MENGHAPUSBARIS

SINTAKSIS

HAPUS DARI <NAMA_TABEL> DIMANA <KONDISI>;

SQL> HAPUS DARI EMP47473 DIMANA JENIS_KELAMIN = 'L';


SQL> KOMIT | BATALKAN;

MEMOTONGMEJA

SINTAKSIS

TRUNCATE TABLE <NAMA_TABEL>

Catatan: Menghapus semua baris dari tabel. Menghapus


baris yang ditentukan adalah

Tidak mungkin. Setelah tabel dipotong, itu otomatis


komit. Itu adalah pernyataan DDL

Menjatuhkanmeja

SINTAKSIS
HAPUS TABEL <NAMBATAS>

Catatan: Tabel dihapus secara permanen. Ini adalah pernyataan DDL.


Ini menghapus data bersama dengan definisi tabel dan tabel.

108
BATASANINTEGRITASREFERENSI

[Link]

ygauneB
datrkglfaO
ispkbeakdtrnegaihjbctrlani

Referensi
Ondeletecascade

erefer icnuk taume kutnu anugrebR


bm aaefteurernesit
m
Referensiealuldbierkianhanyakepadabdiangkuncdiatribealninya.
Sebuah meja dapat memiliki referensi apa pun
Referencekeymenerm i akanNULLdannalidupkila.t

naknikgnme inI . i snerefer nagnedOm


um anad
serleebtecnakscanaud geid
Rekamanatbealnak,ekitakatimenghapusrekamanatbenilduk.

Contoh
Department47473 (Deptno , dname)

Employee47473 (Empno, ename, salary, dno)

Deptno dari Department47473 adalah kunci primer


Empno Karyawan47473 adalah kunci utama
Dno karyawan47473 adalah kunci referensi

Soulsi

SQL>Create table department47473 (deptno number(3) primary key, dname


varchar2(20) Tidak nol);

SQL>Buat tabel employee47473(empno angka(3) kunci utama, ename


varchar2(10)
Tidak boleh null, gaji angka(7,2) periksa(gaji > 0), dno angka(3) mengacu pada
department47473(deptno) pada hapus cascade);

109
110
Anggapalhkasusdm
i anasupermarkem
t enujablerbagabiarangdanpealngganmemesan
. tubesret gnarab-gnarab

SQL>Buat tabel itemmaster (itemno angka (3) kunci utama, itemname


varchar2 (10), nomor stok (3) periksa (stok > 0));

SQL> Buat tabel itemtran (trnno angka (3), itemno angka (3) merujuk
itemmaster (itemno), trndate tanggal, trntype char (1) periksa (upper (trntype) dalam
(‘R’,’I’)), jumlah nomor (3) periksa (stok > 0), kunci utama (trnno, itemno));

Itemmaster
Itemno itemname saham
Itemtran
Trnno itemno trndate trntype kuantitas

Anggaplah kasus di mana dengan setiap transaksi


pelanggan memesan lebih dari satu barang.

HAPUS TABEL <NAMATABEL> CABUT BATASAN


ANALISIS
Menghapus tabel beserta batasan

ALTER TABLE <tablename> DROP PRIMARY KEY CASCADE;

ANALISIS
Menghapus kunci primer bersama dengan kunci Referensi

111
ALTER TABLE <TABLENAME> NONAKTIFKAN KUNCI UTAMA

UBAH TABEL <tablename> NONAKTIFKAN KUNCI UTAMA CASCADE;

Catatan: Tidak mungkin mengaktifkan menggunakan cascade

Lath
ian

Pertimbangkanlembagapelatihanyangmenyelenggarakanberbagakiursusd,m
i ana.
m
anidsusakpagn ,aguJ( susrukiagbrebkutnugnubagrebw sais
uskurutasidrahbeim
agldbaurnegm
aw
sdypnatgias
P
sw iardam patembabyiadram
lnlc.i

ed nad , tubi r ta , lebat isaki f i tnedI

112
MENYATUKAN

Tujuan
Gabungkam
naemungnA
kiannum
dnkatenguO
m
[Link]
eulatbnperadiarem
datpiasnuil

SalahsatufiturpalingkuatdariSQLadalahkemampuannyauntukmengumpulkandan
manipulasi data dari beberapa tabel. Tanpa fitur ini Anda akan
haursmenym
i pansemuaselmendtatyangdpieulrkanunutksaeiptapkiladsialmsaut
m
asgnaylahnm
apiym
nei tm
sautadniatadnakgnisgnatdnekw
aeselbatapnat
.m
ajpaerbe

ag sinej iagabreb nakanuggnm


e tapad at ik ,elcaO
rDi

morP
gfbaenru-qaugi
nL oiakjunk-oeqanu-i
uarlnm
oirPfjera
Giensarbdyuieanrgbdaeinkltan

GabunganSetara

Mengambnilformasdiarelibhidarsiautatbedlenganmembandnigkan(=)
um
m
ornufim
sai.
Unu
tkmenampklianiofrmaksiolmumum

SQL> PILIH EMPNO, ENAME, JOB, SAL, DNAME DARI EMP, DEPT
DIMANA [Link] = [Link];
KELUAR
EMPNO ENAME JOB SAL DNAME
---------- ---------- --------- ---------- --------------
7782 CLARK MANAGER 2450 ACCOUNTING
7839 RAJA PRESIDEN 5000 AKUNTANSI
7934 MILLER KLERK 1300 AKUNTANSI
7369 SMITH CLERK 800 RESEARCH
7876 ADAMS CLERK 1100 RESEARCH
7902 FORD ANALIS 3000 PENELITIAN
7788 SCOTT ANALYST 3000 RESEARCH
7566 JONES MANAGER 2975 PENELITIAN
7499 ALLEN SALESMAN 1600 SALES
7698 BLAKE MANAGER 2850 SALES
7654 MARTIN SALESMAN 1250 SALES
7900 JAMES KERANI 950 PENJUALAN
7844 TURNER SIAGA PENJUAL 1500 PENJUALAN
7521 WARD SALESMAN 1250 SALES

ANALISIS
Efisiensi lebih tinggi ketika kita membandingkan informasi dari data yang lebih rendah
tabel (tabel induk) ke tabel data Tinggi (tabel anak).

Ketika Oracle memproses beberapa tabel, ia menggunakan pengurutan/ penggabungan internal.


prosedur untuk menggabungkan tabel-tabel tersebut. Pertama, ia memindai & mengurutkan tabel pertama
(yang ditentukan terakhir dalam klausa FROM1
)1.3Selanjutnya, ini memindai tabel kedua
(yang satu sebelum terakhir di klausa FROM) dan menggabungkan semua dari
diambil dari tabel kedua dengan yang diambil dari tabel pertama
meja. Itu memerlukan waktu sekitar 0,96 detik
SQL> PILIH EMPNO, ENAME, JOB, SAL, DNAME DARI
DEPT, EMP DIMANA [Link] = [Link];

ANALISIS

Tabel penggerak di sini adalah EMP. Ini memakan waktu sekitar 26,09 detik.
Jadi, efisiensi lebih rendah.

Non-Ekuijoin

Mendapatkaninformasidarilebihdarisatutabeltanpamenggunakanperbandingan
.=
o(rp)ater

MASUK
SQL> PILIH * DARI DEPT DIMANA DEPTNO TIDAK DI
(PILIH DISTINCT DEPTNO DARI EMP);
KELUARAN
DEPTNO DNAME LOC
---------- -------------- -------------
40 OPERASI BOSTON

ANALISIS
Menampilkan rincian departemen di mana tidak ada karyawan

Kitajugadapatmemperolehoutputdiatasmenggunakanoperatoraljabarrelasional.

SQL> PILIH DEPTNO DARI DEPT


MINUS
PILIH DEOTNO DARI EMP;

SQL> PILIH DEPTNO DARI DEPT


UNION
PILIH DEOTNO DARI EMP;
114
SQL> PILIH DEPTNO DARI DEPT
UNION ALL
PILIH DEOTNO DARI KARYAWAN;

OUTERJOIN

eb nakgnubaggnm
e askap araces gnay ,nagnubag halada inI
+.heolum
im
w
orlnudfim
skaD
ia.i

SQL> PILIH EMPNO, ENAME, JOB, SAL, DNAME DARI DEPT, EMP
DIMANA [Link] = [Link](+);

KELUARAN
EMPNO ENAME JOB SAL DNAME
---------- ---------- --------- ---------- --------------
7782 CLARK MANAGER 2450 AKUNTANSI
7839 RAJA PRESIDEN 5000 AKUNTANSI
7934 MILLER KLERK 1300 AKUNTANSI
7369 SMITH CLERK 800 RESEARCH
7876 ADAMS KLERK 1100 PENELITIAN
7902 FORD ANALIS 3000 PENELITIAN
7788 SCOTT ANALYST 3000 RESEARCH
7566 JONES MANAGER 2975 RESEARCH
7499 ALLEN SALESMAN 1600 SALES
7698 BLAKE MANAGER 2850 SALES
7654 MARTIN SALESMAN 1250 SALES
7900 JAMES CLERK 950 PENJUALAN
7844 TURNER SALESMAN 1500 SALES
7521 WARD SALESMAN 1250 SALES
OPERASI

115
SELFJOIN

[Link]
digearbdiuardnegbngltan

SQL> SELECT [Link] || ' SEDANG BEKERJA DI BAWAH ' ||


[Link] DARI PEKERJA EMP, MANAGER EMP
DIMANA [Link] = [Link];
OUTPUT

[Link]||'SEDANG BEKERJA DI BAWAH'||MANAJER


--------------------------------------
SCOTT BEKERJA DI BAWAH JONES
FORD BEKERJA DI BAWAH JONES
ALLEN BEKERJA DI BAWAH BLAKE
WARD BEKERJA DI BAWAH BLAKE
JAMES BEKERJA DIBAWAH BLAKE
TURNER BEKERJA DI BAWAH BLAKE
MARTIN BEKERJA DI BAWAH BLAKE
MILLER BEKERJA DI BAWAH CLARK
ADAMS BERSARAN DI BAWAH SCOTT
JONES BEKERJA DI BAWAH RAJA
CLARK BEKERJA DI BAWAH RAJA
BLAKE BEKERJA DI BAWAH RAJA
SMITH BEKERJA DI BAWAH FORD

ANALISIS
Ini menunjukkan siapa yang bekerja di bawah siapa.
Nomor MGR yang muncul di depan karyawan adalah nomor karyawan dari
manajer

OLAHRAGA

LAMPIRAN KUESIONER III

116
OTHEROBJECTS

OBJEKURUT

Digunakanuntukmenghasilkanurutan(Unik)Bilanganbulatuntukpenggunaankunciprimer.

SINTAKSIS

BUAT SEKUENSI
[TAMBAH OLEHn]
[MULAI DENGANn]
[{MAXVALUEn| NOMAXVALUE}]
[{MINVALUEn| NOMINVALUE}]
[{DAUR | TANPA DAUR}]
[{CACHEn| NOCACHE}];

Urutanadalahnamageneneratorurutan

INCREMENT BY n menentukan interval antara nomor urut di mana n


nas i
aynnaturu ,naktw
ael id ini asualk aki J( regetni
) .1 naktakgninm
e

MULAI DENGAN menetapkan nomor urut pertama yang akan dihasilkan (Jika ini
ausakl
)den1m
[Link],id

MAXVALUEmemastikan nilai maksimum yang dapat dihasilkan oleh urutan ini

NOMAXVALUE menentukan nilai maksimum sebesar 10^27 untuk yang meningkat

dnanautur
)tulafdehaldanii(m
unnuareuturukunt1-
).opis

MINVALUE menentukan nilai urutan minimum

117
NOMINVALUE menentukan nilai minimum 1 untuk urutan yang meningkat
dan–
1(0^2u6nu)tkuarm
nt enadunapIrh(linenguatdrn)eafutl
).opis

CYCLE | NOCYCLE menentukan apakah urutan terus menghasilkan


m
m
iknasuim
uiN
tal(niO
m
haC
npeaiclY
tesC
haL
daliElni
dO
eafutlop)int.

CACHEn| NOCACHEspesifikasikan berapa banyak nilai yang diberikan server Oracle

paorlkdasinmenym
ipandm
iemS
(soeO
vriecdram
,efurtclengc-ach2e0
MiA
dranagkX
uruV
shraAL
iaU
ngkiulrdinESte).ialni

Contoh
BUAT SEKUENSI SQNO47473
MULAI DENGAN 1
TINGKATKAN DENGAN 1
NILAI MAKSIMUM 10;

BUAT SEQUENSI SQNO47473


MULAI DENGAN 1
TAMBAHKAN 1
MAVALUE10
CACHE 3
SIKLUS;

Caatatn-U : ruatnnidisim i pandaalmatbeklamusdaat


USER_SEQUENCES.
Obejkuurm
antienyedaikandufanagnsiggopatukbil

NEXTVALdanCURRVAL

NEXTVALadaalhfungsyiangmenghaskliannalibierkiuntyadaoribejkuruatn
CURRVALadalahfungsiyangmemberikannilaisaatinidariobjekurutan

Anggapadameaj
SAMPLE47473
EMPNO ENAME SAL

Unu
tkmemasukkannakliedalmatbel

118
SQL> MASUKKAN KE SAMPLE47473 NILAI([Link],
'&ENAME', &SAL);

UNTUKMEMODIFIKASIOBJEKURUTAN

SQL>UBAH SEQUEN SI SQNO47473


TAMBAH 2
MAXVALUE 40;

Catatan: Kami tidak dapat mengubah nilai awal

Hapuosbejkuruatnii

SQL> HAPUS SEKUENSI <NAMA_SEKUENSI>;

PANDANGAN

Sebuah tampilan adalah objek, yang merupakan representasi logis dari tabel
Sebuah tampilan tidak mengandung data sendiri.
lebat i rad lasareb ut I
Perubahanyangdibuadttiabeslecaraotomatistercermindalamtampilan
Asaveiwditakmenym i pandatapapunetrkam
ti asalhredundans.i
[Link]
Datakritsdalamtabedlasardilndungsiebagaaikseskedatatersebut
[Link]
i reuk sat iskelm
pok ignarugnm
ekutnu nakanugid inI

im
pat sinej iagabreb taum
m
be tapad at ik ,elcaO
rDi

SM
I PLE KOMPLEKS N
EN
ILI

SM
I PLEveiwadalhatmpalynia,ngdbiuhatanyadenganmenggunakansautbdelasa.r

COMPLEXviewadalahtampilan,yangdibuatmenggunakanlebihdarisatutabelatau
menggunakanfunggsirup

csatonsi t i (yreuqbusgnisudetaercsihciw
h,w
eivasw
ieiN
vEN
ILI
objek.• Ini adalah subkueri bernama di klausa FROM dari kueri utama. Umumnya
digunakan dalam Analisis TOP N.

SINTAKSIS

119
BUAT ATAU GANTI [PAKSA] VIEW <NAMA_VIEW> SEBAGAI PILIH
<KOLOM> DARI <MEJA> [ DENGAN HANYA BACA];

Tabyealngmenadjaipsarndangandseibseubtagtbdaeilsar
OF psOi RCEmemungknikanm t apnldbium
ateskpiuanbtdieatlskarda.
Namun,tabeldasarharusadasebelumtampilandigunakan.

Caatatn-:Pandangannidisim
i pandaalmatbeklamusdaatUSER_VIEWS

SQL> BUAT ATAU GANTI VIEW TESTVIEW47473 SEBAGAI


PILIH
EMPNO,ENAME,SAL DARI EMP47473 DENGAN HANYA BACA;

ANALISIS

WITHCHECKOPTION

O
dngipusinakanunutkmencegahpeurbahanappaunpadatbadealm
saratm
eauliaplni.
d lebat ek naknizi id kadi t nauram
bep nad napisiyneP

SQL> BUAT ATAU GANTI VIEW CHKVIEW SEBAGAI PILIH * DARI EMP
DIMANA DEPTNO = 20 DENGAN OPSI PERIKSA;

dakitum
daktiem
tenkaruA
ganmjigkuIaniotkm
doaelkiosnudbipare
nAkzianinum dkatem kyanrw
uscikrdanegD
anEPTN
[Link]
iels

[Link]
.acabid tapad aynah t luafed araces akeM
re .w
seiN
vEN
ILI

SQL> BUAT ATAU GANTI VIEW SIMPLEVIEW47473 SEBAGAIMANA


PILIH
SUBSTR(HIREDATE,-2) TAHUN, COUNT(*) JUMLAH DARI EMP47473
GROUP BY JOB;

Untuk menghapus tampilan

SQL> HAPUS TAMPILAN <VIEWNAME>;

120
INDeks

[Link]
aubes ,kipot kianm
e naturum
alad nusus idskedni
hadalbukN
ndkm
easim
[Link]
euoiatkrodlaialni
.eO lcaR rknsdeO
gaiW
pim
D
dirIi

[Link]-niadlinairideksyangdnideks
.sibrapaitesm
alm
asdtnaegbm
raknomkneauoitm
lkrodla-
am lpdsbeoaihtrlmenggunakancuom
l npesudokom
l ROWD
I.

MengapaMenggunakanINDeks

INDEXdiORACLEdigunakanuntukduatujuan

ajrnekinkam
ngtkanm
diekindgeaindaatdanapm geU
lukmbeintpaecrpe
kiuer
sqnueuneicorTnofe

121
CaatatnI:ndeksUNIKsecaraootmasitdbiuastaaA
t ndamenggunakanPRIMARY
kuncdianbaatsanunki

Indeksdapam
t emkihlingga32koolm.

SINTAKSIS
BUAT [UNIK] INDEKS nama_indeks PADA tabel(kolom1,kolom2,…);

Caatatn-:Indeksdsim
i pandaalmatbeklamusdaatUSER_INDEXES.

WhenOracleDoesNotUseIndex

[Link],Andatidakpernahharusmembukaataumenutupnya.
anuggnm
e naka hakapa naksutm
um
e elcaO
r [Link]

Bkeiarudtalhkasum
dsianO
aarT
celD
IAKmenggunakanideks.

SELECTditakatkandaalmWHEREkalusa
Saat ukuran data lebih kecil
PILIHmengandungKLAUSULWHEREetat,pK
i LAUSULWHEREditakmeruujkkepada
skednm iolok
PILIHmengandungKEADAANkalusadanKEADAANkalusamenggunakanetnrideks
W
ausaH
m
aklE
[Link]
fdiodiknsdeidiom
ngyakolpiateom
tkol

MenjatuhkanIndeks

SINTAKSIS

HAPUS INDEKS <INDEXNAME>;

Menghapusnidekdsitakmembaatklanapkilasyiangadak,arena
gderauitnktlgkausypinalpdsegantim
daeikt,sa
mem nkildiekdsapm
atempengaurhknieajr.

PSEUDOCOLUMN

122
Sebuah pseudo-kolom adalah kolom yang menghasilkan nilai ketika dipilih tetapi yang
bukankoolmnyadtaabire.l

Conoth

ROWID
ROWNUM
SYADATE
NEXTVAL
CURRVAL
NULL

DkienaselbagaK
ioolm-Pseudo.

PILIHROWSN
, OPEGN
, AMAPEGAWAD
I ARP
IEGAWAI;

TAMPILKAN3KARYAWANDENGANGAJITERTINGGI

SQL> PILIH ROWNUM, EMPNO, ENAME, SAL DARI (PILIH EMPNO,


ENAME,SAL DARI EMP URUTKAN BY SAL DESC)
DIMANA ROWNUM <= 3;

LAMPIRAN

Tabel:Studeis

NAME NULL JENIS


(NAMA) TIDAK NOL VARCHAR2(20) NAME
SPLACE TIDAK NULL VARCHAR2(20) TEMPAT BELAJAR
MATERI KULIAH TIDAK NULL VARCHAR2(20) COURSE STUDIED

TABLE : SOFTWARE

123
NAME NULL ? JENIS
(PNAME) TIDAK NULL VARCHAR2(20) NAME
TITLE TIDAK NULL VARCHAR2(20) DIKEMBANGKAN
PROJECT NAME
DEV_IN TIDAK NULL VARCHAR2(10) BAHASA
DITERAPKAN
SCOST NUMBER(7,2) SOFTWARE COST
DCOST NOMOR(7,2) PEMBANGUNAN
COST
TERJUAL NOMOR(4) NO OF SOFTWARE
TERJUAL

DatainTable:STUDIES

PNAME SPLACE KURSUS COST


ANAND SABHARI PGDCA 45000
ALTAF COIT DCA 7200
JULIANA BIT MCA 22000
KAMALA PRAGATHI DCP 5000
MARY SABHARI PGDCA 4600
NELSON PRAGATI DAP 6200
PATRICK SABHARI DCA 5200
QADIR APEL HDCP 14000
RAMESH SABHARI PGDCA 4500
REBECCA BPILLANI DCA 11000
REMITHA BDPS DCS 6000
REVATHI SABHARI DAP 5000
VIJAYA BDPS DCA 48000

TABLE:SOFTWARE

PNAME TITLE DEV_IN SCOST DCOST TERJUAL


ANAND PARASUT DASAR 399 6000 43
ANAND PAKET PENJUDULAN VIDEO PASCAL 7500 16000 9
JULIANA KONTROL INVENTARIS COBOL 3000 3500 0
KAMALA PAKET PAYROLL DBASE 9000 20000 7
MARY Akun Keuangan S/W ORACLE 18000 85000 4
124
PATRICK GENERASI KODE COBOL 4500 20000 23
QADIR BACA SAYA C++ 300 1200 84
QADIR BOMINA PERAKITAN 750 5000 11
QADIR VAKSIN C 1900 3400 21
RAMESH MANAJEMEN HOTEL DBASE 12000 3500 4
RAMESH MAT LEE PASCAL 599 4500 73
REMITHA UTILITAS PC C 725 5000 51
REMITHA PAKET BANTUAN TSR PERAKITAN 2500 6000 6
REVATHI RUMAH SAKIT PASCAL 1100 75000 2
MANAJEMEN
REVATHI MASTER QUIZ DASAR 3200 2100 15
VIJAYA EDISI ISR C 900 700 6

DatainTable:PROGRAMMER

PNAME Tanggal Lahir DOJ S PROF1 PROF2 SALARY


E
X
ANAND 21-APR-66 21-APR-92 M PASCAL DASAR 3200
ALTAF 02-JUL-64 13-NOV-90 M CLIPPER COBOL 2800
JULIANA 31-JAN-68 21-APR-90 F COBOL DBASE 3000
KAMALA 30-OKT-68 02-JAN-92 F C DBASE 2900
MARY 24-JUN-70 01-FEB-91 F C++ ORACLE 4500
NELSON 11-SEP-85 11-OCT-89 M COBOL DBASE 2500
PATRICK 10-NOV-65 21-APR-90 M PASCAL CLIPPER 2800
QADIR 31-AUG-65 21-APR-91 M PERAKITAN C 3000
RAMESH 03-MAY-67 28-FEB-91 M PASCAL DBASE 3200
REBECCA 01-JAN-67 01-DEC-90 F DASAR COBOL 2500
REMITHA 19-APR-70 20-APR-93 F C PERAKITAN 3600
REVATHI 02-DEC-69 02-JAN-92 F PASCAL DASAR 3700
VIJAYA 14-DEC-65 02-MAY-92 F FOXPRO C 3500

QUERY–I

Temukanarbt-aiypaenujalnunutkpakyeatngdkiembangkandalmPasca.l
Tampilkannamadanusiasemuaprogrammer
Tampilkannama-namamerekayangtelahmenyelesaikankursusDAP
Apa jumlah salinan tertinggi yang dijual oleh sebuah paket

125
Displaythenamesanddateofbirthofalprogrammersbornin
Januair
Tampilkanbiayakursusterendah
BerapabanyakprogrammeryangtelahmenyelesaikanкурсPGDCA?
Berapabanyakpendapatanyangtelahdiperolehmelaluipenjualanpaket
dkiembangkadnam lC
TampilkanperangkatlunakyangdikembangkanolehRamesh
BerapabanyakprogrammeryangbelajardiSabhari?
Tampilkanrincianpaketyangpenjualannyamelewatiangka2000.
Temukaunjmalhnsailnyanghaurdajsgilar
.tpkeainm
pgyeatehbingsaipul
Tampilkanrincianpaketuntukmanabiayapengembangantelah
[Link]
Berapa harga perangkat lunak termahal yang dikembangkan dalam BASIC?
BerapabanyakpaketyangdikembangkandiDBASE?
BerapabanyakprogrammeryangbelajardiPragathi?
Berapabanyakprogrammeryangmembayar5000hingga10000untukkursusmereka?
Berapa rata-rata biaya kursus?
TampilkanrincianparapemrogramyangmengetahuiC
BerapabanyakprogrammeryangmengetahuibaikCOBOLatauPASCAL?
BerapabanyakprogrammeryangtidaktahuPASCALdanC?
Berapausiaprogrammerpriatertua?
Berapa usia rata-rata programmer wanita?
Hitungpengalamandalamtahununtuksetiapprogrammerdantampilkan
abm
serdenaganmna-m
dalnutra,enunr.
Siapa para pemrogram yang merayakan ulang tahunnya selama
m h?nteontrurc
Berapabanyakprogrammerwanitayangada?
Bahasa apa yang diketahui oleh para programmer pria
Berapa gaji rata-rata?
Berapabanyakorangyangmenggambar2000hingga4000?
TampilkanrincianmerekayangtidaktahuClipper,COBOL,atauPascal
Tampilkanrinciandarimerekayangakanmenyelesaikan2tahunlayanan
?ini nuhat
Calculatetheamountoberecoveredforthosepackageswhose
bayiapengembanganbuelmmendapkatnapakah?
D
pyaknsm bruegtam
lfjeskratpnragi?
C athauibraiypaearnguklnatakyangdkiembangkanoelhMayr?
Tampilkannama-namainstitusidaritabelstudiotanpa
dukpialt
Berapabanyakkursusberbedayangdisebutkandalamtabelstudi?
Tampilkannama-namapemrogramyangnama-namanyamengandung2
A’‘ufnahurdaikje

126
Displaythenamesoftheprogrammerswhosenamescontains5
retkarak
BerapabanyakprogrammerwanitayangmengetahuiCOBOLmemilikilebihdari2
ulm
akespneglan
Berapa panjang nama terpendek di tabel pemrogram?
Berapa biaya pengembangan rata-rata dari sebuah paket yang dikembangkan di
COBOL
Displaythename,sex,dob(dd/mm/yyformat),DOJ(dd/mm/yy
margomrepam
ueskutnu) tm
arof
Berapa jumlah yang dibayarkan dalam gaji untuk pemrogram pria yang
daiktTahuCOBOL
Displaythetitle,scost,dcostanddifferencebetweenscostanddcost
hi s i les i rad nurunme naturum alad
Tampilkannama-namapaketyangnamanyamengandunglebihdari1
kata
Tampilkannama,tanggallahir,dantanggalbergabunguntukbulankelahirandanbulandari
maas halada gnubagreb

KUESIONER–II

Displaythecostofthepackagedevelopedbyeachprogrammer
Tampilkannilaipenjualanpaketyangdikembangkanolehmasing-masing
porgarmmer
Tampilkanjumlahpaketyangdijualolehmasing-masingprogrammer
Tampilkanbiayapenjualanpaketyangdikembangkanolehmasing-masingprogrammer
Tampilkansetiapnamabahasadenganrata-ratabiayapengembangan,rata-rata
opycrpeciprgearvnedatonsgcilles

Displayeachprogrammer’sname,costliestpackageandcheapest
pyakndegtimbangkeoahnlya.
Tampilkansetiapnamainstitusidenganjumlahkursus,biayarata-rataper
uskur
TampilkansetiapnamaInstitutdenganjumlahsiswa
Tampilkannama-namaprogrammerpriadanwanita
Tampilkannamaprogrammerdanpaketmereka
TampilkanjumlahpaketdalamsetiapbahasakecualiCdanC++
Tampilkanjumlahpaketdalamsetiapbahasayangmemiliki
devoelpmhestalncoit1s000
Tampilkanrata-rataperbedaanantaraSCOSTdanDCOSTuntuksetiap
anlguage
TampilkantotalSCOST,DCOSTdanjumlahyangharusdipulihkanuntuksetiap
porgarmmeurnutkoarngyangbayianyaBuelmTephruiklan
Displaythehighest,lowestandaveragesalariesforthoseearning
lebih dari 2000

127

Anda mungkin juga menyukai