Panduan Lengkap Server Oracle dan Fitur-Fiturnya
Panduan Lengkap Server Oracle dan Fitur-Fiturnya
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
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]
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
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
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
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
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
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
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
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
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';
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
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
ComparisonOperators
bpnm
aedrganigm
oS anruoem
atspideraneka,brnigeskdpm
irankibal
Tu:R esvhalronU teofF EA ,LSU oEr,nknown.
SELECT * FROM EMP WHERE SAL >= 3000 AND SAL <= 4000;
PILIH * DARI KARYAWAN DI MANA GAJI TIDAK ANTARA 3000 DAN 4000;
BerikutadalahcontohNULL:MisalkansebuahentridalamtabelHARGAtidak
itpershutakm
G
unityim
aqR
unlergadlrieunO
gdukranitgkilH
R
[Link]
: ini
25
PILIH * DARI EMP DIMANA COMM ADALAH NULL;
OperatorKarakter
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
INPUT:
PILIH * DARI EMP DI MANA ENAME TIDAK MIRIP 'A%';
ANALISIS
26
INPUT:
PILIH * DARI EMP DI MANA ENAME SEPERTI '%A%';
ANALISIS
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
INPUT:
PILIH * DARI EMP DIMANA TANGGAL_DIPEKERJAKAN SEPERTI '%81';
ANALISIS
INPUT:
PILIH * DARI EMP DI MANA SAL LIKE '4%';
ANALISIS
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;
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
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.
35
ORDERBYCLAUSE
Tampilkaninformasidalamurutantertentu(MenaikatauMenurun)
panes
Sintaksis
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
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
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
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
MASUKKAN
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
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
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
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:
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
KELUAR
2
ANALISIS
52
MASUK
KELUARAN
4
ANALISIS
KELUARAN
0
ANALISIS
Fungsi ini peka terhadap huruf besar dan kecil; ia mengembalikan 0 (nol) ketika karakter yang diberikan adalah
tidak ditemukan.
MASUK
KELUARAN
6
ANALISIS
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:
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
INPUT:
OUTPUT:
Tanggal Sistem TO_CHAR(SYSDATE,'DD-BUL-YY')
--------- ------------------------------
24-MAR-07 24-MAR-07
INPUT:
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:
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:
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:
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:
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:
OUTPUT:
KE_CHAR(
--------
20:43:12
ANALISIS:
INPUT:
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:
OUTPUT:
TO_CHAR(12567,'L99.999,99')
-----------------------------
Rp12.567.000,00
ANALISIS:
INPUT:
KELUAR:
TO_CHAR(-12567,'L99.999,99PR')
-----------------------------------
<$12,567.00>
ANALISIS:
59
FungsiTanggalDanWaktu
Kitahidupdalamperadabanyangdiaturolehwaktudantanggal,dankebanyakanbesar
pocot snoi tcnufevahQ
LSfosnoi tatnm
eelm
pi
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
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
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
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
NVLsinortesrtcietdotnumberscti,anbeusedwhtiCHARV
,ARCHAR2D
, ATE,
dapnilapedinlteaiytgnhag,aum
rnistpdyieatm
nksgaim
lia.
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
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
ASCI
TemukA
analiSC
dkIairkyetrangdbikeiran
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
74
75
ERRORdenganKLAUSEGROUPBY
Caatatn:
HanyakolomyangdikelompokkanyangdiperbolehkandalamklausaGROUPBY
Setiap kali kita menggunakan fungsi grup dalam pernyataan SQL, kita harus
gunakankalusagroupby.
MASUK
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
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
77
m
etnerpdandanatbajnkarasdarbeijgalaotm
tU
uknam
entlpi
Dengan laporan gaya matriks.
MASUK
KELUAR
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
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
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
ngkL
ungaihantm
irpenugsnkarhatkink,airbedinygadaem
jU
ukngephuats
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
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
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
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
URUTANEKSEKUSI
Here are the rules ORCALE uses to execute different clauses given in SELECT
perintah
LATIHAN
LAMPIRAN–APERTANYAAN2
SubkuerB
i ersarang
Nesnitgadaalhnitdakanmenyemaktansubkuerdidiaalmsubkueralininya.
SN
I TAKSS I
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
Query
m
nim
uam
indarksum
ntadidarbenyaijgaw
ynagm
erkasnU
uknam
entlpi
igja
MASUK
91
Tampilkansemuakaryawanyangmendapatkankomisimaksimumdi
iasgoanri
Kueri
Tampilkansemuakaryawandaridepartemen30yanggajinyakurangdarimaksimum
m
[Link]
SubkueriMultirow
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
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.
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.
Oraclesecaraotomatismembuatindeksunikuntukkolomtersebut.
TIDAKNULKeunikantidakterjagadannilainoltidakdapatditerima.
TeAnS
tuK
kanIkRoEndPisiyangharusdipenuhisebelumpenyisipan
dapnembaurakdnluikan.
DDL(BahasaDefinisiData)
CreateA
, lterD
, rop
BuatTabel
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:
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
KELUARAN
CONSTRAINT_NAME CONSTRAINTTYPE SEARCH_CONDITION
------------------------------ - ------------------------------------------------------------------------------
SYS_C003018 C "ENAME" TIDAK NULL
PK_EMPL47473_EMPNO P
SYS_C003022 U
ANALISIS
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
99
ALTERTABEL
Digunakanuntukmemodifikasistrukturtabel
SINTAKSIS
ALTER TABLE <NAMA_TABEL> [ TAMBAH | UBAH |
DROP | RENAME] ( KOLOM(S));
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, …..);
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
SQL>ROLLBACK;
ANALISIS
SIMPANTAHAP
KitadapatmenggunakantitiksimpanuntukmengembalikansebagiandarisettransaksiAndasaatini
Conhtya
SQL> SAVEPOINT A
SQL> SAVEPOINT B
102
SQL> MASUKKAN KE DALAM EMPL47473
VALUES(107,'RADHA','F',
‘RADHA_V@[Link]’,15000,’15-JAN-2002’);
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
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
MEMPERBARUIBARIS
Pnedaigrthiunakanunutkmengubahdatbatel
SINTAKSIS
106
SQL> PERBARUI EMP47473 SET SEX = 'M' DIMANA ENAME DITEMUKAN
(‘KING’,’MILLER’,’BLAKE’);
SQL> KOMIT / GULUNG BALIK;
SQL> PILIH * DARI EMP47473;
NULL;
SQL> COMMIT / ROLLBACK;
SQL> PILIH * DARI EMP47473 ;
107
MENGHAPUSBARIS
SINTAKSIS
MEMOTONGMEJA
SINTAKSIS
Menjatuhkanmeja
SINTAKSIS
HAPUS TABEL <NAMBATAS>
108
BATASANINTEGRITASREFERENSI
[Link]
ygauneB
datrkglfaO
ispkbeakdtrnegaihjbctrlani
Referensi
Ondeletecascade
Contoh
Department47473 (Deptno , dname)
Soulsi
109
110
Anggapalhkasusdm
i anasupermarkem
t enujablerbagabiarangdanpealngganmemesan
. tubesret gnarab-gnarab
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
ANALISIS
Menghapus kunci primer bersama dengan kunci Referensi
111
ALTER TABLE <TABLENAME> NONAKTIFKAN KUNCI UTAMA
Lath
ian
Pertimbangkanlembagapelatihanyangmenyelenggarakanberbagakiursusd,m
i ana.
m
anidsusakpagn ,aguJ( susrukiagbrebkutnugnubagrebw sais
uskurutasidrahbeim
agldbaurnegm
aw
sdypnatgias
P
sw iardam patembabyiadram
lnlc.i
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
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).
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.
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
ANALISIS
Ini menunjukkan siapa yang bekerja di bawah siapa.
Nomor MGR yang muncul di depan karyawan adalah nomor karyawan dari
manajer
OLAHRAGA
116
OTHEROBJECTS
OBJEKURUT
Digunakanuntukmenghasilkanurutan(Unik)Bilanganbulatuntukpenggunaankunciprimer.
SINTAKSIS
BUAT SEKUENSI
[TAMBAH OLEHn]
[MULAI DENGANn]
[{MAXVALUEn| NOMAXVALUE}]
[{MINVALUEn| NOMINVALUE}]
[{DAUR | TANPA DAUR}]
[{CACHEn| NOCACHE}];
Urutanadalahnamageneneratorurutan
MULAI DENGAN menetapkan nomor urut pertama yang akan dihasilkan (Jika ini
ausakl
)den1m
[Link],id
dnanautur
)tulafdehaldanii(m
unnuareuturukunt1-
).opis
117
NOMINVALUE menentukan nilai minimum 1 untuk urutan yang meningkat
dan–
1(0^2u6nu)tkuarm
nt enadunapIrh(linenguatdrn)eafutl
).opis
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;
NEXTVALdanCURRVAL
NEXTVALadaalhfungsyiangmenghaskliannalibierkiuntyadaoribejkuruatn
CURRVALadalahfungsiyangmemberikannilaisaatinidariobjekurutan
Anggapadameaj
SAMPLE47473
EMPNO ENAME SAL
Unu
tkmemasukkannakliedalmatbel
118
SQL> MASUKKAN KE SAMPLE47473 NILAI([Link],
'&ENAME', &SAL);
UNTUKMEMODIFIKASIOBJEKURUTAN
Hapuosbejkuruatnii
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
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
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
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
LAMPIRAN
Tabel:Studeis
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
TABLE:SOFTWARE
DatainTable:PROGRAMMER
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