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

BAZAT E T DHNAVE

1












BAZAT E T
DHNAVE
(HYRJE)






BAZAT E T DHNAVE


2











ACCESS
























BAZAT E T DHNAVE


3
1.ka sht baza e t dhnave

Baz e t dhnave sht fardo grumbulli informatash t organizuara n
grup.Informatat duhet t jen t organizuara ashtu q leht mund t ju qasemi .P.SH.
notesi i numrave t telefonit sht nj baz e t dhnave jo e kompjuterizuar.sht e
organizuar me renditje alfabetike dhe prmban informacion pr emrin,adresn dhe numrin
e telefonit.Pra ne i qasemi nj numri t telefonit n baz t emrit.N bazat e mdha
elektronike t cilat mirmbahen n kompjuter na mundsohet q t manipulojm m leht
dhe m shpejt me t dhnat.
Programet q ngrthejn n vete baza t t dhnave si jan Microsoft Access ose
Microsoft FoxPro, t shumtn e rasteve jan t tipit server pr datoteka sepse m s shumti iu
dedikohen bazave q manipulohen vetm nga nj shfrytzues, prderisa programet si Microsoft
SQL Server, Oracle ose Informix jan t tipit klient/server sepse natyra e puns s tyre, m s
shumti ndrtohet mbi parimin e puns me shum shfrytzues.
S pari ushtrimet do ti fillojm me ACCESS dhe pastaj do t kalojm n MYSQL.
ACCESS sht nj program i Microsoftit pr baza t t dhnave, pra sht pjes e Microsoft
Office.

2. Krijimi i nj baze t t dhnave

Me krijimin e nj baze t t dhnave n ACCESS ne krijojm nj vend pr
tabelat,format,pyetsort,raportet si edhe pr objektet tjera t bazs.Nse krijojm nj baz t re
ather duhet q ti krijojm tabelat,pyetsort dhe objektet tjera vet.N t njjtn koh mund t
shfrytzojm Database Wizard pr krijimin e bazs.

Me startimin e ACCESS-it klikojm n New n toolbar pastaj klikojm n Blank
Database i vm emrin asaj baze t t dhnave dhe e ruajm, pastaj hapet dritarja:


BAZAT E T DHNAVE


4
Kjo dritare prmban objektet e bazs t t dhnave (n ann e majt t dritares) :

a) Tabelat (Tables)
b) Pyetsort (Queries)
c) Format (Forms)
d) Raportet (Reports)
e) Faqet (Pages)
f) Makrot (Macros)
g) Modulet (Modules)
Ndrsa n ann e djatht sht lista pr krijimin e atyre objekteve.


Tipi i objektit

Prshkrimi
Tabela

Ky objekt definon strukturn e nj baze n Access.Tabelat prmbajn numr t
madh t dhnash n rreshta dhe n kolona.Kto t dhna mund
t futen, ndryshohen, ruhen dhe t kthehen.

Pyetsori

sht mnyr pr krkimin e informacioneve n tabel.Kur ekzekutojm
nj pyetsor, t dhnat paraqiten n t quajturin Recordset.Pastaj kto t
dhna mund t ndryshohen ose t shtypen (printohen).

Forma

Lejon futjen e t dhnave, shikimin si dhe ndryshimin e tyre.Forma mund t
shfrytzohet si alternativ pr paraqitjen e t dhnave n rreshta dhe n
kolona.

Raporti

sht dizajn pr t dhnat q do t shtypen(printohen).Raportet prfshijn
raportet nga baza e t dhnave.N raporte poashtu mund t kryhen llogaritje
matematikore.

Faqja

sht nj web faqe q mund ti qasemi dhe t punojm me bazn e t dhnave
n Access prmes internetit dhe intranetit.

Makro

sht nj varg i urdhrave t cilat ekzekutohen si nj.

Moduli

Ky objekt prmban aplikacione t Visual Basic me t cilat mund t ndryshojm
funksionet n baz t t dhnave.


Ushtrime

Krijoni nj baz t t dhnave me emrin BANKA.mdb.
BAZAT E T DHNAVE


5
Tabelat

N Access jan pes hapa pr dizajnimin e tabelave.Hapi i par prfshin kuptimin e
sistemit duke prfshir t dhnat q do t futen, raportet q do t nxirren, emrat si dhe ka
do t gjenerohet nga t dhnat si dalje.Hapi i dyt prfshin prcaktimin e numrit t
tabelave q duhen dhe informacioni q do t ruhet n ato tabela.Pra vendimi se sa tabela
do ti ket baza e t dhnave sht shum i rndsishm.Hapi i tret sht pr dizajnimin
e tabelave duke vendosur se cilat fusha do ti prmabj, far tipi i t dhnave do t futen
n seciln fush dhe madhsia e fushave.Hapi i katrt prfshin emrin e tabels dhe n
fund n hapin e pest testimi i strukturs s tabels.Ky hap sht shum i rndsishm pr
faktin se na ndihmon t prcaktojm se cilat fusha nuk jan t prfshira si dhe ndonj
gabim n madhsin e tyre.Pastaj tabela mund t modifikohet.

Krijimi i tabels n Design View

Tabela sht temel i bazs t t dhnave.T gjith pyetsort, raportet dhe format i
shfrytzojn fushat dhe t dhnat nga tabela si baz pr dalje.Duhet q s paku t krijojm
nj tabel para se t krijojm objektet tjera n baz t t dhnave.Kur t krijojm nj
tabel t re duke shtypur New hapet nj dialog ku mund t zgjedhim mnyrn e krijimit t
tabels: Datasheet View, Design View, Table Wizard, Import Table pr importimin e t
dhnave nga ndonj burim dhe Link Table pr lidhjen e t dhnave nga ndonj burim.
Krijimi i tabels n Design View na jep kontroll m shum mbi dizajnimin e tabels. Pra
zgjedhim Design View dhe shtypim OK dhe hapet kjo dritare.



Dritarja n Design View sht e ndar n dy pjes.Pjesa e lart prmban vendin ku e
shfrytzojm pr futjen e emrit t fushs, tipit t t dhnav n at fush si dhe
prshkrimin e saj.Pjesa e poshtme e dritares prmban karakteristikn e fushs s zgjedhur.


BAZAT E T DHNAVE


6
Emri i fushs

N pjesn e siprme t Design View te Field Name mund t fusim emrin e fushs. Emri i
fushs identifikon t dhnat n at fush si: ID, Emri, Mbiemri etj.Emrat e fushave mund
t jen t gjat 64 karakter dhe t prmbajn shkronja, numra dhe hapsira (por jo t
fillojn me hapsir).Emri i fushs nuk mund t ket pik( . ),pikuditse( ! ), kuot ( ` ),
kllapat e mesme ( [ ] ).Emrat e fushave duhet t jen unik.

Caktimi i tipit t t dhnave

Secila fush ka nj tip t t dhnave.Tipi i t dhnave i tregon Access-it se far vlera
doni t ruani n at fush dhe sa hapsir t rezervoj pr at fush.N fushn Data Type
zgjedhim tipin e t dhnave.


Tabela e mposhtme prshkruan tipet e t dhnave n dispozicion nga Access-i.



Tipi i t
dhnave
Prshkrimi
Text

Text sht nj tip i t dhnave q prmban do kombinim t shkronjave,
numrave, shenjave t piksimit dhe hapsirs.Ku si mundsi e
parazgjedhur sht 50 karakter ndrsa maksimumi sht 255 karakter.

Memo

Memo sht e ngjashme me Text vetm se Memo mund t prmbaj deri
65.535 karakter.Memo mund t shfrytzohet pr shnime dhe pr
prshkrime t gjata n baz t t dhnave.

Number

Fusha Number mund t prmbaj vetm karakter numerik, presjen (pr
mijshe), pikn (pr pik decimale) dhe minus (vij, pr shenj t
numrave negativ).Number shfrytzohet vetm kur kemi t bjm me
kalkulime me vlerat e fushave.P.SH. edhe pse zip kodi dhe numri i
telefonit prmbajn numra ato nuk do ti prdorim pr kalkulime.Pr at
ato nuk duhen t jen t tipit Number.

Date/Time

Date/Time prmban datn dhe/ose kohn.Access-i automatikisht
vlerson futjen e dats duke u siguruar se sht valide.P.SH. Nse dojm
t fusim datn 31/02/1999 Access-i nuk do ta lejoj sepse muaji Shkurt
nuk i ka 31 dit.Fusha Date/Time sht e prdorshme pr kalkulimin e
dats dhe kohs.
BAZAT E T DHNAVE


7
Currency

Currency sht e ngjashme me fushn Number dhe mund t prdoret pr
kalkulime.Numrat n kt fush paraqiten automatikisht me shenjn e
dollarit.

AutoNumber

Tipi i t dhnave AutoNumber automatikisht cakton numrin unik(prej 1)
secils t dhn.Nuk mundemi t fusim vler n nj fush ku m par
Access-i ka caktuar vlern.Kt tip t t dhnave e prdorim kur dojm
q t kemi identifikim unik pr seciln t dhn.

Yes/No

Fusha Yes/No shnon dy kondita PO dh JO.Ky tip i t dhnave prdoret
kur ekzistojn vetm dy mundsi (P.SH. e sakt dhe jo e sakt) pr
vlern e fushs.

OLE Object

Fusha OLE Object lidh at fush me nj aplikacion t Windows-it.Tipi i
t dhnave OLE Object prdoret pr grafik ose audio datoteka.

Hyperlink

Fusha Hyperlink shfrytzohet pr lidhjen me ndonj faqe n internet,
document t Word-it n intranet ose edhe form n baz t t
dhnave.Hyperlink mund t prmbaj prshkrim, adres dhe nn
adres.Secila pjes sht e ndar me shenjn # dhe mund t prmbaj
2.048 karakter.

Lookup
Wizard

Me zgjedhjen e tipit t t dhnave Lookup Wizard na udhheq n
krijimin e fushs Lookup.Fusha Looup mund t prmbaj list t vlerave
nga ndonj tabel ose list t vlerave q i japim ne.


Prshkrimi i fushave

N fushn Description shkruajm prshkrimin pr seciln fush (Field Name).

Vnia e elsit primar (Primary Key)

Access-i punon n mnyr m efikase nse vejm elsin primar n tabel.elsi primar
sht nj fush ose nj grup i cili n mnyr unike identifikon do t dhn.Pr at vlera
n fushn ku sht elsi primar duhet t jet unike n at tabel.Jan shum prparsi me
vnien e elsit primar.S pari elsi automatikisht indeksohet gj q e bn gjetjen e
informacionit m shpejt.S dyti kur e hapim tabeln t dhnat sortohen sipas elsit
primar.Dhe n fund elsi primar ndalon futjen e vlerave t dyfishta n fushn me els
BAZAT E T DHNAVE


8
primar.M s lehti sht q si els primar t vehet fusha me tipin e t dhnave
AutoNumber.elsi primar nuk mund t vihet n fushat ku tipi i t dhnave sht Memo,
OLE ose Hyperlink.Pr t krijuar els primar n m shum se nj fush mbajm pulln
CTRL t shtypur dhe zgjedhim fushat q dshirojm pastaj klikojm n pulln Primary
Key.

Karakteristikat(tiparet) e fushs (FIELD PROPERTIES)

Secila fush ka nj varg tiparesh q kontrollojn mnyrn se si ruhet n tabel.
Vendosja e tipareve t fushs ndihmon n ndrtimin e nj baze t qndrueshme sepse ato
do t prdoren pr forma dhe raporte dhe pr at n hapat e mtutjeshm t dizajnimit t
bazs do t kemi m pak pun.Normalisht vnia e tipareve t fushs bhet kur t krijojm
tabeln me Design View.Tiparet e fushs jan n panelin Field Properties n Design
View.Disa prej atyre tipareve jan t listuara n tabeln e mposhtme.


Tipari i fushs Prshkrimi
Field Size
Limiton numrin e karakterve n fushn Text ndrsa te Number
cakton intervalin n t cilin mund t jen numrat
Format Kontrollon t dhnat se si do t paraqiten n Datasheet View
Decimal Places Numri i decimaleve pas piks dhjetore
Input Mask
Prcakton modelin se si do t futen t dhnat, si p.sh. shenja te
numrat e telefonit
Caption
Saktson emrin tjetr t fushs i cili do t paraqitet n tabel, form
dhe raport
Default Value
sht vler e parazgjedhur nse shfrytzuesi nuk jep ndonj vler pr
at fush
Validation Rule
Kufizon q t dhnat e futura ti plotsojn kushtet e caktuara.
P.SH. caktojm q n fushn mimi vlera mos ta kaloj vlern 25
Validation Text sht teksti q do t paraqitet nse thyhet rregulla Validation Rule
Required
Prcakton se fusha nuk duhet t lihet boshe ( e pa plotsuar) kur t
fusim t dhna
Allow Zero
Length
Prcakton nse mund ti fusim t dhnat si thonjzat ( )
Indexed
Shpejton kthimin e t dhnave n fush.T gjith elsat primar
automatikisht indeksohen

Formatet pr tipin e t dhnave Field Size

Kur t caktojm madhsin e fushs (Field Size) mund t fusim t dhna aq sa na lejojn
parametrat e vn.Pasi t shtypim numrin maksimal t numrave nuk na lejohet m t
fusim t dhna n at fush.Madhsin e fushs mund ta vm pr Text, Number si dhe
AutoNumber.Pr Text thjesht shkruajm numrin e dshiruar t karakterve q do t lejon
BAZAT E T DHNAVE


9
t futen n nj fush (numri maksimal 255 karakter).Pr Number kemi disa opcione tjera
t listuara n tabeln e mposhtme.

Madhsia e fushs Intervali
Numrat pas piks
dhjetore
Byte Prej 0 deri 255
Asnj, t dhnat
rrumbullaksohen
Integer Prej -32768 deri 32767
Asnj, t dhnat
rrumbullaksohen
Long Integer
-2,147,483,648 deri
2,147,483,647
Asnj, t dhnat
rrumbullaksohen
Single -3.4 x 10
38
deri 3.4 x 10
38
Deri n 7
Double -1.797x10
308
deri1.797x10
308
Deri n 15
ReplicationID Identifikues unik global Jo n dispozicion



Formatet pr tipet e t dhnave Text dhe Memo


Access-i prdor katr simbole pr Format n Text dhe Memo:

@ tekst karakter ( karakter ose hapsir)

& nuk krkohet tekst karakter

< t gjith karaktert n at fush i konverton n shkronja t vogla

> t gjith karaktert n at fush i konverton n shkronja t mdha

Q emrat t paraqiten me shkronja t mdha pra n Format shkruajm >, ndrsa pr tu
paraqit emrat me shkronja t vogla prdorim <.
Pr numrat e telefonit shruajm @@@/@@@-@@@
Pra nse shkruajm 044123456 numri n fush do t paraqitet 044/123-456.
Mund t krijom edhe forma t tipit dypjessh.Kto dy pjes ndahen me
;(pikpresje).Ku n pjesn e par e shkruajm formn se si do t jet numri nse fusim
ndonj t dhn ndrsa n pjesn e dyt nse nuk fusim ndonj t dhn.
P.SH. @@@/@@@-@@@;I panjohur[RED]
Pra numri i shkruar 044123456 do t paraqitet 044/123-456 ndrsa nse nuk shkruajm
asgj ather n at fush do t shkruhet I panjohur me ngjyr t kuqe.

Formati: >&&&-Q@@@
Shkruhet: abc400
Paraqitet: ABC-Q400

BAZAT E T DHNAVE


10

Formatet pr tipet e t dhnave Number dhe Currency

Mund t zgjedhim nga gjasht formatet t paradefinuara t listuara n tabeln e
mposhtme:


Tipi Numri i futur Paraqitja e numrit Formati
General 987654.321 987654.3 # # # # # # #. #
Currency 987654.321 $987,654.32 $# # #,# #0.00
Fixed 987654.321 987654.32 # # # # # #.# #
Standard 987654.321 987,654.32 # # #,# # #.# #
Percent .987 98.7% # # #.# #%
Scientific 987654.321 9.88E+05 # # #E+00
Euro 987654.321 987,654.32 # # #,# # #. # #




Shenja Prshkrimi
. dhe ,
Pdorimi i shenjs pr ndarjen e shifrave
dhjetore si dhe shenjs ndarse pr vlerat
mijshe.
0 Zvendsuese pr shifrat ose pr 0
#
Zvendsuese pr shifrat ose pr asnj
shenj
% Prezanton vlern n prqindje


Por mund t krijojm edhe formatet sipas dshirs, pr pjesn numerike formati sht n
katr pjes ku pjesa e par(1) sht pr numr pozitiv,pjesa e dyt(2) pr numr negative,
pjesa e tret(3) pr vlern zero dhe pjesa e katrt pr vlern boshe.
P.SH. # #,# #0.00[GREEN];( #,# #0.00)[RED];ZERO;BOSHE
Ky format do ti paraqes numrat pozitiv me ngjyr t gjelbr, numrat negative me ngjyr
t kuqe, ku ka vler 0 do t shkruhet ZERO dhe ku nuk shkruhet asgj do t jet
BOSHE.

BAZAT E T DHNAVE


11
Shembuj

N nj tabel kemi dy kolona njra pr emrin e mallit e tipit Text dhe tjetra pr sasin e
atij malli e tipit Number.ka duhet br q t dhnat n kolonn pr sasin e mallit t
paraqiten n formn :

Malli Pesha
Domate 30 kg
Dardha 45 kg
Moll 50 kg

Duhet q n Design View pr fushn Pesha te Format t shkruajm # kg.

Formatet pr tipin e t dhnave Date/Time


Format Prshkrimi
General Date
Nse vlera sht vetm data ather ora nuk paraqitet.Nse vlera
sht vetm ora ather data nuk paraqitet
Long Date Dita dhe muaji shkruhen sikur Tuesday, July 6, 2005
Medium Date sht e tipit 06-Jul-2005
Short Date 7/6/2005
Long Time
Ora paraqitet me or, minuta dhe sekonda t ndara me dy pika dhe e
pasuar me AM ose PM sikur 6:30:15 PM
Medium Time sht e njjt si Long Time vetm se sekondat nuk paraqiten
Short Time Ora paraqitet n formatin 24-orsh pa sekonda sikur 18:30

: Ndars i kohs si p.sh. 12:34:23
/ Ndars i dats si p.sh. 12/06/2004
c Njsoj si General Date
d, dd Dita e muajit-nj ose dy shifra numerike (1-31)
ddd Tri shkronjat e para t ditve (Sun-Sat)
dddd Emri i plot i ditve
ddddd Njsoj si Short Date
dddddd Njsoj si Long Date
w Dita e javs (1-7)
ww Vikendi i vitit (1-53)
m, mm Muaji i vitit (1-12)
mmm Tri shkronjate para t muajit (Jan-Dec)
mmmm Emri i plot i muajit (January-December)
q Data e shfaqur si qerek i vitit (1-4)
y Dita e vitit (1-366)
BAZAT E T DHNAVE


12
yy Dy shifart e fundit t vitit
yyyy Viti i plot (0100-9999)
h, hh Ora- nj ose dy shifra numerike (0-23)
n, nn Minutat-nj ose dy shifra numerike (0-59)
s, ss Sekondat-nj ose dy shifra numerike (0-59)
ttttt Njsoj si Long Time
AM/PM ose A/P Ora (1-12) me shkronja t mdha
am/pm ose a/p Ora (1-12) me shkronja t vogla
AMPM Ora e definuar me Windows Regional Settings

Shembuj

T paraqitet data n formn :
1. dita/muaji/viti
2. tri shkronjat e para t ditve
3. si qerek
4. emri i plot i muajit

Fomatet pr Yes/No

N tipin e t dhnave Yes/No mund t definojm formatet edhe sipas dshirs. Formati
n tipin e t dhnave ndahet n tri pjes.Ku pjesa e par nuk ndonj efekt por duhet q
gjithnj t jet shenja ; (pikpresje), pjesa e dyt prdoret pr vlern On ose True, pjesa e
tret prdoret pr vlern Off ose False.P.SH. nse dojm q t shkruajm se nj student
sh i pranishm dhe jo i pranishm, kjo shkruhet kshtu ;i pranishm;Jo i
pranishm.Nse dshirojm q ti paraqesim vlerat me ngjyra ather shkruajm: ;I
pranishm[RED];Jo i pranishm[GREEN].



Formatet pr tipin e t dhnave Hyperlink

Formati pr kt tip t t dhnave ndahet n tri pjes:

Teksti q shfaqet n fush
Adresa, shtegu deri te datoteka (UNC) ose web faqe (URL) n internet
Nnadresa, lokacion specific n datotek ose faqe.

Pjest ndarse ndahen mes veti me simbolin #. P.SH.

Web faqja e Microsoft Net#http://www.msn.com


BAZAT E T DHNAVE


13
Input Mask

Pr tu siguruar se t dhnat do t futen n mnyr t duhur krijojm Input Mask.
Input Mask na lejon t definojm me an t kriterit se si do t futen t dhnat n fush.


0
Numr ( 0-9; hyrja e detyrueshme;[+] dhe
[-] nuk lejohen)
9
Numr ose hapsir (hyrja jo e
detyrueshme; [+] dhe [-] nuk lejohen)
#
Numr ose hapsir ( hyrja e jo e
detyrueshme, [+] dhe [-] lejohen)
L Shkronj (A-Z, hyrja e detyrueshme)
? Shkronj (A-Z, hyrja opcionale)
A Shkronj ose numr (hyrja e detyrueshme)
a Shkronj ose numr (hyrja opcionale)
&
fardo karakteri ose hapsir (hyrja e
detyrueshme)
C
fardo karakteri ose hapsir (hyrja e
opcionale)
<
Konverton t gjith karaktert pas saj n
shkronja t vogla
>
Konverton t gjith karaktert pas saj n
shkronja t mdha
!
Detyron input mask t plotsohet nga e
majta n t djatht.
\
Paraqet karakterin pas saj p.sh. \A paraqet
A
. , : ; - /
Pika dhjetore,pr mijshe,ndarsit e dats
dhe kohs


Megjithat m leht pr t vn Input Mask sht me Input Mask Wizard.
Ku aty na jepen mundsi t shumta dhe t gatshme.

Shembuj

Input Mask Shkrimi Paraqitja
>LL000 af345 AF345
000 000 00 50540130 505 401 30
90/90/0000 01121997 01/12/1997


BAZAT E T DHNAVE


14
Decimal Places

Tipari i fushs Decimal Places sht valid pr t dhnat numerike dhe Currency. Numri i
decimaleve mund t jet prej 0 deri n 15 varsisht nga madhsia e fushs numerike ose
Currency. Nse fusha sht Byte, Integer ose Long Integer do t kemi 0 vende decimale.
Nse fusha sht Single ather kemi prej 0 deri n 7 vende decimale,nse fusha sht
Double ather kemi prej 0 deri n 15 vende decimale.Nse definojm fushn si Currency
ather Access-i e vn numrin e decimaleve n 2.


Validation Rule dhe Validation Text

Tipet Date/Time, Number dhe Yes/N/ t fushave q n instalimin standard t programit
kan t integruara funksionet e shqyrtimit t vlefshmris s t dhnave.Kshtu pr
shembull`n qoft se do t shkruani vlern 31.02.05 n fushn e dats apo nj shifr n
nj fush numerike, do t pasoj fj njoftim pr shkrim t ga`uaz d t dhnave.Opsionet
Validation Rule dhe Validation Text t fushave ofrojn mundsi t tjera pr t kufizuar
hedhien e gabuar t t dhnave n bazn e t dhnave.

R2egull vlefshmrie mund t specifikoni pr do fush t nj tabele.Me kt
prcaktim kufizohet ndieshm hedhja e gabuar e t dhnave.N opsionet
Validation Rule mund t formuloni njoftimin e gabimit.
Pr t informuar prdoruesin e bazs s t dhnave n rast t shkeljes t rregullit
t vrtetsis mund t prpiloni njoftime prkatse pr do fush.Njoftimet e
vrtetsis realizohen n opsionet Validation Text t fushave prkatse.


Operator krahasimi, vler krahasimi

Si operator krahasues mund t prdorni shenjat krahasuese ( = < > ) si dhe
operatorin krahasues LIKE
Vlera e krahasimit pr kufizimin e vlerave t t dhnave n rastin e prdorimit t
operatorit LIKE mund t prmbaj edhe shenj zvendsuese.
N rast se pr nj fush ju duhet t prcaktoni m shum se nj rregull, mund t
prdorni operatorin lidhs AND/OR dhe NOT/BETWEEN.
Si vlera krahasimi mund t prdoret edhe rezultati i nj funksioni, si pr shembull
rezultati i funksionit t dates aktuale DATE().

Shembuj
Number >=5
Date/Time <#12.01.2005#
Text >A
Yes/No <>Yes


BAZAT E T DHNAVE


15
LIKE #*
Shkrimi mund t filloj me nj shifr dhe
m pas mund t vijoj me nj numr
fardo shenjash t ndryshme
LIKE #####
Lejohet t shkruhen vetm numra
pesshifror
LIKE [XY]
E dhna q shkruhet duhet t prmbaj nj
X ose nj Y
LIKE [A-Z]
Lejohet t shkruhen vetm shkronjat e
mdha t alfabetit
Vetur or Shtpi >=Date()
Between 3 AND 100 LIKE [1-9] AND LIKE [!6]
NOT Between 3 AND 100 >#1.1.1850# AND <Date()



Ruajtja e tabels

Pas dizajnimit t tabels duhet q at ta ruajm duke i dhn emr.Emri mund t
prmbaj deri 64 karakter duke prfshir edhe hapsirn.Kta karakter mund t jen
shkronja, numra dhe hapsira.Emri nuk duhet t prmbaj pik ( . ), pik uditse ( ! ),
kuota ( ` ), kllapa t mesm ( [ ] ) .Me ruajtjen e tabels nuk krijohet nj datotek e re por
i shtojm nj objekt datoteks s bazs t t dhnave.


Krijimi i tabels me Table Wizard

Nj ndr mnyrat e krijimit e tabelave sht edhe Table Wizard (magjistari i tabels). Me
an t Table Wizard i tr krijimi i tabels bhet me an t modeleve dhe shablloneve t
tipit biznes ose personal.

Ushtrime

N bazn e t dhnave BANKA krijoni tabeln KLIENTT me kto fusha:
Numri i llogaris
Emri
Mbiemri
Qyteti
Adresa
Tel

Si dhe definoni tipin e t dhnave pr kto fusha.Shkruani prshkrimin pr seciln fush
dhe si els primar t jet fusha Numri i llogaris.


BAZAT E T DHNAVE


16
N bazn e t dhnave BANKA krijoni tabeln KREDIT me kto fusha:
ID
Numri I llogaris
Tipi i kredis
Shuma
Prqindja
Kohzgjatja e kredis
Aprovimi
Fillimi
ID Nnpunsit
Si dhe definoni tipin e t dhnave pr kto fusha.Shkruani prshkrimin pr seciln fush
dhe si els primar t jet fusha ID.

N bazn e t dhnave BANKA krijoni tabeln NNPUNSIT m kto fusha:
ID Nnpunsit
Emri
Mbiemri
Filiala
Si dhe definoni tipin e t dhnave pr kto fusha.Shkruani prshkrimin pr seciln fush
dhe si els primar t jet fusha ID Nnpunsit.

Datasheet View
Tabela hapet n Datasheet View.Datasheet View sht e prshtatshme pr futjen,
prmisim ose fshirje t t dhnave n tabel.
T dhnat jan t radhitura n rreshta dhe shtylla.Kalimi nga nj e dhn te tjetra bhet
me



n fund t tabels.
Shtimi i t dhnave bhet n Datasheet View.
Ushtrime
I shtoni kto t dhna n tabeln KLIENTT:

Numri i
llogaris
Emri Mbiemri Qyteti Adresa Tel
140201 Bujar Shulemaja Prishtin
Bregu i
Diellit
044/123-456
140202 Amir Simnica Fush Kosov
rr. Agim
Ramadani
044/321-654
140203 Valbona Krasniqi Dardan
rr. Adem
Jashari
044/213-546
140204 Gani Thai Besian
rr. Zahir
Pajaziti
044/312-645
140205 Lavdim Kastrati Prishtin
Tophane

044/132-465
BAZAT E T DHNAVE


17
I shtoni kto t dhna n tabeln KREDIT:

ID
Numri
i
llogaris
Tipi
i
kredis
Shuma Prqindja
Kohzgjatja
e
kredis
Aprovimi Fillimi
ID
Nn
1 140203 Vetur 4500 6 12 po
10/04/
2006
3
2 140205 Mobile 1300 7.5 6 po
23/08/
2006
1
3 140201 Vetur 7000 5.5 36 po
15/02/
2005
1
4 140203 Shtpi 45000 4.7 120 jo
20/05/
2005
3
5 140202 Kompjuter 630 7 12 po
12/07/
2006
4
6 140204 Kuzhin 1000 4 12 po
04/09/
2005
2
7 140205 Lavatrie 420 3 6 po
05/06/
2006
1
8 140201 Mobile 1730 5.8 12 po
02/10/
2006
1
9 140205 Vetur 5250 7.3 18 po
12/04/
2005
1
10 140202 Tavolin 420 8.3 12 jo
12/08/
2005
4


I shtoni kto t dhna n tabeln NNPUNSIT:

ID Nnpunsit Emri Mbiemri Filiala
1 Astrit Kabashi Prishtin
2 Valon Ramadani Besian
3 Faton Gashi Dardan
4 Albana Gashi Fush Kosov










BAZAT E T DHNAVE


18
Ndryshimi i gjrsis dhe gjatsis s kolonave gjegjsisht rreshtave

Gjrsia standarde e kolons sht 15.6667.Kt gjrsi mund ta ndryshoni duke shkuar
te menyja kryesore te Format dhe te Column Width.
Lartsia standarde e rreshtave sht 12.75.Kt lartsi mund ta ndryshoni duke shkuar te
menyja kryesore te Format dhe te Row Height.


Ndryshimi i llojit t shkronjave, qelis.Lvizja e kolons, fshehja e
kolons dhe ngrirja e kolons

Lloji i shkronjave ndrrohet duke shkuar n Format dhe Font, aty mund t zgjedhim llojin
e shkronjave, stilin dhe madhsin.
Lvizja e kolons mund ta bjm n Datasheet View, Design View.Selektojm kolonn
dhe e trheqim deri te vendi ku dshirojm.
Fshehja dhe ngrirja e kolons bhet n menyn kryesore te Format dhe te Hide Columns
(Unhide Columns) prkatsisht Freeze Columns (Unfreeze All Columns).

Filter by selection

Mnyra m e thjesht dhe e shpejt e filtrimit t t dhnave sht me an t Filter By
Selection ku mund t zgjedhim fushn e cila ka t dhn me an t cils dojm ti
filtrojm t dhnat.Me shfrytzimin e Filter By Selection zgjedhen t dhnat t cilat
plotsojn kriterin e dhn me filter.

Filter excluding selection

Filter Excluding Selection sht e njjt sikur Filter By Selection vetm se ktu paraqiten
t dhnat q nuk plotsojn kriterin e dhn nga filteri.


Filter for

Me klikimin me t djatht fushn n kolonn e cila prmban t dhnn me t ciln
dojm t filtrojm, te Filter For shkruajm kriterin dhe shtypim Enter.

Filter by form

Me zgjedhjen e Filter By Form n dritare paraqitet nj list.Lista prmban t dhnat
ekzistuese n at fush, ashtu q leht mund t zgjedhim se me ciln t dhn dojm t
filtrojm t dhnat.Ky opcion sht i prdorshm shkaku q nuk kemi nevoj t mbajm
mend t dhnat npr fusha.


BAZAT E T DHNAVE


19
LIDHJET E TABELAVE (RELATIONSHIP)

Tabelat mund t lidhen mes vete n mnyr q t kemi qasje m t shpejt t
informacionit, evitimit t futjes t t dhnave t dyfishta, krijimit t pyetsorve, formave
dhe raporteve.Pastaj lidhja na mundson krijimin e tabelave m t vogla q jan m
efikase kur duhet t nxjerrim t dhna nga to.Kur t bhet lidhja e dy tabelave duhet q
fusha n tabeln e par t jet els primar t cilin e trheqim deri te fusha e tabels s
dyt.Pra n tabeln e par fusha duhet t jet els primar ashtu q t evitohet mundsia e
futjes s t dhnave t dyfishta.Fushat q lidhen n t dy tabelat duhet t jen t t njjtit
tip ose t ngjashm, nse tipi i t dhnave sht Number ato duhet t ken t njjtn
madhsi t fushs.
P.SH. Mund t krijojm nj tabel q prmban emrat e klientve, adresat dhe numrat e
telefonave.Poashtu mund t vejm els primar pr secilin klient.Pastaj mund t
krijojm nj tabel tjetr ku do t jen porosit e bra nga klientt.Kjo tabel poashtu
mund t ket nj fush si unike pr do klient por jo emrin e klientit, adresn ose numrin
e telefonit.Me lidhjen e ktyre dy tabelave nuk sht e nevojshme q pas do porosie t
futet emri, adresa, telefoni i klientit.
Access-i prfshin dy lidhje bazike: nj me nj dhe nj me shum.Lidhja nj me nj sht
kur nj e dhn nga tabela e par prkon me nj t dhn n tabeln e dyt.Lidhja nj me
shum sht kur nj e dhn n tabeln e par prkon me shum t dhna n tabeln e
dyt.Access-i prcakton vet tipin e lidhjes.

KRIJIMI I LIDHJES

Krijimi i lidhjeve bhet n dritaren e lidhjeve(figura e mposhtme).Hapim bazn e t
dhnave, klikojm n pulln Relationships pastaj n pulln Show Table
.Zgjedhim tabeln e par dhe shtypim Add poashtu veprojm edhe me tabeln e
dyt.Pastaj i lidhim fushat nga tabela e par n t dytn duke trhequr fushn nga tabela e
par e cila prkon me fushn n tabeln e dyt.N fund zgjedhim Create dhe e mbyllim
dritaren me Close.


BAZAT E T DHNAVE


20

Vnia e integritetit referencial (Referential Integrity)

Me krijimin e lidhjes n mes t dy tabelave mund t vejm integritetitn
referencial.Integriteti referencial sht nj bashksi e rregullave t cilin Access-i e
prdor pr vrtetimin e vlefshmris s lidhjes.Integriteti referencial poashtu ndalon
fshirjen ose ndryshimin aksidental t t dhnave.Pr t shfrytzuar Integritetin referencial
duhet t plotsohen kushtet vijuese:fusha e lidhur nga tabela e par duhet t jet els
primar, fushat n t dy tabelat duhet t jen t t njjtit tip t t dhnave si dhe ti takojn
t s njjts baz.Me vnien e Integritetit referencial nuk mund t fusim t dhna n
tabeln e dyt nse nuk prkon me fushn n tabeln e par.Nuk mund t fshihen t
dhnat prej tabels s par nse ndonj e dhn n tabeln e dyt prkon me at dhe s
fundi nuk mund t ndryshoni vlern elsit primar n tabeln e par nse ekzistojn t
dhna t lidhura.
Megjithat nse dojm t ndryshojm t dhnat dhe srish t kemi integritetin referencial
ather duhet q t zgjedhim opcionet edhe Cascade Update Related Fields dhe
Cascade Delete Related Records.Kur t zgjedhen kto dy opcione ather Access-i
automatikisht mirmban integritetin referencial.

USHTRIME

Krijoni lidhjen e tabels KLIENTT me tabeln KREDIT.




BAZAT E T DHNAVE


21
PYETSORT

Fjala QUERY (PYETSOR) rrjedh prej fjals latine qurere, q do t thot pyetje ose
krkes.Pyetsori n Access sht pyetja q bhet pr informacionin q gjendet n
tabel.Pyetsori mund t jet i thjesht, t krkoj t dhna vetm nga nj tabel dhe mund
t jet i prbr t krkoj t dhna n shum tabela n dallim nga filtert q u prdorn te
tabelat, ku t dhnat mund t nxirren nga vetm nj tabel.
Pyetsori nuk prmban t dhna, ai prmban instruksione t cilat Access-i i prdor pr t
nxjerr t dhnat q u prgjigjen atyre instruksioneve.Prandaj kur t shtojm ndonj t
dhn n tabel nuk kemi nevoj q t bjm ndryshime edhe n pyetsor.T dhnat q
paraqiten pas ekzekutimit t pyetsorit quhen bashksi e t dhnave (Recordset).

Mundsit me pyetsor

Zgjedhja e tabels. Mund t nxjerrim informacion prej nj tabele ose shum
tabelave.
Zgjedhja e fushs. Mund t caktojm se ciln fush nga tabela dshirojm ta
shohim n bashksin e t dhnave.
Sortimi i t dhnave. Me kt na mundsohet q t dhnat ti shohim n nj
renditje t caktuar.
Kalkulimet. Mund t shfrytzojm pyetsort pr t br kalkulime n t dhna.
Krijimin e tabelave. Mund t shfrytzojm pr krijimin e tabelave nga dhnat
si rezultat i nj pyetsori.
Krijimi i formave dhe rapoteve. Mund t krijojm forma dhe raporte, ku
rndsia e ksaj sht se sa her q hapet forma ose printohet raporti, pyetsori do
t kthej t dhnat m t freskta nga tabelat.
Krijimi i grafeve. Mund t krijojm grafe nga rezultati i pyetsorit, t cilin
rezultat mund ta shfrytzojm n forma dhe raporte.
Krijimin e nnpyetsorve. Mund t krijojm pyetsor duke shfrytzuar
rezultatin nga nj pyetsor tjetr.

Tipet e pyetsorve

Select. Ky sht tipi m i zakonshm i pyetsorve.Sikurse tregon edhe vet emri
ky pyetsor selekton t dhnat nga nj ose m shum tabela (bazuar n ndonj
kriter), duke krijuar bashksin e t dhnave dhe paraqitjen e saj n Datasheet.
Total. Kto jan versione speciale t pyetsorve Select. Pyetsort Total
mundsojn pr t mbledhur t dhnat sipas nj kriteri (si p.sh. group by, count
etj).
Action. Ky tip i pyetsorve na mundson t krijojm tabela te reja (make table
query) ose ndryshimin e t dhnave (delete, update dhe append) n tabelat
ekzistuese.
BAZAT E T DHNAVE


22
Crosstab. Ky tip i pyetsorve grupon t dhnat me metoda t ndryshme
prllogaritjeje.
SQL. Pyetsort Structured Query Language krijohen me shkruarjen e
komandave specifike SQL.
Top(n). Ky pyetsor mund t shfrytzohet vetm s bashku me pes tipet e
pyetsorve t mparshm.Na mundson t specifikojm numrin e prqindjes t t
dhnave q dshirojm ti shohim.

Krijimi i pyetsorit

Pas krijimit t tabelave dhe vendosjes s t dhnave n to, ather mund t punojm me
pyetsor.Pr krijimin e nj pyetsori duhet prcjell kta hapa:

1. Zgjedhim objektin Queries n dritaren e bazs s t dhnave
2. Klikojm n pulln New dhe hapet dritarja, ku mund t zgjedhim pes mnyra t
krijimit t pyetsorit.Zgjedhja e par sht Design View



3. Zgjedhim Design View dhe klikojm n pulln OK.
4. Pastaj na paraqitet dritarja Show Table ku jan t gjitha tabelat dhe pyetsort
(nse ka) t krijuar m par.
BAZAT E T DHNAVE


23


5. Zgjedhim tabeln dhe klikojm n pulln Add (ose vetm klikojm dy her).
Kt mund ta prsrisim edhe me zgjedhjen e tabelave tjera.
6. N fund klikojm n pulln Close dhe hapet dritarja e pyetsorit e cila prbhet
prej dy pjesve.Pjesa e par ku jan tabelat dhe lidhja e tyre dhe pjesa e dyt
prfshin fushat, tabeln, sortimin, kriterin e pyetsorit q quhet zona e dizajnimit
t pyetsorit.



Nse kemi zgjedhur m shum se nj tabel ather ato duhet t jen t lidhura ashtu
q t na japin rezultat t sakt dhe domethns.Nse tabelat nuk jan t lidhura
ather si rezultat do t paraqiten t gjitha kombinimet e t dhnave n ato dy
tabela.P.SH. nse tabela e par ka 20 t dhna ndrsa tabela e dyt ka 5 t dhna
ather rezultati do t ket 100 t dhna, q nuk kan ndonj domethnie.
Nse tabelat jan t lidhura n mes veti n dritaren e lidhjeve (Relationship window)
ather lidhja n mes tyre do t shihet automatikisht edhe n Design View t
pyetsorit (si n figurn m lart).
BAZAT E T DHNAVE


24
Nse tabelat nuk jan t lidhura n dritaren e lidhjeve (Relationship window) ather
duhet q ato tabela ti lidhim n dritaren e pyetsorit.Nga tabela e par zgjedhim
fushn dhe e trheqim deri te fusha e tabels s dyt me t ciln do t krijojm
lidhjen.Ather do t paraqitet nj vij lidhse n mes t ktyre fushave, nse
klikojm dy her n at vij do t hapet nj dritare ku mund t prcaktojm edhe
lidhjen n mes t dy tabelave.



Prcaktimi i lidhjes n mes t dy tabelave mund t bhet n tri mnyra:

1. Relacioni prjashtues
(ekskluzion)
Prfshin t gjitha t dhnat te t cilat fushat
e lidhura jan t barabarta
2. Relacion-majtas prfshirs
(inkluzion)
Prfshin t gjitha t dhnat nga tabela e
par edhe n qoft se n tabeln e dyt pr
ato t dhna nuk ndonj t dhn.
3. Relacion-djathtas prfshirs
(inkluzion)
Prfshin t gjitha t dhnat nga tabela e
dyt edhe n qoft se n tabeln e par pr
ato t dhna nuk ndonj t dhn.

Lidhja q definohet n dritaren e pyetsorit nuk do t paraqitet n dritaren e lidhjeve
(Relationship window).
Access-i bn lidhjen n mes t dy tabelave automatikisht nse n t dy tabelat
ekzistojn fusha me emr t njjt.
Pjesa e dyt e dritares s pyetsorit prmban n vete emrat e fushave,emrin e tabels,
sortimin si dhe kriteret me an t t cilave do t krkohen t dhnat n tabela ose
pyetsor.



BAZAT E T DHNAVE


25

Prfshirja e fushave n pyetsor

Prfshirja e fushave n pyetsor bhet duke klikuar dy her n at fush ose trheqjen e
fushs nga tabela deri te zona e dizajnimit t pyetsorit. Nse dshirojm q ti bartim
vetm disa fusha n pyetsor at mund ta bjm duke i zgjedhur fushat n tabel duke
mbajt t shtypur tastin CTRL dhe duke klikuar n fushat e dshiruara dhe pastaj i
trheqim deri te zona e dizajnimit t pyetsorit.Nse dshirojm q t gjitha fushat e
tabels t jen n pyetsor ather klikojm dy her n * n tabel ose e trheqim * deri
te zona e dizajnimit t pyetsorit.

Pas selektimit t fushave mund t bjm ndrrimin e renditjes, fshirjen, riemrimin
(vetm n pyetsor), sortimin,fshehjen dhe vnien e kriterit t tyre.

Ndrrimi i renditjes n zonn e dizajnimit t pyetsorit bhet duke selektuar
fushn dhe trheqjen e saj n pozitn e dshiruar.
Fshirja e fushs n zonn e dizajnimit t pyetsorit bhet duke selektuar
fushn e dshiruar dhe shtypim tastin Delete.
Riemrimi i fushs n zonn e dizajnimit t pyetsorit bhet n rreshtin Field
n zonn e dizajnimit t pyetsorit duke shkruar te fusha e dshiruar emrin e ri
pastaj : dhe emrin e fushs.P.SH. Dshrojm t ndrrojm emrin e fushs F1
me F2, F2:F1
Kur t shikojm rezultatin e pyetsorit mund t dshirojm q t dhnat t
jen t renditura (sortuara) sipas nj rregulle pr analizim sa m t leht t
tyre.Sortimi bhet sipas rregullit alfabetik ose numerik (n rritje A deri te Z
dhe 0 deri te 9, n zbritje Z deri te A dhe 9 deri te 0).Sortimi mund t bhet
edhe me disa fusha, n at rast sortimi do t bhet nga e majta n t djatht.
Fshehja e fushave bhet n zonn e dizajnimit t pyetsorit n rreshtin Show
duke aktivuar kutizn e kontrollit.
Kriteret e nj pyetsori formulohen n zonn e dizajnimit t pyetsorit n
rreshtin Criteria. Kriteret thjesht jan rregulla t cilat Access-it i tregojn se
cilat t dhna dshirojm ti shohim.

Ruajtja e pyetsorit

Pyetsori ruhet duke klikuar n n toolbar ose File dhe Save, pastaj shkruajm
emrin e dshiruar pr pyetsorin n dritare dhe shtypim OK.

Ekzekutimi i pyetsorit

Ekzekutimi i pyetsorit bhet duke shtypur n toolbar ikonn ose Query dhe Run.



BAZAT E T DHNAVE


26
Detyr:
1. Krijoni nj pyetsor me an t tabels KLIENTT ku do t
prfshihen t gjitha fushat e asaj tabele.Bni ndrrimin e renditjes s
fushave Emri dhe Mbiemri, riemroni fushn Tel me Telefoni,
sortoni fushn Emri sipas renditjes alfabetike A deri te Z, sortoni
fushn Emri sipas renditjes alfabetike A deri te Z dhe fushn
Mbiemri sipas Z deri te A, fshehni fushat Mbiemri dhe Adresa,
fshini fushn Adresa.N fund ruani pyetsorin me emrin Test.

2. Krijoni nj pyetsor nga tabelat KLIENTT dhe KREDIT ku do t
prfshihen fushat Numri i llogaris, Emri, Mbiemri nga tabela
KLIENTT dhe Tipi i kredis, Shuma nga tabela KREDIT.N
fund ruani pyetsorin me emrin Kredit e klientve.

3. Krijoni nj pyetsor ku do t prfshihet emri i klientit, mbiemri i
klientit si dhe numri i telefonit t atij klienti.N fund e ruani pyetsorin
me emrin Tel i klientit.
4. Krijoni nj pyetsor nga tabela KREDIT ku do t prfshihen t gjtha
fushat.Pyetsorin e ruani me emrin Test1.



Kriteret me prfshirje t emrit t objektit, dats, ors dhe teksteve


Kur duhet t prdorim emrat e fushave apo vlerat e dats ose ors pr formulimin e
kushteve duhet t respektojm sintaksn e mnyrs s shkrimit.Pr kt duhet t kemi
parasysh kto rregulla:


Sintaksa Shpjegimi Shembull
Objektet [Emri]
Emrat e fushave, raporteve apo formularve
duhet t shkruhen n kllapa katrore.
[mimi]*1.6
Data, Ora #Data#
Data dhe ora duhet t shkruhen brenda
shenjs #. Si rregull Access-i sht n gjendje
t dalloj formatin e dats dhe, mbas shkrimit
t nj date, ai e vendos at automatikisht
midis shenjave #.
#12.04.05#
Teksti Tekst
Tekstet duhet ti shkruajm gjithmon midis
thonjzave.Edhe n kt rast Access-i ka
aftsin ti dalloj tekstet dhe i fut ato
automatikisht midis thonjzave.
Ushtrimet
laboratorike




BAZAT E T DHNAVE


27
Operatori i krahasimit LIKE


Me ndihmn e operatorit LIKE mund t gjejm nse fushat e tipit tekst kan n
prmbajtjen e tyre shenja t caktuara.Pr shembull ju krkohet t hartoni listn e t gjith
klientve emri i t cilve fillon me shkronjat A deri n D. Kriteri i przgjedhjes
formulohet duke prdor shenjat zvendsuese.


Shenja Efekti Shembull
*
I prgjigjet nj numri t
fardoshm shenjash
LIKE K* t gjith personat emri i t cilve
fillon me shkronjn K.
LIKE [A-D]* t gjith klientt emri i t
cilve fillon me shkronjn A deri D.
LIKE [AZ]* t gjith klientt emri i t
cilve fillon me shkronjn A ose Z.
LIKE [!A]* t gjith klientt emri i t
cilve fillon me t gjitha shkronjat pos
shkronjs A.
?
Zvendson vetm nj shenj
t fardoshme
LIKE ???M t gjith emrat q prbhen
nga katr shkronja dhe ku shkronja e katrt
sht M.
LIKE ??S* shkronja e tret duhet t jet S.
#
Zvendson nj shifr t
fardoshme
LIKE #* prmbajtja e fushs duhet t filloj
me nj shifr dhe mund t ket fardo
gjatsie.
LIKE #### t gjitha prmbajtjet e fushs
q prbhen nga katr shifra.
&
Lidh dy stringje mes veti si
nj
[Emri]& &[Mbiemri]



Operatort logjik Sintaksa Efekti
AND Kushti1 AND Kushti2
T dyja kushtet duhet t
plotsohen
OR Kushti1 OR Kushti2
T paktn njri kusht duhet
t plotsohet
NOT NOT Kushti
Ky kusht nuk lejohet t
plotsohet
BETWEEN BETWEEN Vlera1 AND Vlera2
Vlera e ksaj fushe duhet t
jet midis vlers1 dhe
vlers2


BAZAT E T DHNAVE


28

Kriteri pr fushn e tipit t t dhnave Yes/No

Nj vler Jo mund ta gjejm duke prcaktuar si kusht No, False, Off ose 0.Pr krkimin
e nj vlere Po prcaktojm si kusht Yes, True, On ose -1.


Operatort matematik

Operatori Prshkrimi Shembull
* Realizon shumzimin e numrave [mimi]*[Sasia] ose 2*[mimi]
+ Realizon mbledhjen e numrave
[mimi]+[Shpenzime_Transport]
ose
11+45
-
Realizon zbritjen e numrave ose
shrben si parashenj e nj numri
[mimi]-[Tatimi] ose [mimi]-(
[mimi]*0.1)
/ Realizon pjestimin e numrave [Sasia]/[Pesha] ose [Shuma]/5
^
Realizon ngritjen n fuqi t nj
numri me eksponentin e dhn
[Gjatsia]^2
Mod
Mbetja n numr t plot e pjestimit
t dy numrave
5 Mod 2 rezultati 1



Operatort relacional

Operatori Prshkrimi
=
Operatori: i barazimit
[Tipi i kredis]=Vetur
<>
I ndryshm
[Tipi i kredis]<>Vetur
>
Operatori: m i madh
[Shuma]>20000
>=
Operatori: m i madh ose baraz
[Shuma]>=20000
<
Operatori: m i vogl
[Shuma]<20000
<=
Operatori: m i vogl ose baraz
[Shuma]<=20000





BAZAT E T DHNAVE


29
Operatort me prparsi

Kur kemi t bjm me shprehje komplekse q kan shum operator,Access-i duhet t
prcaktoj se cili operator ka prparsi.Pr at Access-i e ka t paradefinuar prioritetin e
kategorive t operatorve sipas ksaj renditje:

1. Operatort matematik
2. Operatort relacional
3. Operatort logjik

Secila kategori ka rendtitjen e prparsis t operatorve.

Prioriteti te operatort matematik
1. Fuqia
2. Negacioni
3. Prodhimi dhe/ose Pjestimi (nga e majta n t djatht)
4. Pjestimi i numrave t plot
5. Moduli
6. Mbledhja dhe/ose zbritja (nga e majta n t djatht)
7. Lidhja e Stringjeve

Prioriteti te operatort relacional
1. Baras
2. Jo Baras
3. M e vogl
4. M e madhe
5. M e vogl ose baras
6. M e madhe ose baras
7. LIKE

Prioriteti te operatort logjik
1. NOT
2. AND
3. OR


Shembuj:


LIKE M[A]* Kthen vlern e sakt nse shkronja e par sht M e dyta A.
LIKE [!e-zE-Z] Kthen vlern e sakt nse shkronjat jan A,B,C,D,a,b,c ose d.
LIKE AB#### Kthen vlern e sakt nse fillon me shkronjat AB e shoqruar me katr
shifra.
LIKE [#]*A Kthen vlern e sakt nse fillon me # dhe prfundon me A.
LIKE NOT M[A]* Kthen vlern e pasakt nse shkronja e par sht M dhe e dyta A.

BAZAT E T DHNAVE


30
Pyetsor me m shum se nj kriter

N Access kemi mundsi t formulojm edhe m shum se nj kriter n fusha dhe rreshta
t ndyshm.N kt rast duhet t kemi parasysh kto veori:

1. Lidhjet AND
Kushtet e nj rreshti lidhen ndrmjet veti me ndihmn e operatorit AND.N kt
rast t dhnat prfshihen n rezultatin e ekzekutimit t pyetsorit vetm kur jan
t plotsuara t gjitha kushtet e formuluara.
Shembull: T gjith personat me emrin Bujar dhe qyteti Prishtin do t shfaqen
n rezultatin e pyetsorit.



2. Lidhjet OR
Kur t formulojm kushte n dy rreshta ato lidhen n mes veti me an t
operatorit OR. N kt rast t dhnat prfshihen n rezultatin e ekzekutimit t
pyetsorit ather kur plotsohet t paktn njri prej kushteve t formuluara.
Shembull: T gjith personat me emrin Bujar ose qytetin Prishtin do t shfaqen
n rezultatin e pyetsorit.



BAZAT E T DHNAVE


31

Detyr:

1. Modifikoni pyetsorin Test1 ashtu q si rezultat t fitojm listn e tipit t kredive
Vetur ose Shtpi dhe q jan t aprovuara.
2. N pyetsorin Test1 nxirrni si rezultat shumn e kredis q kalon 20000.
3. Modifikoni pyetsorin Test ashtu q si rezultat t paraqiten emrat e personave q
fillojn me A dhe prfundojn me A ose I .
4. Me modifikimin e pyetsorit Test1 t nxirren nga tabela KREDIT t gjitha
kredit q jan dhn n vitin 2005.
5. Me modifikimin e pyetsorit Test nga tabela KLIENTT t nxirren t dhnat pr
personat q jetojn n Prishtin.
6. T krijohet nj pyetsor me an t cilit do t fitojm si rezultat emrin dhe
mbiemrin e klientve q kan marr n kredi kompjuter si dhe emrin,mbiemrin
dh ID e nnpunsit q e ka lejuar at kredi.

Mundsit e pyetsorve me parametra

Shpesh ndodh q nj pyetsor duhet formuluar n nj mnyr t till q vlera baz e
krkimit t jet fleksibile, pra q ajo t prcaktohet me fillimin e ekzekutimit t
pyetsorit.Gjat ekzekutimit t nj pyetsori me parametr shfaqet n ekran nj dritare
dialogimi ku mund t japim vlern ose kriterin e pyetsorit.Access-i pastaj e prdor kt
kriter (parametr) dhe ekzekuton pyetsorin.N bashksin e t dhnave (Recordset) do t
paraqiten t gjitha t dhnat q plotsojn kriterin e dhn n fillim.

Krijimi pyetsorit me nj parametr

Pas hapjes s pyetsorit n Design View dhe prfshirjes s fushave n pyetsor, n
rreshtin Criteria te ndonj fush e caktuar shkruajm tekstin i cili do t paraqitet n
dritaren e dialogimit i futur n kllapa t mesme [teksti].
P.SH. Te pyetsori Test, te rreshti Criteria te fusha Emri shkruajm [Jepni emrin]

BAZAT E T DHNAVE


32
Pas ekzekutimit t pyetsorit na paraqitet dritarja e dialogimit, ku do t shkruajm emrin
e ndonj klienti q e krkojm.



Krijimi pyetsorit me m shum se nj parametr

Nuk jemi t kufizuar n krijimin e pyetsorit me vetm nj parametr.Mund t krijojm
pyetsor me m shum se nj parametr.P.SH. dshirojm q nga tabela KLIENTT t
marrim si rezultat t gjith klientt me emrin Bujar dhe qytetin Prishtin.Pyetsori me m
shum se nj parametr krijohet njsoj si me nj parametr vetm se te rreshti Criteria
shkruajm m shum se nj kriter.





Kur t ekzekutohet pyetsori s pari Access-i krkon pr kriteret n kt renditje:

1. Jepni emrin
2. Jepni qytetin

Pra Access-i krkon pr parametrat nga e majta n t djatht.Por kt renditje mund ta
ndryshojm, n Design View te pyetsori shkojm te Query dhe Parameters dhe hapet
nj dritare.N at dritare mund t rregullojm renditjen.

BAZAT E T DHNAVE


33



Krijimi i nj fushe kalkuluese

Fushat n pyetsor nuk jan t kufizuara n fusha vetm nga tabela.Ne poashtu mund t
krijojm fusha ku mund t bjm kalkulime.P.SH. dshirojm q nga fusha mimi t
kalkulojm n nj fush tjetr tatimin 15%(TVSH).Tatimi:[ mimi]/7.6666
Ose
Fusha1 Fusha2 Fusha3
23 45 7
Fusha4:[Fusha1] + [Fusha2] + [Fusha3]
Rezulati do t jet 75.

Shtimi dhe ndryshimi i t dhnave me an t pyetsorit

Pyetsori mund t prdoret edhe pr shtimin dhe ndryshimin e t dhnave n
tabela.Gjithmon mund t ndryshojm t dhnat n nj tabel dhe te tabelat e lidhura mes
veti me lidhjen nj me nj, ndrsa te tabelat e lidhura mes veti me lidhjen nj me shum
nuk mundemi gjithnj t shtojm ose t bjm ndryshime.
Si bhet shtimi ose ndryshimi i t dhnave
Hapim pyetsorin n Datasheet View dhe klikojm n pulln q gjendet n fund
t pyetsorit.Pastaj shtypim t dhnat q dshirojm ose bjm ndryshimin e ndonj t
dhne dhe n fund i ruajm ndryshimet e bra.

Filtrimi i t dhnave n pyetsor

Filtrimi bhet njsoj si te tabelat, pra hapet pyetsori n Datasheet View dhe shkohet
njsoj si te tabelat.

BAZAT E T DHNAVE


34
Tipet e pyetsorve

Si u cek m hert tipet e pyetsorve jan:Select, Total, Action, Crosstab, SQL dhe
Top(n).Tipi i pyetsorit Select sht tip i zakonshm i pyetsorve.Me krijimin e
pyetsorit n Design View si tip i parazgjedhur nga Access-i sht tipi Select.Pra e gjitha
ka u tha m lart pr krijimin pyetsorit n Design View sht krijimi i pyetsorit Select.
Tip tjetr me radh sht tipi Total.

Tipi Total

Shum her dshirojm q informacionin e nxjerrur nga tabelat t jet i grupuar sipas nj
fushe apo fushave t asaj tabele.

Krijimi i pyetsorit Total

N Design View t pyetsorit n menyn kryesore shkojm te View dhe zgjedhim Totals
ose n toolbar shtypim pulln .Do t shohim se n zonn e dizajnimit t pyetsorit
do t paraqitet rreshti Total.Nse klikojm n rreshtin Total do t shohim nj list t
funksioneve t cilat prdoren pr grupimin e informacioneve dhe prmisimin e tyre.




Ky prmisim i rezultateve t pyetsorit arrihet me ndihmn e funksioneve.Access-i i
prdor katr kategori t funksioneve ato jan:








BAZAT E T DHNAVE


35
Kategorit e funksioneve
Kategorit Numri i funksioneve Qllimi i funksionit
Group by 1
Grupon t dhnat e
prbashkta.
Funksionet
(Aggregate)
9 Funksione matematikore
Shprehje (Expression) 1
Grupon nj numr t
funksioneve dhe i
ekzekuton si nj
Kufizimi total i t dhnave
n fush
1
Kufizon t dhnat nga
kalkulimet e bra nga
operatort tjer

Kategoria Group by

Ka nj opcion, opcionin Group by.Prdoret pr caktuar grupimin e t dhnave, t nj
fushe.P.SH. Nse zgjedhim q t dhnat nga tabela KREDIT t grupohen sipas tipit t
kredis.Ky opcion automatikisht sht i parazgjedhur kur t prfshihen fushat n
pyetsor.

Kategoria Expression (Shprehja)

Edhe kjo kategori si kategoria Group by ka nj opcion: Expression.Ky opcion prdoret
pr ti treguar Access-it q t krijoj nj fush kalkuluese.

Kategoria Kufizimi total i t dhnave n fush (Total field record limit category)

Edhe kjo kategori ka vetm nj opcion, opcionin Where.Kur t zgjedhim kt opcion ne
i tregojm Access-it se dshirojm t caktojm nj kufizim n at fush.

Kategoria Funksionet (Aggregate)

Pr dallim nga kategorit tjera kjo kategori ka nnt opcione:Sum, Avg, Min, Max,
Count, StDev, Var, First dhe Last. Secili prej funksioneve prdoret pr kalkulime n
fusha dhe kthimin e rezultatit n bashksin e t dhnave.P.SH. dshirojm t definojm
maksimumin dhe minimumin e shums s kredis n tabeln KREDIT.
Pr dallim nga kategorit e prmendura m par t cilat mund t shfrytzohen pr fardo
tipi t t dhnave, kategoria Funksionet mund t prdoret vetm n disa tipe t t dhnave
t paraqitura n tabeln e mposhtme:






BAZAT E T DHNAVE


36
Kategoria fuksionet
Funksioni Gjen Tipi i t dhnave q prkrah
Count
Numrin e vlerave
joboshe n nj fush
AutoNumber,Number,Text,Currency,Date/Time,
Yes/No,Memo,OLE
Sum
Total i vlerave n nj
fush
AutoNumber,Number,Currency,Date/Time,
Yes/No
Avg
Vlera mesatare n nj
fush
AutoNumber,Number,Currency,Date/Time,
Yes/No
Max
Vlern m t madhe n
nj fush
AutoNumber,Number,Currency,Date/Time,
Yes/No,Text
Min
Vlera m e vogl n nj
fush
AutoNumber,Number,Currency,Date/Time,
Yes/No,Text
StDev
Devijimi standard i
vlerave t nj fushe
AutoNumber,Number,Currency,Date/Time,
Yes/No
Var
Variacioni i vlerave t
nj fushe
AutoNumber,Number,Currency,Date/Time,
Yes/No
First
Vlern e t dhns s
par n tabel ose
pyetsor
AutoNumber, Currency,Date/Time,Yes/No,
Text,Memo,OLE
Last
Vlern e fundit nga e
dhna e fundit n tabel
ose pyetsor
AutoNumber, Currency,Date/Time,Yes/No,
Text,Memo,OLE

Me pyetsorin Total mund t bjm kalkulime me t gjitha fushat n tabel ose
pyetsor.P.SH. dshirojm t gjejm numrin e kredive t aprovuara nga BANKA.
Shkojm te Queries dhe zgjedhim Create query in Design View, zgjedhim tabeln
KREDIT dhe i bartim fushat Tipi i kredis dhe Aprovimi n zonn e dizajnimit t
pyetsorit.Shtypim pulln n toolbar.Te rreshti Total te fusha Tipi i kredis
zgjedhim funksionin Count ndrsa te fusha Aprovimi zgjedhim Group by.Kt pyetsor
ruajeni me emrin Kredit e aprovuara.Si shihet si rezultat fitojm numrin e kredive t
aprovuara dhe t pa aprovuara.Pr t fituar vetm kredit e aprovuara duhet t vihet
kriteri n rreshtin Criteria q do t shohim pak m von.

Ndonj her duhet q kalkulimet t bhen n t dhnat e nj fushe jo n tr fushn si m
par.P.SH. dshirojm t gjejm emrin dhe mbiemrin e t gjith klientve q kan marr
kredi n bankn ton.Shkojm te Queries dhe zgjedhim Create query in Design View,
zgjedhim tabelat KLIENTT dhe KREDIT dhe i bartim fushat Numri i llogaris nga
tabela KREDIT dhe krijojm nj fush me emrin dhe mbiemrin e klientit pra:
Emri dhe mbiemri:KLIENTT.Emri& &KLIENTT.Mbiemri
Shtypim pulln n toolbar.Te rreshti Total te fusha Numri i llogaris zgjedhim
funksionin Count ndrsa te fusha Emri dhe Mbiemri zgjedhim Group by.Kt pyetsor
ruajeni me emrin Kredit e klientve. Si po shihni me ekzekutimin e ktij pyetsori do
BAZAT E T DHNAVE


37
t na paraqiten emrat dhe mbiemrat e personave q kan marr kredi n bank si dhe
numri i kredive t tyre.Pra kemi br grupimin sipas emrave dhe mbiemrave t klientve.

Grupimi i t dhnave mund t bhet edhe n m shum se nj fush.P.SH. dshirojm q
nga pyetsori Kredit e klientve t bjm grupimin edhe sipas tipit t kredis.Pra
bartim fushn Tipi i kredis n kt pyetsor dhe te rreshti Total zgjedhim Group by.E
ruajm kt pyetsor me emrin Kredit e klientve-shtes.

Definimi i kriterit pr pyetsorin Total

N mnyr q grupimi i t dhnave pr pyetsorin Total t mund t limitohet prdoret
kriteri n rreshtin Criteria.Ky kriter mund t prdoret n t tri fusha:

1. Group by
2. Funksionet (Aggregate)
3. Jo funksionet (Non aggregate)

Definimi i kriterit pr fushn Group by

Pr t kufizuar t dhnat n grupim definojm kriterin n fushn Group by.P.SH.
dshirojm q nga pyetsori Kredit e klientve-shtes t marrim si rezultat vetm
kredit si Vetur dhe Shtpi.Shkojm te Queries dhe hapim pyetsorin Kredit e
klientve-shtes n Design View.Te fusha Tipi i kredis dhe rreshti Criteria shkruajm:
In (Vetur,Shtpi) dhe e ruajm pyetsorin.Kur t ekzekutohet pyetsori tani si
rezultat do t paraqiten vetm kredit e dhna si Vetur dhe Shtpi.

Definimi i kriterit pr fushn e Funksioneve

Ndonj her sht e nevojshme q pyetsori t kalkulon s pari me Funksionet mbi
ndonj fush t caktuar dhe pastaj t paraqes si rezultat vetm ato t dhna q e
plotsojn kriterin e dhn.P.SH. dshirojm t shohim kredit ashtu q vlera mesatare e
kredis t jet m e madh se 1000.Shkojm te Queries klikojm dy her n Create
query in Design View dhe zgjedhim tabeln KREDIT, pastaj bartim fushat Tipi i
kredis dhe Shuma n zonn e dizajnimit t pyetsorit.Shtypim pulln n
toolbar.Te rreshti Total te fusha Tipi i kredis zgjedhim opcionin Group by ndrsa te
fusha Shuma zgjedhim funksionin Avg (funksioni pr vlern mesatare) dhe te rreshti
Criteria shkruajm >1000.Si rezultat do t paraqiten t dhnat kredit vlera mesatare e
t cilave kalon 1000.Ruajeni kt pyetsor me emrin Vlera mesatare e kredive.







BAZAT E T DHNAVE


38
Definimi i kriterit pr Where (Non aggregate)

M hert pam se si kufizuam t dhnat pasi bm kalkulimet, por ne poashtu mund t
kufizojm t dhnat para se t bjm kalkulimet.P.SH. dshirojm t dijm kredit q
jan lshuar n nj periudh t caktuar kohore n tabeln KREDIT.Krijojm nj
pyetsor nga tabelat KREDIT dhe KLIENTT.Bartim fushat Numri i llogaris, Emri
nga tabela KLIENTT dhe fushn Fillimi nga KREDIT.Shtypim pulln n toolbar
dhe te rreshti Total te fusha Numri i llogaris zgjedhim funksionin Count, te fusha Emri
zgjedhim Group by.Dhe n fund te fusha Fillimi rreshti Total zgjedhim Where ndrsa te
rreshti Criteria shkruajm kriterin BETWEEN #12/8/2005# AND #10/4/2006#.Si rezultat
do t na paraqiten t gjitha kredit e dhna n kt periudh kohore.Ruajeni pyetsorin
m emrin Kredit.

Krijimi i Shprehjes (Expression) n pyetsorin Total

N mnyr q t dhnat t paraqiten sipas nevojs q kemi Access-i lejon krijimin e
Shprehjeve (Expression) t bazuara n disa tipe t pyetsorit Total si jan prdorimi i
funksioneve Avg, Sum etj.P.SH. Shkruajm nj shprehje
Fusha: Sum(KREDIT.Shuma/KREDIT.[Kohzgjatja e kredis])
Te rreshti Total zgjedhet Expression dhe ruhet pyetsori.

Tipi i pyetsorve Action

Ky tip i pyetsorve sht special, quhen pyetsor t aksionit (Action) q na mundsojn
t ndryshojm vlerat n t dhnat tona.Vet termi Action (Aksion) definon nj pyetsor q
thjesht bn dika m shum se sa selektimin e t dhnave dhe paraqitjen e tyre n
bashksin e t dhnave (Recorset).Pyetsori Action mund t konsiderohet si nj pyetsor
Select q i sht dhn nj detyr ta kryej mbi nj grup t caktuar t t dhnash.
Me krijimin e nj pyetsori ne automatikisht krijojm nj pyetsor Select, ku pastaj ne
mund t zgjedhim tipet e pyetsorit n pulln Query type q gjendet m toolbar.


BAZAT E T DHNAVE


39
Nga kjo meny mund t zgjedhim disa tipe t pyetsorve Action.Zgjedhjet n meny jan :
Make Table, Update, Append dhe Delete.N dallim nga pyetsort Select, pyetsort
Action identifikohen me nj pikuditse pr skaj simbolit t pyetsorit.



Jan katr tipe t ndryshme q kan ikona t ndryshme.Me an t pyetsorve Action
mund t kryejm:

Fshirjen e t dhnave t caktuara nga nj tabel ose grup i tabelave
Shtojm t dhnat nga nj tabel te tjetra
Ndryshojm t dhnat
Krijojm nj tabel t re nga t dhnat e caktuara nga ndonj pyetsor

Pasi q pyetsort Action jan t pakthyeshm (ireversibl) duhet t ndiqen kta katr
hapa pr krijimin e tyre:

1. Krijimi i pyetsorit Action duke caktuar fushat dhe kriterin
2. Shikimi i t dhnave (n Datasheet View) t ndikuara nga pyetsori Action
3. Ekzekutimi i pyetsorit
4. Kontrollimi i ndryshimeve t bra (n Datasheet View)

Shikimi i t dhnave para ekzekutimit t pyetsorve DELETE dhe UPDATE

Para ekzekutimit t pyetsorve DELETE dhe UPDATE klikojm n pulln Datasheet
View pr shikimin e t dhnave q do t ndikohen nga pyetsori.Kjo bhet shkaku se
pyetsori ndikon n tabeln me an t s cils sht krijuar dhe ndryshimet e bra jan t
pakthyeshme.
P.SH. Krijojm nj pyetsor nga tabela KLIENTT.Bartim t gjitha fushat n zonn e
dizajnimit dhe n toolbar shtypim pulln Query Type, aty zgjedhim DELETE QUERY.
N zonn e dizajnimit shihet rreshti Delete dhe n do fush opcioni Where.Te rreshti
Criteria shkruajm kriterin mbi baz t s cilit do t bhet fshirja e t dhnave.
Shkruajm te fusha Emri dhe rreshti Criteria kriterin Bujar.Shtypim pulln Datasheet
View pr t shikuar t dhnat q do t ndikohen nga ky pyetsor, pastaj bjm
ekzekutimin e tij.Do t shikojm se e dhna sht fshir nga tabela KLIENTT.



BAZAT E T DHNAVE


40
Shikimi i rezultatit t pyetsorve MAKE-TABLE dhe APPEND

N dallim nga pyetsort DELETE dhe UPDATE pyetsort MAKE-TABLE dhe
APPEND kopjojn t dhnat nga nj tabel n tabeln tjetr.Pra tabela prej ku krijohet
pyetsori MAKE-TABLE ose APPEND nuk ndikohet.Me ekzekutimin e ktyre
pyetsorve krijohet nj tabel e re.
P.SH. Krijojm nj pyetsor nga tabela KLIENTT, bartim fushat Numri i llogaris,
Emri, Mbiemri, Qyteti, Adresa dhe Tel.Te pulla QUERY TYPE zgjedhim MAKE-
TABLE dhe na paraqitet nj dritare



Te Table Name shkruajm KLIENTT-BACKUP dhe shtypim OK.Ekzekutojm kt
pyetsor, do t shohim se kemi krijuar nj tabel t re KLIENTT-BACKUP nga t
dhnat e tabels KLIENTT.Si shihet pyetsori MAKE-TABLE sht i prshtatshm
pr krijimin e BACKUP pr tabelat e bazs.

KRIJIMI I PYETSORVE ACTION

Krijimi i pyetsorit UPDATE pr ndryshimin e t dhnave

M hert kemi msuar pr ndryshimi e t dhnave me an t pyetsorit duke shtypur
pulln NEW RECORD, por aty duhet q t dhnat t ndryshohen nj nga nj, pra
mundsia e gabimit sht e madhe.Q t ndryshohet nj grup i t dhnash krijojm
pyetsorin UPDATE.Hapat e krijimit t pyetsorit UPDATE jan:

1. Krijimi i pyetsorit n Design View
2. Zgjedhja e tabels si dhe bartja e fushave n zonn e dizajnimit
3. Shtypim pulln QUERY TYPE dhe zgjedhim UPDATE QUERY

Pastaj te rreshti Criteria shkrujam kriterin n baz t t cilit do ti ndryshojm t dhnat,
ndrsa te rreshti Update to shkruajm vlern ndryshuese pr ato t dhna.
N fund ekzekutjm pyetsorin, ku do t hapet nj dritare q do t informoj pr numrin e
t dhnave q do t afektohen nga ky ndryshim.Si dhe pyet se a dshirojm q t bjm
ndryshimin e t dhnave sepse nse po ather nuk mund t prdorim Undo komandn
(pra pyetsort Action si u cek m hert jan ireversibl) .

BAZAT E T DHNAVE


41
P.SH. Dshirojm q n t dhnat e tabels KLIENTT ku mbiemri fillon me shkronjn
K t ndryshohet n Gashi.
Krijojm nj pyetsor n Design View nga tabela KLIENTT, bartim t gjitha
fushat.Zgjedhim UPDATE QUERY nga pulla QUERY TYPE.Te fusha Mbiemri, te
rreshti Criteria shkruajm LIKE K*, ndrsa te rreshti Update to shkruajm Gashi.
Ekzekutojm pyetsorin dhe shkojm te tabelat hapim tabeln KLIENTT dhe shikojm
ndryshimet e bra.

Krijimi i nj tabele t re me an t pyetsorit MAKE-TABLE

Pr krijimin e nj tabele t re mund t prdorim pyetsort Action prkatsisht MAKE-
TABLE.Me an t ktyre pyetsorve mund t krijojm tabela nga rezultatet e pyetsorit,
mund t bjm BACKUP pr tabelat e bazs.Hapat pr krijimin e pyetsorit MAKE-
TABLE jan:

1. Krijimi i pyetsorit n Design View
2. Zgjedhja e tabels si dhe bartja e fushave n zonn e dizajnimit
3. Shtypim pulln QUERY TYPE dhe zgjedhim MAKE-TABLE QUERY
4. Zgjedhim emrin e tabels s re si dhe bazn e t dhnave ku do ta ruajm

Ekzekutojm pyetsorin dhe hapet nj dritare ku tregon se sa t dhna do t barten n
tabeln e re.Si dhe pyet se a dshirojm q t krijojm tabel t re me t dhnat sepse
nse po ather nuk mund t prdorim Undo komandn (pra pyetsort Action si u cek
m hert jan ireversibl) .

P.SH. Dshirojm t krijojm nj tabel t re me numrin e llogaris, emrin, mbiemrin,
tipin e kredis dhe shumn e kredis nga baza BANKA.
Krijojm nj pyetsor n Design View nga tabelat KLIENTT dhe KREDIT. Bartim
fushat Numri i llogaris, Emri, Mbiemri nga tabela KLIENTT si dhe fushat Tipi i
kredis dhe Shuma nga tabela KREDIT.Te pulla QUERY TYPE zgjedhim MAKE-
TABLE QUERY dhe hapet nj dritare:




BAZAT E T DHNAVE


42
ku te Table Name: shkruajm emrin e tabels s re, nse dshirojm q at tabel ta
ruajm n bazn ekzistuese e zgjedhim Current Database por nse dshirojm q ta
ruajm n nj baz tjetr zgjedhim Another Database dhe shtypim pulln Browse...q t
japim shtegun e bazs tjetr.N fund shtypim OK dhe ekzekutojm pyetsorin. Pas
ekzekutimit hapet nj dritare ku tregon se sa t dhna do t barten n tabeln e re.Si dhe
pyet se a dshirojm q t krijojm tabel t re me t dhnat sepse nse po ather nuk
mund t prdorim Undo komandn (pra pyetsort Action si u cek m hert jan
ireversibl) .Shtypim YES dhe shikojm tabeln e re t krijuar te objektet Tables.

Krijimi i pyetsorit APPEND pr kopjimin e t dhnave

Fjala append nnkupton bashkangjit, pra pyetsori APPEND bashkangjet t dhnat te nj
tabel e caktuar.Pyetsori APPEND bashkangjet t dhnat nga tabela t ciln e prdorim
te ndonj tabel tjetr.Tabela n t ciln dshirojm q kto t dhna ti shtojm duhet q
t jet e krijuar m par.T dhnat mund ti shtojm n bazn ku punojm por edhe n
ndonj baz tjetr.Me an t pyetsorit APPEND mund t kopjojm t dhnat nga nj
tabel ose pyetsor dhe ti shtojm n nj tabel tjetr.
Gjat puns me pyetsort APPEND duhet t kemi kujdes n kto rregulla:

1. Nse tabela q po i bashkangjesim t dhna ka fush me els primar, ather
nuk mund t shtojm t dhna boshe ose vlera t dyfishta n at fush.
2. Nse shtojm t dhna n nj baz t t dhnash tjetr duhet q t dijm vendin
dhe emrin e bazs s t dhnave.
3. Nse shfrytzojm * pr bartjen e fushave n zonn e dizajnimit, nuk mund t
prdorim m fushat individualisht n t njjtn tabel.Sepse Access-i do t
kuptoj se po provojm q t shtojm t dhnat e asaj fushe dyher.
4. Nuk duhet q t dhnat q i bashkangjesim t ken ndonj fush Autonumber.

Me respektimin e ktyre rregullave t thjeshta, pyetsori APPEND duhet q t punoj
mir dhe do t jet nj vegl e dobishme.
P.SH. Nse dshirojm q nga tabela KLIENTT ti kopjojm t dhnat n tabeln ISH
KLIENTT.Te Queries krijojm nj pyetsor n Design View, zgjedhim tabeln
KLIENTT dhe i bartim t gjitha fushat n zonn e dizajnimit.Te QUERY TYPE
zgjedhim APPEND QUERY dhe hapet nj dritare


BAZAT E T DHNAVE


43
te Table Name shkruajm emrin e tabels s cils dshirojm ti bashkangjesim t
dhnat, pra ISH KLIENTT dhe shtypim OK.Nse fushat n t dy tabelat kan emra t
njjt ather t dhnat shtohen automatikisht.N fushat me emra t ndryshm duhet t
caktojm vet cilat t dhna do ti shtojm.Kjo bhet n rreshtin Append to ndrsa ka
mundsi q t shfrytzohet edhe Criteria pr t zgjedhur t dhnat q dshirojm ti
shtojm, pra vetm t dhnat q plotsojn kriterin do ti shtohen tabels.

Krijimi i pyetsorit DELETE pr fshirjen e t dhnave

Nga t gjith pyetsort, pyetsort DELETE jan m t pa prshtatshm.Kjo vjen nga
shkaku se bjn fshirjen e t dhnave n mnyr t prhershm dhe t
pakthyeshme.Sikurse edhe pyetsort tjer edhe pyetsort DELETE veprojn n nj
grup t t dhnash n baz t kriterit.Nse paraqitet nevoja pr fshirjen e t dhnave n
m shum se nj tabel prnjher ather duhet t shkojm sipas hapave t mposhtm:

Definimi i relacionit t tabelave n dritaren e lidhjeve (Relationship window)
Kontrollimi i Integritetit Referencial
Kontrollimi i Cascade Delete Related Records

Nse lidhja e tabelave sht nj me shum, pa definimin e relacionit t tabelave dhe nse
nuk sht zgjedhur Cascade Delete ather do t fshihen vetm t dhnat nga tabela e
par.Pyetsori DELETE nuk fshin t dhnat n fusha t caktuara por fshin tr t
dhnn.
P.SH. Krijojm nj pyetsor me tabeln KLIENTT, n QUERY TYPE zgjedhim
DELETE QUERY.Do t shohim se n zonn e dizajnimit shtohet rreshti Delete. Bartim
* dhe fushn Emri n zonn e dizajnimit.Te fusha KLIENTT.* dhe rreshti Delete
zgjedhim From ndrsa te fusha Emri rreshti Delete zgjedhim Where dhe te rreshti
Criteria shkruajm Valbona.E bjm ekzekutimin e pyetsorit, do t shohim se klienti
me emrin Valbona sht fshir nga tabela KLIENTT si dhe jan fshir edhe t dhnat
mbi kredit e klientit n tabeln KREDIT.Kjo ka ndodh shkaku i relacionit t ktyre dy
tabelave nj me shum si dhe Cascade Delete opcionit.Po t largohet opcioni Cascade
Delete fshirja e ksaj t dhne mbi kt klient nuk do t bhet.


BAZAT E T DHNAVE


44
KRIJIMI I PYETSORVE CROSSTAB

Access-i lejon krijimin e nj tipi t prshatshm t pyetsorit Total ai sht pyetsori
Crosstab.Pyetsori Crosstab paraqet t dhnat n formatin rresht-kolon.Thjesht thn
pyetsori Crosstab sht nj prmbledhje e t dhnave t caktuara nga titulli i rreshtit
(row heading) dhe titulli i kolons (column heading).N kt pyetsor rreshti Total
gjithmon sht aktiv dhe shrben pr prcaktimin e opcionit Group by pr titullin e
rreshtit dhe titullin e kolons.
Krijimi i pyetsorit Crosstab bhet duke zgjedhur CROSSTAB QUERY n pulln
QUERY TYPE n toolbar.Pastaj duhet q s paku tri fusha t jen n zonn e dizajnimit:

Fusha e titullit t rreshtit (row heading)
Fusha e titullit t kolons (column heading)
Fusha Value

P.SH. Krijojm nj pyetsor n Design View nga tabelat KLIENTT dhe KREDIT.
Bartim fushat Tipi i kredis, Shuma nga tabela KREDIT si dhe fushn Qyteti nga
tabela KLIENTT.Zgjedhim Crosstab Query n pulln Query type n toolbar.N zonn
e dizajnimit paraqiten rreshtat Total dhe Crosstab.Te fusha Tipi i kredis, rreshti Total
zgjedhim Group by ndrsa te rreshti Crosstab zgjedhim Row Heading.Pastaj te fusha
Qyteti, rreshti Total zgjedhim Group by ndrsa te rreshti Crosstab zgjedhim Column
Heading.Te fusha Shuma, rreshti Total zgjedhim Sum ndrsa te rreshti Crosstab
zgjedhimValue.Ekzekutojm pyetsorin dhe do t shohim nj tabel


Provojeni q n fushn Shuma n vend t funksionit Sum t vhet funksioni Count dhe
ekzekutoni pyetsorin.
BAZAT E T DHNAVE


45
Pyetsort Crosstab mund t ken m shum se nj titull t rreshtit (Row Heading), por
vetm nj titull t kolons (Column Heading).
P.SH. N pyetsorin e mparshm barti n zonn e dizajnimit edhe fushn Emri nga
tabela KLIENT dhe te rreshti Total zgjedhni Group by ndrsa te rreshti Crosstab
zgjedhni Row Heading.

Caktimi i kriterit pr pyetsort Crosstab

Kriteri pr pyetsort Crosstab mund t caktohet n:

1. Fush t re
2. Fushn e titullit t rreshtit (Row Heading)
3. Fushn e titullit t kolons (Column Heading)

Caktimi i kriterit n fushn e re

S pari bartim fushn n zonn e dizajnimit, te rreshti Total zgjedhim Group by ndrsa te
rreshti Criteria shkruajm kriterin.
P.SH. Te pyetsori i mparshm shtojm fushn Mbiemri nga tabela KLIENTT, te
rreshti Total zgjedhim Group by ndrsa te rreshti Criteria zgjedhim Krasniqi.Pra po
krkojm klientt me mbiemrin Krasniqi.

Caktimi i kriterit pr titullin e rreshtit (Row Heading)

Caktimi i kriterit bhet n rreshtin Criteria.P.SH. Te fusha Tipi i kredis te rreshti Criteria
shkruajm Vetur, dhe si rezultat do t fitojm t dhnat pr kredit Vetur.

Caktimi i kriterit pr titullin e kolons (Column Heading)

Njsoj sikur te titulli i rreshtit.

Tipi i pyetsorve SQL

Ky tip i pyetsorve krijohet me gjuhn specifike t bazs s t dhnave SQL (Structured
Query Language).Me SQL mund t krijojm t gjith pyetsort e prfytyrueshm.M
gjrsisht pr kt do t msojm n kuadr t MYSQL-it.
P.SH. Krijimi i pyetsorit nga tabela KLIENTT me t gjitha fushat e asaj tabele n SQL
bhet:

Select * from KLIENTT

Ku * paraqet t gjitha fushat e tabels sikurse edhe te Access-i.




BAZAT E T DHNAVE


46
Tipi i pyetsorve TOP(n)

Me an t ktyre pyetsorve Access-i na mundson ti gjejm (n) t dhnat e para (ku n
sht numr ose prqindje).Ky pyetsor gjithmon prdoret me tipet e pyetsorve q i
msuam m par.Nse krijojm nj pyetsor n Design Vie nga tabela KREDIT dhe
bartim t gjitha fushat n zonn e dizajnimit.Pastaj shkojm te pulla Top Values n
toolbar

dhe zgjedhim numrin e vlerave q dshirojm t paraqiten n bashksin e t dhnave ose
prqindjen.P.SH. zgjedhim numrin 5, ather do t na paraqiten vetm pes t dhnat e
para t bashksis s t dhnave.

































BAZAT E T DHNAVE


47
FORMA (FORMULARI)

Format (Formulart) paraqesin mnyrn m fleksibile pr shikimin, shtimin, ndryshimin
dhe fshirjen e t dhnave. Me an t forms mund t shikojm m shum se nj t dhn
me t gjitha fushat n t njjtn koh. Poashtu mund t shfrytzojm format pr krijimin e
dritareve komanduese t njohura si switchboards.

Tipet e paraqitjes s formularve

Tipet baz pr paraqitjen e formularve jan:

Columnar paraqitja e formularve n nj kolon
Tabular paraqitja tabelare e t dhnave
Datasheet View paraqitja e t dhnave n fletn e t dhnave
Justified paraqitja e t dhnave n bllok
Main/subforms paraqitja e formularit kryesor dhe nj formulari t
ndrvarur
Pivot table sikur n Microsoft Excel
Pivot Chart paraqitja e t dhnave me an t grafeve etj.
Figura e mposhtme tregon paraqitjen e t dhnave n formn Columnar.N formular
shfaqet vetm nj e dhn, fushat mund t rregullohen sipas dshirs.Pastaj sht
mundsia e rregullimit t formularit pr nj pamje m t mir me an t vijave, ngjyrave
dhe efekteve speciale (hija, pamja 3D).


BAZAT E T DHNAVE


48
Paraqitja e disa t dhnave n t njjtn koh n formular sht tipi Tabular q tregohet
n figurn e mposhtme.N kt rast t dhnat paraqiten sipas rreshtave.



Paraqitja e t dhnave n formn Datasheet view sht n mnyr t ngjashme me
pamjen e flets s t dhnave t tabelave si shihet nga figura e mposhtme.



Paraqitja e t dhnave n bllok (Justified) bhet ashtu q do e dhn paraqitet n nj
bllok unik si shihet nga figura e mposhtme.



Paraqitja e formularit n formn main/subforms sht nj formular kryesor dhe nj
formular i ndrvarur.Kjo do t ishte nj metod e mir pr t paraqitur klientt n
formularin kryesor si dhe tipin e kredis n formularin e ndrvarur si n figurn e
mposhtme.

BAZAT E T DHNAVE


49




Paraqitja e formularve n form Pivot Table dhe Pivot Chart sht paraqitje e njjt
sikur te Microsoft Excel.




BAZAT E T DHNAVE


50
Krijimi i formularit me AutoForm

Mnyra m e shpejt pr krijimin e formularit sht me prdorimin e AutoForm. Por me
kt mnyr nuk na jepet kontroll mbi dizajnin e formularit si do t shohim m posht.

Nj ndr mnyrat e krijimit t formularit me AutoForm sht:

Te objektet e bazs zgjedhim Tables (Tabelat) dhe zgjedhim tabeln me an t s cils
dshirojm t krijojm formularin, pastaj shkojm n toolbar te pulla New Object dhe
zgjedhim AutoForm. Do t shohim se formulari do t krijohet automatikisht.

Shembull:
N bazn e t dhnave Banka te objektet e bazs Tables zgjedhim tabeln KLIENTT, n
toolbar te pulla New Object zgjedhim AutoForm dhe do t krijohet formulari si n
figurn e mposhtme.



Si shihet n formular u paraqit edhe tabela KREDIT kjo vjen ngase kto dy tabela jan
t lidhura n dritaren e lidhjeve (Relationship window).








BAZAT E T DHNAVE


51
Krijimi i formularit me ndihmn Asistentit t formularit
(Form Wizard)

Me an t Asistentit t formularit e thjeshtojm renditjen e fushave n formular. Asistenti
i formularit na udhheq npr nj varg pyetjesh pr formularin t cilin dshirojm ta
krijojm.Ekzistojn disa mnyra pr ta aktivizuar Asistentin e formularit:

Nga dritarja e bazs s t dhnave zgjedhim Insert dhe Form
Nga objektet e bazs zgjedhim Forms dhe klikojm n pulln New n dritaren e
bazs s t dhnave
N toolbar zgjedhim pulln New Object dhe Form
Pamarr parasysh se ciln mnyr e zgjedhim pr krijimin e formularit neve do t na
paraqitet dritarja e mposhtme.



Ku aty mund t zgjedhim tipin e krijimit t formularit dhe tabeln ose pyetsorin nga i
cili do t krijojm formularin. Dritarja New Form ka nnt zgjedhje pr krijimin e
formularit:

1. Design View - paraqet nj formular plotsisht t zbrazt
2. Form Wizard - krijon formularin nga gjasht mundsi t parazgjedhura:
Columnar, Tabular, Datasheet, Justified, PivotTable dhe PivotChart.
3. AutoForm: Columnar - krijon formularin n baz t tipit Columnar
4. AutoForm: Tabular - krijon formularin n baz t tipit Tabular
5. AutoForm: Datasheet - krijon formularin n baz t tipit Datasheet
6. AutoForm: PivotTable - krijon formularin n baz t tipit Pivot Table
7. AutoForm: PivotChart - krijon formularin n baz t tipit Pivot Chart
BAZAT E T DHNAVE


52
8. Chart Wizard: krijon formularin me an t grafeve t ndryshme
9. PivotTable Wizard: krijon formularin si Excel Pivot Table

Pr startimin e Asistentit pr krijimin e formularit zgjedhim Form Wizard.
N pjesn e poshtme t dritares mund t zgjedhim tabeln ose pyetsorin (t krijuar m
par) pr krijimin e formularit. Pra te Choose the table or query where the objects data
comes from: zgjedhim objektin e dshiruar dhe klikojm OK. Pastaj na paraqitet dritarja
pr zgjedhjen e fushave nga objektet e bazs. Pra mund t zgjedhim fusha nga nj ose m
shum tabela ose pyetsor.



Fushat q dshirojm t jen n formular i zgjedhim dhe pastaj i shtojm n ann e
djatht m an t ktyre pullave:


Shto fushn e zgjedhur

Shto tr fushat


Largo fushn e zgjedhur

Largo tr fushat





BAZAT E T DHNAVE


53
Pas zgjedhjes s fushave shtypim pulln Next dhe hapet dritarja pr renditjen e fushave
n formular.




Pasi t jet zgjedhur forma e renditjes s fushave n formular shtypim pulln Next dhe
hapet dritarja pr zgjedhjen e pamjes (stilit) s formularit. Jan n dispozicion dhjet
opcione, ku pamja e secilit opcion mund t shihet n ann e majt t dritares vetm me
klikim t opcionit. Zgjedhet nj opcion dhe shtypet pulla Next.



Pastaj paraqitet dritarja pr emrimin e formularit si dhe opcionin pr hapjen e formularit.
Varsisht se a dshirojm q formulari t hapet n pamjen e tij prfundimtare zgjedhim
BAZAT E T DHNAVE


54
Open the form to view or enter information apo dshirojm q t ndrrojm dika n
dizajnin e formularit me an t Design View zgjedhim Modify the forms design. Pastaj
shtypim pulln Finish.



Hapja e formularit bhet duke klikuar dyher n formular dhe do t shohim t dhnat.
Navigimi n formular bhet me an t pullave n fund t formularit


Kthen te e dhna e par

Kthen te nj e dhn pas

E dhna me radh

E dhna e fundit

Pulla pr shtimin e t dhnave n formular (njsoj si te tabelat dhe pyetsort)

Si u pa me krijimin e formularit me an t Asistentit t formularit (Form Wizard) nuk
kemi shum kontroll mbi krijimin e formularit. Ashtu si edhe te tabelat dhe pyetsort
kontroll m t madhe n krijimin e formularit do t kemi me an t Design View.
Krijimi i formularit n Design View bhet me klikimin n pulln New dhe duke zgjedhur
Design View ndrsa te Choose the table or query where the objects data comes from
shkruajm tabeln ose pyetsorin q do ta shfrytzojm pr krijimin e formularit. Pastaj
BAZAT E T DHNAVE


55
do t paraqitet nj formular bosh, fushat e objektit t zgjedhur (tabel ose pyetsor) dhe
kutia e veglave(toolbox).



Elementet kryesore prbrse t pamjes Design View t formularit jan: zona e formularit
dhe elementet e kontrollit. Formulari prbhet nga Kreu i formularit (Form Header), Kreu
i faqes (Page Header), Detalet (Detail), Fundi i faqes (Page Footer) dhe Fundi i
formularit (Form Footer). Q t shihen kto pjes prbrse t formularit shkojm n
menyn kryesore te View dhe zgjedhim Page Header/Footer dhe Form Header/Footer.
Ndrsa elementet e kontrollit prcaktojn prmbajtjen e formularit n pjes t veanta t
tij.
Kreu i formularit prban mbishkrimin e formularit q shfaqet n pjesn e siprme, ndrsa
Fundi i formularit pjesn e poshtme t tij. Pjesa e Detaleve prmban fushat me t dhna
nga tabela ose pyetsori.

Elementet e kontrollit

Jan tri lloje t elementeve t kontrollit:

1. Elementet e lidhura
2. Elementet e palidhura
3. Elementet e kontrollit pr kryerjen e prllogaritjeve

Elementet e lidhura t kontrollit paraqesin t dhnat nga fushat n tabel ose pyetsor me
an t t cilve sht krijuar formulari. Poashtu elementet e lidhura prdoren edhe pr
futjen e t dhnave n formular.
Elementet e palidhura t kontrollit paraqesin informacionin q nuk sht n tabel.
Elementet e palidhura mund t jen tekst, fotografi, vija ose drejtkndsha t vizatuar n
formular. Zakonisht elementet e palidhuara shoqrohen me elementet e lidhura si
BAZAT E T DHNAVE


56
emrtues dhe poashtu prdoren pr t ofruar instruksione pr mnyrn e shtimit t t
dhnave.
Elementet e kontrollit pr kryerjen e prllogaritjeve prmbajn rezultatin nga llogaritja
me fushat e tabels.
N figurn e mposhtme shihen t tri llojet e elementeve t kontrollit. Emri i banks pra
BANKA E KOSOVS sht nj element i palidhur i kontrollit. Ndrsa fushat n pjesn e
detaleve jan elemente t lidhura sepse jan t lidhura me emrat e fushave. Fusha
Kohzgjatja n jav sht nj shembull i elementit t kontrollit pr kryerjen e
prllogaritjeve, ku funksioni DateDiff sht shfrytzuar pr t llogaritur diferencn e
kohs (n jav) s lshimit t kredis dhe dats s sotme.



Veprimet themelore me elementet e kontrollit

Me klikimin n elementin e kontrollit bjm selektimin e tij, ndrsa selektimi i disa
elementeve bhet duke mbajtur shtypur pulln SHIFT dhe duke klikuar mbi elementet e
kontrollit. Heqja e selektimit bhet duke klikuar n nj siprfaqe t lir t zons s
formularit. Ndryshimi i dimensionit bhet duke selektuar elementin prkats dhe
vendosjen e miut n njrn nga pikat e vogla t trheqjes derisa treguesi t marr formn
e nj shigjete t dyfisht. Pastaj bjm trheqjen deri sa elementi t marr dimensionin e
dshiruar. Zhvendosja e elementit t kontrollit bhet me selektimin e tij dhe vendosjen e
miut ndrmjet pikave t trheqjes derisa treguesi t marr formn e dors. Pastaj bhet
trheqja deri te pozita e dshiruar. Fshirja e elemnetit t kontrollit bhet duke selektuar
at dhe duke shtyp pulln Delete.

BAZAT E T DHNAVE


57
Prdorimi i kutis s veglave (Toolbox)

Kutia e veglave prmban vegla pr integrimin e elementeve t ndryshme t kontrollit n
form ose raport. Access-i hap dritaren e kutis s veglave me hapjen e formularit n
Design View, por nse kutia e veglave nuk sht aktivizuar mund ta aktivizojm at duke
klikuar n toolbar n pulln . Integrimi i elementeve t kontrollit nga kutia e
veglave bhet me selektimin e simbolit t dshiruar dhe pastaj klikojm n formular n
vendin ku dshirojm ta integrojm at element t kontrollit. Mbajm t shtypur pulln e
miut dhe e trheqim elementin e kontrollit deri n madhsin e dshiruar. Figura m
posht sht kutia e veglave (elementeve t kontrollit) dhe emrtimet e tyre.

Tani do t mundohemi q pr seciln t japim shpjegim pr prdorimin n dizajnimin e
formularit.



Ky element aktivizohet q n fillim. Ai shrben pr selektimin, zhvendosjen, zmadhimin
e elementeve t kontrollit.



N qoftse sht i aktivizuar ky element gjat integrimit t elementeve tjer t kontrollit
ather do t paraqitet asistenti i elementeve n nj dritare si ndihm pr secilin element
prkats.
BAZAT E T DHNAVE


58


Me ndihmn e elementit t kontrollit Emrtues/Label paraqesim nj tekst prshkrues n
formular ose raport.



Elementi Fush teksti shrben pr paraqitjen e t dhnave dhe i ofron shfrytzuesit t
shtoj t dhna, t ndryshoj t dhna ose t fshij. Secila Fush teksti shoqrohet me nj
Emrtues pr t identifikuar veten.



Me ndihmn e elementit t kontrollit Grup opsionesh mund t bjm bashkimin e
elementeve t kontrollit Pull els, Pull opsionale dhe Kutiz kontrolli n nj pjes t
tr.





Kto tri tipe t pullave shrbejn q shfrytzuesi t bj nj zgjedhje. T tri pullat
veprojn njsoj vetm se pamja e tyre sht e ndryshme. Kto elemente t kontrollit
prdoren te tipet e t dhnave Yes/No. Kto kthejn vlern -1 nse vlera e pulls sht
Yes, On ose True ndrsa 0 nse vlera e pulls sht No, Off ose False.



Elementi Fush kombinimesh paraqitet n nj rresht, kshtu q mund t zgjedhim ose nga
lista e shkruar m par ose mund t shkruajm tekstin e dshiruar. Prparsi e fushs s
kombinimeve sht nga fakti se lista shpaloset vetm ather kur hapet Fusha e
kombinimeve duke zn kshtu pak vend n siprfaqen e formularit.




BAZAT E T DHNAVE


59


Ky element prmban listn e t dhnave nga t cilat shfrytzuesi mund t bj zgjedhjen.
Fusha listore sht gjithnj e hapur n dallim nga elementi i kontrollit Fush
kombinimesh dhe n t nuk mund t shkruajm vlerat q dshirojm. Ky element i
kontrollit prdoret kur ka mjaft hapsir n formular.



N varsi ky element i kontrollit prdoret pr ekzekutimin e makrove, ekzekutimin e
ndonj programi n Basic, mbylljen e formularit etj. T gjitha mundsit me pulln
komand do ti paraqesim n tabelat e mposhtme. Si shihet nga figura e mposhtme
aksionet me Pulln komand ndahen n disa kategori ato jan:





Pullat e navigimit (Record navigation)
Veprimet me t dhna (Record Operations)
Veprimet me formular (Form Operations)
Veprimet me raporte (Report Operations)
Programet (Applications)
T ndryshme (Miscellaneous)
BAZAT E T DHNAVE


60
Ku secila kategori prmban veprimet (aksionet) prkatse.

Pullat e navigimit
Find Next Gjeje tjetrin
Find Record Gjeje t dhnn
Go To First Record Shko te e dhna e par
Go To Last Record Shko te e dhna e fundit
Go To Next Record Shko te e dhna e radhs
Go To Previous Record Shko te e dhna paraprake

Veprimet me t dhna
Add New Record Shto nj t dhn
Delete Record Fshije t dhnn
Duplicate Record Dyfisho t dhnn
Print Record Shtyp t dhnn
Save Record Ruaje t dhnn
Undo Record Moho t dhnn

Veprimet me formular
Apply Form Filter Zbatoje filtrin
Close Form Mbyll formularin
Edit Form Filter Ndrysho filtrin
Open Form Hape formularin
Open Page Hape faqen
Print a Form Shtyp formularin
Print Current Form Shtyp formularin actual
Refresh Form Data Rifresko t dhnat n formular

Veprimet me raporte
Mail Report Drgo raportin me e-mail
Preview Report Pamja e raportit para shtypjes
Print Report Shtyp raportin
Send Report to File Drgo raportin n nj datotek

Programet
Quit Application Dalja nga programi
Run Application Ekzekuto programin
Run MS Excel Ekzekuto MS Excel
Run MS Word Ekzekuto MS Word
Run Notepad Ekzekuto Notepad


BAZAT E T DHNAVE


61
T ndryshme
Auto dialer Lidhje automatike me telefon
Print Table Shtyp tabeln
Run Macro Ekzekuto nj makro
Run Query Ekzekuto nj pyetsor



Ky element integron nj figur statike n siprfaqen e formularit.



Ky element i kontrollit integron n formular nj object OLE pr t cilin nuk ekziston
ndonj lidhje me tabela ose pyetsor.



Ky element integron n formular nj fush t lidhur objekti OLE por q ruhet n fushat
prkatse t tabelave.



Me ndihmn e ktij elementi t kontrollit caktojm n nj formular kufirin midis faqeve
t tij. Pikrisht n at kufi bhet ndarja e fletve n printim.



Ky element prdoret pr krijimin e formularve me shum faqe.



Ky element shrben pr integrimin e nj formulari brenda formularit tjetr i cili sht i
lidhur sipas nj relacioni 1:n me formularin kryesor.
BAZAT E T DHNAVE


62



Kto dy elemente m shum prdoren pr nga ana estetike e nj formulari.



Me ndihmn e ksaj pulle hapet nj meny e cila i prmban t gjith elementet ActiveX .
Nj nga ato sht integrimi i kalendarit me an t Calendar Control 11.0.

























BAZAT E T DHNAVE


63
Karakteristikat e fushave t formularit

Karakteristikat e fushave jan atribute q mundsojn modifikimin e elementeve t
kontrollit n formular dhe raport. Pra prdoren pr ndryshimin se si t paraqiten t
dhnat. Jan disa mnyra pr shikimin e karakteristikave t fushave:

Selektojm nj element t kontrollit shkojm te View dhe Properties
Selektojm nj element t kontrollit dhe klikojm n pulln Properties n toolbar
Me klikimin dy her t elementit t kontrollit
Klikojm me t djathtn mbi elementin e kontrollit dhe zgjedhim Properties
Ja edhe dritarja e karakteristikave t fushave:

BAZAT E T DHNAVE


64
Dritarja e karakteristikave ka pulln All ku na mundson t shikojm t gjitha
karakteristikat. Ose ne mund t zgjedhim ndonj pull tjetr pr t shikuar karakteristika
t kufizuara me nj grup t karakteristikave, ato jan:

Format Kto karakteristika prcaktojn se si nj emrtues ose vler do t
shihet: germat, madhsia, ngjyra, efektet, kufijt dhe scrollbari.
Data Kto karakteristika ndikojn se si do t paraqiten t dhnat dhe me cilin
burim t t dhnash do t lidhen: control source, maska hyrse, vlefshmria, vlerat
e parazgjedhura dhe tipet tjera.
Event Karakteristikat n kt grup jan: klikimi, shtimi it dhnave, shtypja e
ndonj pulle pastaj pr t ciln definohet nj prgjigje n form t ndonj makro
ose VBA procedur.
Other Karakteristikat n kt grup paraqesin karakteristikat shtes t kontrollit
si emri, prshkrimi n status bar.

Disa karakteristika t veanta t elementeve t kontrollit

Control Source n pulln Data te Control Source prcaktohet fusha e t dhnave q i
prket elementit t kontrollit ose nj formul prllogaritjeje.

Enabled n pulln Data te Enabled e bjm No dhe e dhna do t paraqitet e hijzuar
(pamja A).
Locked n pulln Data te Locked zgjedhim Yes dhe n at fush nuk mund t
shkruajm t dhna (pamja B).
BAZAT E T DHNAVE


65


Control Tip Text prdoret pr drejtkndshin e informacionit (QuickInfo), n pulln
Other te Control Tip Text shkruajm tekstin prshkrues informativ.





BAZAT E T DHNAVE


66
Status Bar Text edhe me kt karakteristik ofrojm m shum informacion pr fushat
i cili informacion do t paraqitet n status bar. N pulln Other te Staus Bar Text
shkruajm informacionin e dshiruar dhe e ruajm formularin.




Visible disa fusha me an t ksaj karakteristike mund ti bjm t padukshme n
siprfaqen e formularit. Te pulla Format te Visible zgjedhim No.


Allow Edits, Alow Deletions, Allow Additions dhe Data Entry

S pari shkojm n ann e majt lart t formularit dhe klikojm me t djathtn dhe
zgjedhim Properties.

BAZAT E T DHNAVE


67
Pastaj shkojm te pulla Data dhe aty do ti shohim kto karakteristika:

Karakteristika Prshkrimi E parazgjedhur
Allow Edits
Nse zgjedhim No ather t dhnat n formular
nuk do t mund t ndryshohen.
Yes
Allow Deletions
Nse zgjedhim No ather nuk lejohet fshirja e t
dhnave n formular.
Yes
Allow Additions Nse zgjedhim No nuk lejohet shtimi it dhnave Yes
Data Entry
Nse zgjedhim Yes ather do t mund t shtojm
t dhna n formular por ato ekzistuese nuk do ti
shohim.
No

Ndrrimi i prapavis s formularit me foto

Shkojm n ann e majt lart klikojm me t djathtn dhe zgjedhim Properties dhe hapet
dritarja e karakteristikave. N at dritare te pulla Format zgjedhim karakteristikn Picture
dhe klikojm n pulln djathtas dhe zgjedhim foton q dshirojm dhe e ruajm
formularin. Kur t hapim formularin n Form View do t shohim se n prapavij sht
foto q kemi zgjedhur.

Fshehja e pullave t navigimit

Njsoj si m lart shkojm te Properties, te Navigation Buttons zgjedhim No. Kur t
ekzekutohet formulari pullat e navigimit nuk do t shihen.

Q formulari

t merr pamjen

duhet q n Properties si m lart t veprohet kshtu: te Scroll Bars zgjedhim Neither, te
Record Selectors zgjedhim No, te Navigation Buttons zgjedhim No, te Border Style
zgjedhim None dhe te Control Box zgjedhim No.

BAZAT E T DHNAVE


68
Krijimi i nnformularve

Krijimi i nnformularve bhet n tri mnyra:

Me Asistentin e formularit (Form Wizard)
Me kutin e veglave (toolbox)
Me trheqjen e nnformularit n formular n dritaren e bazs s t dhnave
Krijimi i nnformularit me Asistentin e formularit (Form Wizard)
N dritaren e bazs s t dhnave zgjedhim Forms dhe pastaj shtypim pulln New, hapet
dritarja New Form, aty zgjedhim Form Wizard (Asistenti i formularit) ndrsa m posht
zgjedhim tabeln KLIENTT dhe shtypim OK. I bartim t gjitha fushat n ann e djatht
me pulln . Pastaj zgjedhim tabeln KREDIT te Tables/Queries dhe i bartim
fushat Tipi i Kredis, Shuma, Kohzgjatja e kredis dhe Aprovimi n fund shtypim Next.
N rastin ton tabelat KLIENTT dhe KREDIT jan t lidhura me lidhjen nj me
shum prandaj nuk do t kemi problem pr krijimin e ktij formulari me nnformular
brenda, prndryshe Access-i do t lajmroj pr gabim.
Pasi t jet shtypur pulla Next na hapet dritarja ku do t zgjedhim se si do ti shohim t
dhnat.

Tani mund t zgjedhim Formular me nnformular ose formular t lidhur (paraqiten
ndamas). Zgjedhim Form with subform(s) dhe shtypim Next. Hapet dritarja ku kemi
mundsi t zgjedhim renditjen e fushave n formular, zgjedhim njrn prej tyre P.SH.
BAZAT E T DHNAVE


69
Datasheet dhe shtypim Next. Nga dritarja tjetr zgjedhim stilin (pamjen) e formularit
P.SH. Industrial dhe shtypim Next. N fund i vejm emrin formularit dhe nnformularit
dhe shtypim Finish. Do t shohim dritaren



Krijimi i nnformularit me an t kutis s veglave (toolbox)

Hapim formularin e dshiruar n Design View dhe nga kutia e veglave zgjedhim pulln
Subform/Subreport dhe e vendosim n formular duke caktuar edhe madhsin e
nnformularit dhe hapet dritarja ku do t zgjedhim nnformularin i cili duhet t jet i
krijuar q m par. Si nnformular mund t zgjedhim tabel, pyetsor ose formular.

BAZAT E T DHNAVE


70
Zgjedhim objektin e dshiruar pastaj shtypim Next dhe hapet dritarja ku mund t
definojm se cilat fusha nga formulari do t jen t lidhura me fushat n nnformular. I
kemi dy opsione Choose from a list pra t zgjedhim nga lista e mposhtme ose Define my
own t definojm vet lidhjet e fushave. Zgjedhim Choose from a list dhe shtypim Next.
Emrojm formularin dhe shtypim Finish. N fund do t shohim se krijuam nj formular
me nnformular.

Krijimi i nnformularit me trheqjen nga dritarja e bazs s t dhnave

Hapim nj formular n Design View, ather nga dritarja e bazs s t dhnave trheqim
nj formular q dshirojm t jet nnformualr dhe e bartim deri te formulari i hapur n
fillim. Access-i do t mundohet t bj lidhjen n mes ktyre dy formularve.


































BAZAT E T DHNAVE


71
Makrot

Makro sht nj bashksi e urdhrave n varg q ekzekutohet si nj. Makrot n Access
automatizojn aksionet si hapjen e nj tabele, shtypjes s nj formulari, gjetjes s ndonj
t dhne ose zbatimin e filterit. Madje makrot mund t shrbejn edhe pr pulla
komanduese, krijimin e menyve dhe toolbareve. Makro prbhet nga aksioni dhe
argumentet. Aksioni sht puna q duhet kryer si hapja e nj formulari ndrsa argumentet
prcaktojn specifikat e aksionit, si cili formular duhet t hapet. Makrot n Access
krijohen n dritaren Macro Design. Kjo dritare ka dy pjes, pjesa e siprme quhet paneli i
aksionit, i cili prmban deri katr kolona. Ku dy prej tyre jan t parazgjedhura: kolona
Action dhe kolona Comment ndrsa dy kolonat tjera mund ti bjm t dukshme duke
shkuar te View dhe zgjedhur Macro Name dhe Conditions. Kolona Action prmban nj
nga shum aksionet n dispozicion, kolona Comment shrben pr prshkrimin e aksionit.
Prshkrimi i aksionit duket t jet jo i rndsishm kur t krijohet makroja por m von
sht treguar se sht shum i dobishm n rastet kur dshirojm q t ndryshojm
makron. Kolona Macro Name prmban emrin e makros me t cilin do ti referohemi,
kolona Conditions prmban kushtin q duhet plotsuar n mnyr q t ekzekutohet
makroja.
Pjesa tjetr, pjesa e poshtme quhet Action Arguments dhe ndryshon nga pamja n varsi
se cilin aksion kemi zgjedhur. Shumica e aksioneve krkojn m shum se nj argument.




BAZAT E T DHNAVE


72
Krijimi i nj makroje

Hapim bazn e t dhnave, te dritarja e bazs klikojm te Macros dhe pastaj klikojm
pulln New. Do t hapet dritarja Macro Design. Te Action zgjedhim OpenForm, te
Comments shkruajm: Hapim formularin pr tabeln klientt, ndrsa te Action
Arguments, te Form Name zgjedhim formularin KLIENTT. N fund e ruajm makron
me emrin Test-makro. Kt makro mund ta provojm duke krijuar nj pull komande n
ndonj formular, aty zgjedhim kategorin Miscellaneous dhe aksionin Run Macro. Aty
zgjedhim pastaj makron me emrin Test-makro dhe emrojm pulln Hape formularin.
Kur t hapet formulari n Form View dhe shtypet pulla Hape formularin ather do t
hapet formulari KLIENTT.

Si u pa me krijimin e makros kur klikuam n kolonn Action u hap nj list e aksioneve.
Nj makro mund t prmbaj 999 aksione, secili aksion n rresht t veant. N tabeln e
mposhtme jan disa nga aksionet:

Aksioni Prshkrimi
AddMenu Shton meny n nj meny bar
ApplyFilter Zbaton nj filter ose pyetsor
Close Mbyll nj dritare t specifikuar
CopyObject
Kopjon nj object t bazs n nj baz tjetr ose n t njjtn
baz me emr t ndryshm
DeleteObject Fshin objektin e specifikuar
HourGlass Ndryshon pamjen e treguesit t miut n or t rrs.
MsgBox Hap nj dritare q prmban tekst informative ose lajmrues
OpenForm Hap nj formular
OpenDiagram Hap nj diagram
OpenQurey Hap nj pyetsor
OpenReport Hap nj raport
OpenTable Hap nj tabel
Quit Mbyll Access-in
Rename Riemeron objektin e caktuar
RunApp Starton nj program
RunCode Ekzekuton nj procedur t Microsoft Access Basic
RunMacro Ekzekuton nj makro
Save Ruan objektin e caktuar
SetWarnings Kthen sistemin e porosive On dhe Off
StopAllMacros Ndalon t gjitha makrot e ekzekutuara
TransferDatabase
Importon ose eksporton t dhna n mes t dy bazve t t
dhnave
TransferText
Importon ose eksporton tekst n mes t bazs active dhe nj
tekst datoteke

BAZAT E T DHNAVE


73
Raportet

Raportet paraqesin nj form t prshtatshme pr shikimin e t dhnave duke na
mundsuar edhe shypjen e informacioneve n fardo formati. Me an t raporteve mund
t bjm grupimin e t dhnave, kombinimin e tyre sipas dshirs. Mund t krijojm
kalkulime si vlera mesatare ose kalkulime tjera statistikore dhe paraqitjen e tyre grafike.
Raportet mund t prmbajn t dhna nga tabela ose tabela t lidhura dhe nga pyetsort.

Tipet e paraqitjes s raporteve

Tipet baz pr paraqitjen e raporteve jan:

Columnar paraqitja e fushave n nj kolon, t dhnat paraqiten njra mbi
tjetrn.
Tabular paraqitja e t dhnave n rreshta dhe kolona me grupime.
Mail-merge reports krijimi i vrtetimeve, kontratave etj.
Mailing labels paraqitja e t dhnave n etiketa t madhsive t ndryshme.
Figura e mposhtme tregon paraqitjen e t dhnave me an t tipit Columnar.


BAZAT E T DHNAVE


74
Paraqitja e t dhnave pr printim n nj flet n rreshta dhe kolona sht paraqitja me
an t tipit Tabular, si n figurn e mposhtme.



Krijimi i vrtetimeve , kontratave etj bhet me an t tipi Mail-merge reports. Kjo bhet
n Design View si figurn e mposhtme.




BAZAT E T DHNAVE


75
Mailing labels paraqet t dhnat n etiketa t madhsive t ndryshme, si n figurn e
mposhtme.



Kto jan tipet kryesore t krijimit t raporteve, ndrsa mnyrat pr krijimin e tyre jan
me an t:

AutoReport
Design View
Asistentit t raportit (Report Wizard)
AutoReport: Columnar
AutoReport: Tabular
Chat Wizard
Label Wizard




BAZAT E T DHNAVE


76
Krijimi i raportit me an t AutoReport

Mnyra m e shpejt pr krijimin e raportit sht me an t AutoReport. Me an t
AutoReport mund t krijojm raporte vetm nga tabelat e krijuara m par dhe nuk kemi
kontroll mbi dizajnimin e atyre raporteve.
N dritaren e bazs s t dhnave klikojm te Tables dhe zgjedhim nj tabel me an t s
cils dshirojm t krijojm raportin. Pastaj shkojm te pulla New Object zgjedhim
AutoReport(ose Insert dhe AutoReport)dhe raporti do t krijohet automatikisht dhe do t
shfaqet.

Shembull:
N bazn e t dhnave Banka te objektet Tables zgjedhim tabeln KLIENTT, pastaj n
toolbar te pulla New Object zgjedhim AutoReport dhe do t krijohet raporti i mposhtm.













BAZAT E T DHNAVE


77
Krijimi i raportit me an t Asistentit t raportit
(Report Wizard)

Me an t Asistentit t raportit e thjeshtsojm krijimin e raportit. Asistenti i raportit na
udhheq npr nj varg pyetjesh pr krijimin e raportit. Sikurse Asistenti i formularit
edhe Asistenti i raportit na mundson pamje bazike pr raportin t ciln pastaj mund ta
ndryshojm. Ekzistojn disa mnyra pr t aktivizuar Asistentin e raportit:

Nga dritarja e bazs s t dhnave zgjedhim Insert dhe Report
Nga objektet e bazs zgjedhim Reports dhe klikojm n pulln New n dritaren e
bazs s t dhnave
N toolbar zgjedhim pulln New Object dhe Report
Pamarr parasysh se ciln mnyr e zgjedhim pr krijimin e raportit do t hapet dritarja e
mposhtme.



Dritarja New Report prmban gjasht zgjedhje pr krijimin e raportit:

Design View paraqet nj raport plotsisht t zbrazt
Asistentit t raportit (Report Wizard) krijon raportin nga tri mundsi:
Columnar, Tabular dhe Justified
AutoReport: Columnar krijon raportin n baz t tipit Columnar
AutoReport: Tabular krijon raportin n baz t tipit Tabular
Chat Wizard krijon raportin n baz t grafeve t ndryshme
Label Wizard Asistenti i krijimit t etiketave me madhsi t ndryshme

BAZAT E T DHNAVE


78
Pr startimin e Asistentit t raportit zgjedhim Report Wizard.
N pjesn e poshtme t dritares mund t zgjedhim tabeln ose pyetsorin (t krijuar m
par) pr krijimin e formularit. Pra te Choose the table or query here the objects data
comes from: zgjedhim objektin e dshiruar dhe klikojm OK. Pastaj na paraqitet dritarja
pr zgjedhjen e fushave nga objektet e bazs. Pra mund t zgjedhim fusha nga nj ose m
shum tabelave ose pyetsorve.




Fushat q dshirojm t jen n raport i zgjedhim dhe pastaj i shtojm n ann e djatht
m an t ktyre pullave:


Shto fushn e zgjedhur

Shto tr fushat


Largo fushn e zgjedhur

Largo tr fushat

Pra mund t zgjedhim fusha nga m shum se nj tabel ose pyetsor.
Pas zgjedhjes s fushave shtypim pulln Next dhe hapet dritarja pr prcaktimin e
paraqitjes s t dhnave n raport. Ktu prcaktojm se n baz t cils fush do t bjm
grupimin e t dhnave. Kjo zgjedhje bhet me an t shigjetave. Zgjedhim fushn Qyteti
pr grupimin e t dhnave n rastin ton. Mund t zgjedhim m shum se nj fush pr t
br grupimin e t dhnave. Nse nuk zgjedhim fush pr grupimin e t dhnave ather
BAZAT E T DHNAVE


79
gjat krijimit t raportit do t paraqitet dritarja ku do t kemi mundsi t zgjedhim
renditjen e fushave sipas tipit: Columnar, Tabular ose Justified.



Shtypim pulln Next dhe hapet dritarja



E cila mundson q t bjm sortimin e t dhnave sipas rregullave: n rritje A deri n Z
ose 0 deri n 9 dhe n zbritje Z deri n A ose 9 deri n 0. Bjm zgjedhjen e dshiruar
dhe shtypim pulln Next. Pastaj paraqitet dritarja e przgjedhjes s pamjes s t dhnave
n raport. Aty kemi gjasht zgjedhje q mund ti shohim n ann e majt t dritares me
klikimin n ann e djatht t zgjedhjeve. Aty sht edhe
BAZAT E T DHNAVE


80
zgjedhja pr fletn e raportit se si t ket pamjen Portrait ose Landscape P.SH. zgjedhim
Stepped dhe Portrait dhe shtypim pulln Next.



Pas zgjedhjes s pamjes, hapet dritarja pr zgjedhjen e stilit t paraqitjes s t dhnave (si
n figurn e mposhtme). Secili stil ka prapavij t ndryshme, shkronja, madhsi t
ndryshme. Ku secili q klikohet, n ann e majt mund t shihet pamja e tij. Zgjedhim
Casual dhe shtypim pulln Next.


N fund paraqitet dritarja pr emrimin e raportit, si dhe zgjedhjes se a dshirojm t
bjm modifikim n Design View apo raporti t hapet n formn e tij prfundimtare.
Shtypim pulln Finish dhe raporti do t duket ksisoj:
BAZAT E T DHNAVE


81


Ky raport mund t printohet : File dhe Print dhe hapet dritarja pr printim e Microsoft
Windows , pra njsoj si te programet Microsoft Office. Ruajtja e raportit bhet duke
shkuar n File dhe Save ose File dhe Save As.

Krijimi i raportit n Design View

Krijimi i raportit me an t Asistentit t raportit nuk na jep shum kontroll mbi
dizajnimin e tij, por si do t shohim me krijimin e raportit n Design View ne kemi
mundsi t shumta n dizajnimin e raportit. N dritaren e bazs klikojm Reports shtypim
pulln New dhe zgjedhim Design View, ndrsa te Choose the table or query where the
objects data comes from: zgjedhim tabeln ose pyetsorin me an t cilit do t krijojm
raportin.

BAZAT E T DHNAVE


82
Elementet kryesore prbrse t pamjes Design View t raportit jan: zona e raportit dhe
elementet e kontrollit. Raporti prbhet nga Kreu i raportit (Report Header), Kreu i faqes
(Page Header), Detalet (Detail), Fundi i faqes (Page Footer) dhe Fundi i raportit (Report
Footer). Q t shihen kto pjes prbrse t formularit shkojm n menyn kryesore te
View dhe zgjedhim Page Header/Footer dhe Report Header/Footer.
Veprimet me elementet e kontrollit dhe prdorimi i kutis s veglave (toolbox) sht i
njjt si te formulart. Karakteristikat e fushave n raport jan njsoj si te formulart t
gjitha vetit q u paraqitn te formulart vlejn edhe pr raportet. Poashtu edhe krijimi i
nnraporteve bhet n mnyr t njjt si te formulart.





































BAZAT E T DHNAVE


83
Dritarja komanduese (Switchboard)

M hert kemi msuar pr krijimin e objekteve t bazs s t dhnave si tabelat,
pyetsort, formulart, raportet dhe makrot. Pastaj kemi punuar me secilin object vemas,
ndrsa me an t dritares komanduese do ti bashkojm kto objekte n nj program pa
pas nevoj t shkruajm ndonj program kompleks pr baza t t dhnave. Me an t
dritares komanduese do t bjm automatizimin e funksionimit t bazs s t dhnave.
N Access dritarja komanduese (switchboard) sht nj form q lejon shfrytzuesin t
ekzekutoj urdhra nga nj dritare kryesore. N fakt dritarja komanduese sht nj
formular i cili nuk sht i lidhur me ndonj tabel ose pyetsor. Dritarja komanduese
prmban pulla komanduese ose objekte tjera q ekzekutojn makrot. Krijimi i nj dritare
komanduese duhet t jet hapi i fundit i krijimit t nj baze t t dhnave. Jan disa
mnyra pr krijimin e driatres komanduese, mund t shfrytzojm Switchboard Manager-
in ose me an t nj formulari t zbrazt. Nse shfrytzojm Switchboard Manager-in pr
krijimin e dritares komanduese ather Access-i automatikisht do t krijoj nj tabel e
cila prshkruan aksionet q kryejn pullat n dritaren komanduese. Poashtu mund t
krijojm dritaren komanduese n Design View duke prdor nj formular t zbrazt.
Nse krijojm nj formular i cili do t shfrytzohet pr dritaren komanduese ather ai
formular nuk duhet t jet i lidhur me ndonj tabel ose pyetsor. Q ky formular t
ket pamjen e nj dritare komanduese duhet q n karakteristikat (properties) e formularit
t bjm disa ndryshime si: fshehja e pullave t navigacionit, scrollbareve, kufirit t
formularit etj.

Krijimi i dritares komanduese

Nga menyja zgjedhim Tools pastaj Database Utilities dhe Switchboard Manager.



Do t hapet dritarja me porosin:

BAZAT E T DHNAVE


84
Switchboard Manager-i nuk ka gjet ndonj dritare komanduese. A dshironi t
krijoni nj?

Klikojm n Yes dhe hapet dritarja.



Close e mbyll dritaren komanduese
New - krijimi i nj dritare komanduese t re
Edit - ndryshimi i dritares komanduese t selektuar
Delete fshirja e dritares komanduese t selektuar
Make Default e bn dritaren komanduese t selektuar t parazgjedhur

Shtypim Edit dhe hapet dritarja.


N fushn Switchboard Name: shkruajm emrin me t cilin dshirojm q ta ruajm
dritaren komanduese, ndrsa me an t pulls New krijojm pulla t reja n dritaren
komanduese. Shtypim pulln New dhe hapet dritarja.
BAZAT E T DHNAVE


85




Te fusha Text: shkruajm tekstin q do t paraqitet pr pulln komanduese.
Te Command: zgjedhim urdhrin q do t kryej ajo pull komanduese, ku aty jan disa
mundsi t treguara m posht:





Urdhri Prshkrimi
Go to Switchboard Hape dritaren komanduese
Open Form in Add Mode Hape formularin pr shtimin e t dhnave
Open Form in Edit Mode Hape formularin pr ndryshimin e t dhnave
Open Report Hape raportin
Design Application
Hape dritaren komanduese pr ndryshime n
dizajn
Exit Application Mbyll bazn e t dhnave
Run Macro Ekzekuto makron
Run Code Ekzekuto kodin


Zgjedhim njrn nga mundsit dhe shtypim OK. Dritarja komanduese do t ket pamjen.
BAZAT E T DHNAVE


86

Krijimi i dritares komanduese me Design View, bhet si te krijimi i formularve vetm se
aty i fshehim pullat e navigacionit, kufirin e formularit, pullat pr minimizim,
maksimizim dhe mbyllje.
Pasi t krijohet dritarja komanduese sht mir q ajo t jet startuese. Pra sa her q
hapet baza e t dhnave t hapet dritarja komanduese. Pr kt shkojm te Tools pastaj
StartUp dhe te Display Form/Page zgjedhim dritaren komanduese.

Maksimizimi i dritares komanduese
Nse dshirojm q kjo dritare t maksimizohet sa tr monitori dhe nga dritarja t
largohen : pullat e navigacionit, pullat pr minimizim, maksimizim dhe mbyllje veprojm
kshtu.
Hapim dritaren komanduese n Design View dhe shtypim pulln Properties n toolbar.
Pastaj hapet dritarja e karakteristikave dhe aty i bjm kto ndryshime:
Scrollbar Neither
Record Selectors No
Navigation buttons No
Dividing lines No
Pop up Yes
Auto resize Yes
Border style None
Control box No
Min Max buttons None
Close button No
On Open
Event procedure dhe klikojm n tri pikat dhe hapet
dritarja ku e shkruajm kodin:
Private Sub Form_Open(Cancel As Integer)
DoCmd.Maximize
End Sub
BAZAT E T DHNAVE


87
Paraqitja e dritares prshndetse kur t starton dritarja komanduese

S pari krijojm nj makro me emrin Prshndetje, ku n kolonn Action do t zgjedhim
MsgBox, ndrsa n pjesn e poshtme pra te Action Arguments te rreshti Message
shkruajm: Prshndetj, pastaj te rreshti Type zgjedhim Information, te rreshti Title
shkruajm titullin e dritares prshndetse. N fund e ruajm makron. Pastaj hapim
dritaren komanduese n Design View dhe shtypim pulln Properties. Te Event gjejm
karakteristikn On Open dhe zgjedhim makron Prshndetje, i ruajm ndryshimet e bra
dhe e hapim dritaren komanduese. Do t shohim se do t paraqitet nj dritare me tekstin
Prshndetje. Poashtu mund t bjm q dritarja t paraqitet edhe kur t mbyllet dritarja
komanduese, shkojm te Properties, Event dhe te karakteristika On Close zgjedhim
makron q dshirojm.


































BAZAT E T DHNAVE


88


MYSQL













BAZAT E T DHNAVE


89
Instalimi i MySQL n Windows

Krkesat e sistemit operativ Windows

Pr t punuar me MySQL n Windows duhet t plotsohen kto kushte:

Sistemi operativ Windows 32 bitsh si: 9x, Me, NT, 2000, XP ose Windows
Server 2003
Prkrahje t protokollit TCP/IP
Nj kopje t MySQL binare pr Windows
Programi q do t lexoj .zip datotekat
Hapsir t mjaftueshme n hard disk (n prgjithsi rekomandohet 200 MB)

Zgjedhja e pakets instaluese
Pr MySQL 5.0 jan tri paketa instaluese prej ku mund t bjm instalimin e MySQL n
Windows, ato jan:

Paketa esenciale (Essential package) : Kjo paket e ka emrin mysql-essential-
5.0.18-win32.msi dhe prmban minimumin e datotekave t nevojshme pr
instalimin e MySQL n Windows, duke prfshir edhe Asistentin e konfigurimit
(Configuration Wizard).
Paketa e plot (Complete package):Kjo paket e ka emrin mysql-5.0.18-win32.zip
dhe prmban datotekat pr instalimin e plot t MySQL n Windows, duke
prfshir edhe Asistentin e konfigurimit (Configuration Wizard). Kjo paket
prmban komponente opsionale si serverin.
Paketa joinstaluese (The noninstall archive): Kjo paket ka emrin mysql-noinstall-
5.0.18-win32.zip dhe prmban t gjitha datotekat q jan n paketn e plot duke
prjashtuar Asistentin e konfigurimit. Kjo paket nuk prmban instalimin e
automatizuar prandaj duhet t instalohet dhe konfigurohet n mnyr
joautomatike.



BAZAT E T DHNAVE


90
Instalimi i MySQL-it me an t Asistentit t instalimit
(Installation Wizard)
Paketa esenciale ose e plot
Shkarkimi dhe startimi i Asistentit pr instalimin e MySQL-it

Paketat instaluese t MySQL mund t shkarkohen nga adresa :
http://dev.mysql.com/downloads/
Procesi i startimit t Asistentit t instalimit dallon nga prmbajtja e pakets s shkarkuar.
Nse sht datoteka Setup.exe ather vetm klikohet dy her n t pr t startuar
instalimin me Asistentin e instalimit, e njjta vlen nse datoteka e shkarkuar sht .msi .



Zgjedhja e tipit t instalimit
Jan tri lloje t instalimit n dispozicion: Tipike (Typical), E plot (Complete) dhe
Sipas dshirs (Custom).

Instalimi Tipik instalon MySQL serverin, komand-rreshtin mysql pr klientin
dhe komand-rreshtin me vegla. Komand-rreshti pr klientt dhe veglat
prmbajn mysqldump, myisamchk dhe vegla t tjera q ndihmojn n
menaxhimin e MySQL serverit.

Instalimi i plot i MySQL prmban t gjitha komponentat n paketn instaluese.
Instalimi i plot prmban komponente si librari serverin, prkrahja e skriptave dhe
dokumentimit.

BAZAT E T DHNAVE


91
Instalimi sipas dshirs na ofron kontroll dhe m shum mundsi pr zgjedhjen e
pakets instaluese.


Nse dshirojm t ndrrojm shtegun e instalimit ose ndonj komponenet ather duhet
t zgjedhim Custom (Sipas dshirs). Prndryshe preferohet t zgjedhet Typical. Bjm
zgjedhjen e duhur dhe shtypim Next. Hapet dritarja konfirrmuese me zgjedhjet e bra m
hert. Pr t instaluar MySQL me kto zgjedhjet e bra vetm shtypim Install. Pr t
ndryshuar zgjedhjet e bra vetm shtypim pulln Back dhe bjm ndrrimet e nevojshme.
Nse dshirojm q t ndrpresim instalimin ather shtypim pulln Cancel.



BAZAT E T DHNAVE


92

Pas shtypjes s pulls Install paraqitet dritarja, ku do instalohen t gjitha komponentat e
zgjedhura.



Pas instalimit na krkohet t krijojm nj llogari n MySQL.com por ktu ne zgjedhim
Skip-Sign Up dhe shtypim Next.



BAZAT E T DHNAVE


93
Dhe hapet dritarja q tregon se instalimi prfundoi. N kt dritare sht mundsia e
zgjedhjes pr konfigurimin e MySQL serverit, e bjm zgjedhjen e saj dhe shtypim
Finish.


Tani na paraqitet dritarja prshndetse pr konfigurimin e MySQL serverit. Pra do t
krijojm nj instanc t serverit. Shtypim pulln Next.



Do t hapet dritarja pr zgjedhjen e tipit t serverit. Jan tri tipe nga t cilat mund t
zgjedhim, dhe pasi t zgjedhim tipin e serverit kjo do t ndikoj n vendimet q i bn
Asistenti i konfigurimit pr sa i prket memories n disk dhe shfrytzimin e procesorit.
BAZAT E T DHNAVE


94



Developer Machine : Zgjedhni kt opsion nse keni ndrmend q MySQL ta
shfrytzoni pr nevoja personale. Me kt MySQL serveri do t shfrytzoj
minimumin e burimeve t sistemit.
Server Machine : Zgjedhni kt opsion pr server aty ku MySQL serveri do t
punoj s bashku me servert tjer si jan FTP, E-mail dhe Web servert.
MySQL serveri sht i konfiguruar ashtu q t shfrytzoj nj mesatare t
burimeve t sistemit.
Dedicated MySQL Server Machine : Zgjedhni kt opsion nse dshironi q
vetm MySQL serveri t punoj n at makin . MySQL serveri sht i
konfiguruar ashtu q t shfrytzoj t gjitha burimet q jan n dispozicion nga
burimet e sistemit.




Shtypim Next dhe hapet dritarja pr mnyrn e shfrytzimit t bazs s t dhnave. Jan
tri opsione ne do t zgjedhi opsionin e fundit Non-Transactional Database Only.

BAZAT E T DHNAVE


95


N fund shtypim pulln Next. Do t paraqitet dritarja pr kufizimin e kyjeve n MySQL
server. Jane tri opsione:
Decision Support (DSS)/OLAP : Zgjedhni kt opsion nse serveri nuk do t
krkoj numr t madh t kyjeve. Numri maksimal i kyjeve sht 100.
Online Transaction Processing (OLTP) : Zgjedhni kt opsion nse serveri krkon
nj numr t madh t kyjeve. Numri maksimal i kyjeve sht 500.
Manual Setting : Zgjedhni kt opsion pr t vn numrin maksimal t kyjeve.

BAZAT E T DHNAVE


96
Zgjedhim opsionin e par dhe shtypim Next. Pastaj hapet dritarja pr zgjedhjen e TCP/IP
pr komunikim n rrjet ose jo dhe pr konfigurimin e portit n t cilin do t kyemi n
MySQL serverin. TCP/IP sht e parazgjedhur, pr t mos zgjedhur TCP/IP vetm e
aktivojm kutizn. Porti 3306 sht port i parazgjedhur nga Asistenti i konfigurimit, pr
t ndrruar numrin e portit vetm zgjedhim nj numr nga lista ose vetm e shkruajm
at. Nse porti q keni zgjedhur sht ve n shfrytzim ather do t krkohet nga ju pr
nj numr tjetr.



Bjm zgjedhjet e duhura dhe shtypim pulln Next. Do t hapet dritarja pr zgjedhjen e
bashksis s karakterve. Jan tri opsione zgjedhim opsionin e par Standard
Character Set.

BAZAT E T DHNAVE


97
Dhe shtypim pulln Next. Do t hapet dritarja pr zgjedhjen e shrbimit (Service) t
MySQL. N platformn Windows MySQL mund t instalohet si shrbim (Service).
Asistenti i konfigurimit e ka t parazgjedhur instalimin e MySQL serverit si shrbim
(Service). Nse dshirojm q t mos instalojm MySQL si shrbim ather vetm e
aktivojm kutin. Pr instalimin e MySQL serverit si shrbim por q ai t mos startoj
automatikisht duhet t aktivojm kutin te Launch the MySQL Server automatically.





Shtypim pulln Next. N dritaren pr sigurin sht e preferuar t vhet fjalkalimi (root
passord) pr MySQL serverin.Asistenti i konfigurimit krkon vnien e nj fjalkalimi.
Nse nuk dshirojm q t vjm fjalkalim ather e aktivojm kutin te Modify
Security Settings.
Pr vnien e fjalkalimit shkruajm fjalkalimin n New root password kutin dhe n
Confirm kutin. Nse jemi duke br rikonfigurimin e instancs s MySQL serverit
ather do t na krkohet q t shkruajm edhe fjalkalimin ekzistues n Current root
password kutin.
Pr t ndaluar kyjen n MySQL server prmes rrjets vetm e aktivojm kutin te
Enable root access from remote machines. Kjo rrit sigurin e fjalkalimit.
Pr krijimin e nj shfrytzuesi anonym e aktivojm kutin afr Create An Anonymous
Account. Me krijimin e nj shfrytzuesi anonym do t zvoglojm sigurin n server dhe
do t shkaktojm vshtirsira n kyje dhe leje pr at shfrytzues. Pr kt arsye nuk
preferohet krijimi i shfrytzuesit anonim.
BAZAT E T DHNAVE


98


Shkruajm fjalkalimin : fshmn dhe e konfirmojm at. Shtypim pulln Next. N fund
paraqitet dritarja konfirmuese. Pr startimin e konfigurimit t MySQL serverit shtypim
Execute. Pasi t shtypet Execute, Asistenti pr konfigurimin e MySQL serverit kryen
detyrat e prcaktuara m par duke treguar progresin n dritaren konfirmuese. Asistenti i
konfigurimit t MySQL serverit i shkruan t gjitha konfigurimet e serverit n datotekn
my.ini i cili gjendet n C:\Program Files\MySQL\MySQL 5.0\my.ini .



Dhe n fund shtypim Finish pr prfundimin e konfigurimit t serverit.
BAZAT E T DHNAVE


99


Shkojm pastaj te Start Programs MySQL MySQL Server 5.0 MySQL
Command Line Client dhe hapet dritarja:



Shkruajm fjalkalimin fshmn dhe kyemi n server.











BAZAT E T DHNAVE


100
ka sht MySQL

MySql sht nj system i menaxhimit t relacioneve t bazave t t dhnave (RDBMS) .
Nuk prmban n vehte vetm pjesn e serverit pr menaxhim t bazs s t dhnave, por
ai ka edhe vegla pr qasjen e bazs s t dhnave dhe ndrtimin e programeve
prkundrejt atyre bazave t t dhnave. Disa prej veglave jan:

mysql Ekzekuton SQL komandat prkundrejt MySQL. Poashtu mund t
prdoret pr ekzekutimin e SQL komandave t ruajtura n datoteka.
mysqlaccess menaxhimi i shfrytzuesve
mysqladmin mundson menaxhimin e serverit t bazs s t dhnave, duke
prfshir krijimin dhe fshirjen e bazs s t dhnave.
mysqldump hedh prmbajtjen e nj baze t t dhnave MySQL ose tabele n nj
datotek.
mysqlhotcopy bn ruajtjen e nj kopje rezerv (BackUp) t bazs s t dhnave
MySQL.
mysqlimport bn importimin e t dhnave n datoteka me formate t ndryshme
n bazn e t dhnave.
mysqlshow shfaq informacionin pr MySQL serverin dhe pr do objekt si baza
e t dhnave dhe tabelat n at server.
Safe_mysqld starton mysqld n UNIX me siguri t madhe.
MySQL sht nj software q mundson shfrytzuesit t krijoj, mirmbaj dhe t
menaxhoj bazat e t dhnave. Kjo kategori e software-it sht e njohur si sistemi i
menaxhimit t bazave t t dhnave (DBMS). Sipas definicionit baza e t dhnave sht
nj grumbull i organizuar i t dhnave. Si u cek m hert MySql sht nj system i
menaxhimit t relacioneve t bazave t t dhnave (RDBMS). Nj baz relacionale
organizon t dhnat npr tabela dhe paraqet lidhjet n mes atyre tabelave.
Kto lidhje na mundsojn bashkimin e t dhnave nga shum tabela q na jep nj
paraqitje t ndryshme t t dhnave. Natyrisht se m leht sht t bhet ilustrimi me nj
shembull pr t kuptuar m mir konceptin e tabelave dhe relacioneve t tyre.

Shembull:
Nj tabel ka emrin, disa kolona dhe rreshta q prmbajn t dhna. N bazn e t
dhnave relacionale t dhnat paraqiten n form t tabelave.
N shembullin e mposhtm shohim se n t dy tabelat sht paraqitur kolona Numri i
llogaris. Me an t atij numri mund t gjejm se cili klient ka marr kredin e caktuar.
Thn shkurt sistemi i menaxhimit t bazs s t dhnave (DBMS) pr nj sistem
relacional quhet sistemi i menaxhimit t bazs relacionale (RDBMS). Ku MySQL sht
nj shembull i nj RDBMS.
BAZAT E T DHNAVE


101
Tabela : Klientt

Numri i
llogaris
Emri Mbiemri Qyteti Adresa Tel
140201 Bujar Shulemaja Prishtin
Bregu i
Diellit
044/123-456
140202 Amir Simnica Fush Kosov
rr. Agim
Ramadani
044/321-654
140203 Valbona Krasniqi Dardan
rr. Adem
Jashari
044/213-546
140204 Gani Thai Besian
rr. Zahir
Pajaziti
044/312-645
140205 Lavdim Kastrati Prishtin
Tophane

044/132-465

Tabela : Kredit

ID
Numri
i
llogaris
Tipi
i
kredis
Shuma Prqindja
Kohzgjatja
e
kredis
Aprovimi Fillimi
1 140203 Vetur 4500 6 12 po
10/04/
2006
2 140205 Mobile 1300 7.5 6 po
23/08/
2006
3 140201 Vetur 7000 5.5 36 po
15/02/
2005
4 140203 Shtpi 45000 4.7 120 jo
20/05/
2005
5 140202 Kompjuter 630 7 12 po
12/07/
2006
6 140204 Kuzhin 1000 4 12 po
04/09/
2005
7 140205 Lavatrie 420 3 6 po
05/06/
2006
8 140201 Mobile 1730 5.8 12 po
02/10/
2006
9 140205 Vetur 5250 7.3 18 po
12/04/
2005
10 140202 Tavolin 420 8.3 12 jo
12/08/
2005

Por si bhet krijimi i bazs s t dhnave, si bhet definimi i tabelave, ndryshimi, shtimi
dhe fshirja e t dhnave. SQL (Structured Query Language) sht nj gjuh q shrben
pr operacionet n nj baz t t dhnave. SQL sht nj gjuh standarde q shumica e
programerve t bazave t t dhnave e njohin.

BAZAT E T DHNAVE


102
Mirmbajtja e nj baze t t dhnave n nj tabel nuk krkon shum njohuri n teorin e
bazs s t dhnave. N jetn reale bazat e t dhnave kan numr t madh t dhnash
(qindra, mijra madje edhe miliona). Ktu sht edhe rndsia e bazave t t dhnave
relacionale. Konsiderojm pr shembull se libraria e Kongresit n SHBA ka afr 16
milion libra. Pr arsye q do ti sqarojm m posht sht e pamundur t mbahen t gjitha
t dhnat n nj tabel.

Prsritja e t dhnave (Data redundancy)

Problemi kryesor q lidhet me prdorimin e nj tabele t vetme pr baz t t dhnave
sht prsritja e panevojshme e t dhnave. Ndonjher prsritja e t dhnave sht e
nevojshme, por ideja sht q t largohen sa m shum prsritjet e t dhnave.


ID
Numri
i
llogaris
Emri Mbiemri Qyteti
Tipi
i kredis
Shuma
ID
Nnpunsi
Aprovimi
1 140203 Valbona Krasniqi Dardan Vetur 4500
Faton
Gashi
po
2 140205 Lavdim Kastrati Pishtin Mobile 1300
Astrit
Kabashi
Po
3 140201 Bujar Shulemaja Prishtin Vetur 7000
Astrit
Kabashi
po
4 140203 Valbona Krasniqi Dardan Shtpi 45000
Faton
Gashi
jo
5 140202 Amir Simnica
Fush
Kosov
Kompjuter 630
Albana
Gashi
po
6 140204 Gani Thaqi Besian Kuzhin 1000
Valon
Ramadani
po
7 140205 Lavdim Kastrati Prishtin Lavatrie 420
Astrit
Kabashi
po
8 140201 Bujar Shulemaja Prishtin Mobile 1730
Astrit
Kabashi
po

Prsritja e t dhnave n tabeln e msiprme sht e qart. P.SH. Numri i llogaris,
Emri, Qyteti, Tipi i kredis, Nnpunsi prsriten disa her. N prpjekje pr reduktimin e
prsritjes s t dhnave duhet q kt tabel ta ndajm n disa tabela. Nj zgjidhje e
mundshme mund t jet ndarja n pes tabela t reja.

Klientt ku secili klient ka numrin e llogaris,emrin, mbiemrin, adresn.
Qyteti , secili qytet me shifr
Kredit ku secila kredi do t ket shifrn e vet si dhe nnpunsi i banks q e ka
lshuar at kredi
Shifra e kredis , secila kredi do t ket shifrn e vet
Nnpunsit ku secili nnpuns do t ket shifrn e vet.

BAZAT E T DHNAVE


103
Tabela : Klientt
Numri i
llogaris
Emri Mbiemri ID Qyteti Adresa Tel
140201 Bujar Shulemaja 1
Bregu i
Diellit
044/123-456
140202 Amir Simnica 3
rr. Agim
Ramadani
044/321-654
140203 Valbona Krasniqi 2
rr. Adem
Jashari
044/213-546
140204 Gani Thai 4
rr. Zahir
Pajaziti
044/312-645
140205 Lavdim Kastrati 1
Tophane

044/132-465

Tabela : Qyteti
ID Qyteti Qyteti
1 Prishtin
2 Dardan
3 Fush Kosov
4 Besian

Tabela : Kredit
ID
Numri
i
llogaris
Shifra
e
kredis
Shuma Prqindja Aprovimi
ID
Nn
1 140203 K1 4500 6 po 3
2 140205 K2 1300 7.5 po 1
3 140201 K1 7000 5.5 po 1
4 140203 K4 45000 4.7 jo 3
5 140202 K3 630 7 po 4
6 140204 K5 1000 4 po 2
7 140205 K6 420 3 po 1
8 140201 K2 1730 5.8 po 1
9 140202 K7 420 8.3 jo 4

Tabela : Shifra e kredis
Shifra e kredis Tipi i kredis
K1 Vetur
K2 Mobile
K3 Kompjuter
K4 Shtpi
K5 Kuzhin
K6 Lavatrie
K7 Tavolin

BAZAT E T DHNAVE


104
Tabela : Nnpunsit

ID Nnpunsit Emri Mbiemri Filiala
1 Astrit Kabashi Prishtin
2 Valon Ramadani Besian
3 Faton Gashi Dardan
4 Albana Gashi Fush Kosov

Tani qyteti, tipi i kredis, emri dhe mbiemri i klientit si dhe emri dhe mbiemri i
nnpunsit paraqitet vetm nga nj her. Natyrisht se ka ende t dhna t dyfishta n baz
t t dhnave. P.SH. Shifra e kredis, ID qyteti paraqiten m shum se nj her n kto
tabela. Si u tha m hert nuk mund t eliminojm t gjitha duplikatet dhe t mbajm
lidhjen n mes tabelave, kto jan t dhna q prsriten por t nevojshme. Rndsia e
eliminimit t prsritjes s t dhnave mund t shpjegohet edhe me nj shembull t
thjesht.
Shembull: Konsiderojm bazn e t dhnave pr nj biblotek me nj fond t librave 16
milion. Supozojm se baza e t dhnave prmban 10000 botues t ndryshm. Adresa e
botuesit n bazn e t dhnave n nj tabel do t paraqitej 16 milion her, ku 10 000
adresa jan t ndryshme mes veti. Tani nse nj adres ka mesatarisht 50 karakter
ather:
( 16 000 000 10 000 )* 50 = 799,5 milion karakter
Nse secili karakter z vend 2 byte ather n bazn e t dhnave me nj tabel sht
zn vend n hapsirn e diskut prafrsisht 1.49 GB vetm pr adresn e botuesit.
Nga kjo q u tha pr prsritjen e panevojshme t t dhnave konkludohet se ndrtimi i
nj baze t t dhnave me an t nj tabele nuk sht praktike.
Disa prej arsyeve tjera pr mos prdorimin e vetm nj tabele pr ndrtimin e bazs s t
dhnave jan:

Ndryshimi i t dhnave
Shtimi i t dhnave
Fshirja e t dhnave
Mirmbajtja e integritetit referencial etj














BAZAT E T DHNAVE


105

Tipet e t dhnave

Sikurse edhe t gjitha sistemet e menaxhimit t bazave relacionale edhe MySQL ka tipet
e t dhnave specifike:

Tipet numerike
Tipet string ose tipet karakter
Tipet e renditjes (Enumerations) dhe bashksit (Set)
Tipet pr dat
MySQL prkrah tipe t ndryshme t t dhnave me funksion t ndyshm. Tip i t
dhnave sht, tipi i t dhns q do t ruhet n fush (kolon). N nj tabel mund t
jen tipe t ndryshme t t dhnave, por secila fush do t ket tipin e t dhnave
specifik. Nj fush e definuar si numerike do t pranoj vetm t dhna numerike, nj
fush e definuar si tip i karakterve CHAR(10) do t pranoj vetm deri n 10 karakter.
Kto definime jan els pr nj baz t t dhnave t shpejt dhe efikase.
N parim jan tri grupe t t dhnave. Grupi i par sht numerik. T dhnat numerike
jan ato t dhna q jan numra pozitiv ose negative si 4 ose -32. T dhnat numerike
poashtu mund t jen n formn : heksadecimale si 2EE250CC, shkencore si 2 x 10^23,
decimale. Grupi i dyt i tipit t t dhnave sht tipi string ose tipi karakter. N kt grup
hyjn t gjitha t dhnat q jan kombinim i shkronjave dhe numrave si : shkronjat,
numrat, fjalit, adresa, numrat e telefonit etj. N fund grupi i ndryshm, ai prmban t
dhnat q nuk mund t prfshihen n dy grupet e para si: data, koha. MySQL prkrah
tipeve t t t dhnave ofron edhe modifikuesit e kolonave. Ata jan
AUTO_INCREMENT, UNSINGNED, PRIMARY KEY, NULL, NOT NULL dhe
BINARY.

Tipet numerike

Tipet numerike jan t paracaktuara q t prfshijn vetm numra. Nuk mund t ruajm
shkronj ose nj varg t karakterve n nj fush t definuar mpar si numerike.Tipe t
ndryshme numerike zn hapsir t ndryshme n memorie. Kjo sht arsye pse secili
tip numerik ka intervalin prkufizues t ndryshm.
Tipi i t dhnave
Hapsira n
memorie
(byte)
Intervali prkufizues Pa shenj
TINYINT 1 -128 deri 127 0-255
SMALLINT 2 -32768 deri 32767 0-65535
MEDIUMINT 3 -8388608 deri 8388607 0-16777215
INT 4
-2147483648
deri
2147483647
0-4294967295
BIGINT 8 -9223372036854775808 0-
BAZAT E T DHNAVE


106
deri
9223372036854775807
18446744073709550615
FLOAT(M,D) 4 Varsisht nga vlera
DOUBLE(M,D) 8 Varsisht nga vlera
DECIMAL(M,D) M+2 Varsisht nga vlera

Nse nj fush sht e definuar si numerike dhe UNSIGNED ather intervali
prkufizues dyfishohet pr at tip t dhnash. P.SH. nse deklarojm fushn si
UNSIGNED TINYINT intervali prkufizues do t jet prej 0 deri n 255. Me deklarimin
e nj fushe si UNSIGNED bjm q ajo fush t ket vetm numra pozitiv. Madhsia e
tipit t t dhnave nuk ndryshon por vetm intervali prkufizues i tij. Tipet FLOAT,
DOUBLE dhe DECIMAL jan numerike dhe mund t prfshijn numra pas presjes
dhjetore. Tipet e tjera nuk e kan kt veti. MySQL na mundson kufizimin e shifrave
pas presjes dhjetore. P.SH. numri 5.6876 me an t FLOAT(4,2) do t ruhet si 5.69 .
Duhet t cekim se MySQL proceson t dhnat numerike m shpejt se do tip t t
dhnash. Pr at nse dshirojm pyetsor t shpejt prdorim si kriter t dhna
numerike. Poashtu edhe indeksat numerik n prgjithsi jan m t shpejt se indeksat t
bazuar n karakter. Kur t bjm definimin e tipit t t dhnave pr nj fush duhet t
kemi kujdes dhe t zgjedhim vlern m t madhe q do t na duhet. Nse nuk e bjm
kt ather do t kemi probleme m von. MySQL pr vlerat q jan jasht intervalit
prkufizues t tipit t t dhnave e zvendson me vlern m t madhe (skajin e djatht t
intervalit). P.SH. kemi tipin e t dhnave UNSIGNED TINYINT dhe dshirojm t fusim
vlern 1000 n at fush. MySQL do t ruaj at vler si 255, pra si vlern m t madhe t
intervalit prkufizues.
Modifikuesit e kolonave AUTO_INCREMENT,UNSINGNED dhe ZEROFILL mund t
prdoren vetm pr t dhnat numerike. Kta modifikues kryejn veprime q mund t
bhen vetm me numra. Modifikuesi UNSIGNED bn numrat n fush t jen pozitiv.

AUTO_INCREMENT
Modifikuesi i fushs AUTO_INCREMENT rrit vlern e fushs duke shtuar 1 n vlern
maksimale. sht i dobishm pr krijimin e vlerave unike. Vlera e fushs me
modifikuesin AUTO_INCREMENT fillon prej numrit 1 dhe shton nga nj pr do t
dhn q shtohet n tabel. P.SH. krijojm nj tabel me nj fush
AUTO_INCREMENT. Shtojm nj t dhn dhe vlera n fushn AUTO_INCREMENT
sht 1, shtojm nj t dhn tjetr AUTO_INCREMENT bhet 2. Tani fshijm t
dhnn e par, dhe shtojm nj t dhn tjetr.far vlere do t merr tani fusha
AUTO_INCREMENT? Nse jeni prgjigjur 3, sht e sakt. Pra modifikuesi
AUTO_INCREMENT nuk e riprdor vlern q kemi fshir m hert.
CREATE TABLE Test (Auto_Test int NOT NULL AUTO_INCREMENT);
INSERT INTO Test (Auto_Test) values(NULL);
INSERT INTO TEST (Auto_Test) values(0);
INSERT INTO Test (Auto_Test) values();
Poashtu mund t shtojm edhe ndonj numr, nse ai numr ekziston n tabel ather do
t paraqitet gabim. Nse jo ather ai numr do t futet n tabel.
Mundsi tjetr sht caktimi i numrit startues t fushs AUTO_INCREMENT. Nse
dshirojm q modifikuesi i fushs t filloj nga numri 50 ather shkruajm:
BAZAT E T DHNAVE


107


CREATE TABLE Test
(Test_ID INT NOT NULL AUTO_INCREMENT
AUTO_INCREMENT = 50,
Nj_fush INT)

Nuk ka rndsi ku vendoset AUTO_INCREMENT=nnn n sintaksn e krijimit t
tabels. N nj tabel mund t jet vetm nj fush AUTO_INCREMENT.
Modifikuesi i fushs kur t arrin vlern maksimale t tipit t t dhnave na lajmrohet
gabim. P.SH. nse kemi zgjedhur TINYINT pr AUTO_INCREMENT vlera maksimale
sht 255. Pasi te kemi arritur vlern 255 dhe nse dshirojm t shtojm edhe nj t
dhn ather MySQL do t lajmroj pr gabim. Pr t evituar kt preferohet t prdoret
INT pr modifikuesin AUTO_INCREMENT.
AUTO_INCREMENT fusha punon vetm me numra t plot, ndrsa pr FLOAT,
DOUBLE dhe DECIMAL nuk mund t shfrytzohet.

ZEROFILL
Nse deklarohet nj fush INT(8) ZEROFILL dhe fusim vlern 23 ather ai paraqitet n
formn 00000023.

Tipet e t dhnave string ose karakter

Grup tjetr i tipit t t dhnave jan tipet string ose karakter. String sht nj bashksi e
karakterve (varg i karakterve). Tipi i t dhnave string mund t ruaj t dhnat si: Bregu
i diellit, rruga 2 , 992 Prishtin. Edhe ktu si te tipet numerike varet nga madhsia se
far tipi t t dhnash do t prdorim. Madhsia maksimale sht e dhn n tabeln e
mposhtme.

Tipi i t dhnave Max (byte) Madhsia (byte)
CHAR(X) 255 X
VARCHAR(X) 255 X+1
TINYTEXT 255 X+1
TINYBLOB 255 X+2
TEXT 65535 X+2
BLOB 65535 X+2
MEDIUMTEXT 1.6 MB X+3
MEDIUMBLOB 1.6 MB X+3
LONGTEXT 4.2 GB X+4
LONGBLOB 4.2 GB X+4

CHAR dhe VARCHAR
Prej t gjith tipeve string, tipet VARCHAR dhe CHAR prdoren m s shumti. Dallimi
n mes tyre sht se nse deklarojm nj fush CHAR(10) ather t gjitha t dhnat t
BAZAT E T DHNAVE


108
ruajtura n kt fush do t zn madhsi prej 10 byte edhe pse kan gjatsi 3 karakter.
Ndrsa nse deklarojm nj fush VARCHAR(10) dhe ruajm t dhn n at fush q
kan gjatsi 3 karakter, madhsia do t jet 4 byte (gjatsia + 1). Prparsit e CHAR
ndaj VARCHAR qndrojn se procesimi i t dhnave bhet m shpejt me tipin CHAR.
Prdorimi i tipit CHAR sht vetm madhsia e hapsirs q z n memorie. Si rregull
CHAR dhe VARCHAR nuk prdoren n nj tabel. MySQL automatikisht konverton
tipet n VARCHAR.

Konvertimi i CHAR n VARCHAR
Kur nj tabel ka s paku nj fush t tipit VARCHAR dhe t gjitha fushat tjera t tipit
CHAR me m shum se 3 karakter, ather t gjitha fushat e tipi CHAR do t
konvertohen n fusha t tipit VARCHAR.
CREATE TABLE Test (Fusha_Char CHAR(5), Fusha_Var VARCHAR(15))
MySQL automatikisht do t konvertoj fushn Fusha_Char n VARCHAR.

Konvertimi i VARCHAR n CHAR
Kur nj fush e tipit VARCHAR ka gjatsi m t vogl se 4 ather ajo konvertohet n
fush t tipit CHAR.
CREATE TABLE Test (Fusha_Var VARCHAR(3))
MySQL do t konvertoj fushn Fusha_Var n fush t tipit CHAR.

TEXT dhe BLOB
Me an t TEXT dhe BLOB mund t ruajn nj numr t madh t t dhnave. Kto tipe
t t dhnave prdoren pr ruajtjen e fotografive, audiove si dhe shum tekst, si Web
faqet ose dokumente. Kto tipe jan t prshtatshme edhe pr t dhnat q zn madhsi
t ndryshme varsisht nga rreshti. Prparsit e TEXT dhe BLOB n krahasim me tipet
tjera sht mundsia e ruajtjes t dhnave t shumta. Mund t ruajm nj datotek t tr.
Mangsi e ktyre dy tipeve sht procesimi i ngadalt i t dhnave dhe madhsia e madhe
q zn n memorie. N versionet e reja t MySQL mund t vejm indeks n kto dy
tipe, por nuk rekomandohet sepse bn degradimin e performancs s bazs s t dhnave.
Indekset n kto dy tipe vetm se i ngadalsojn gjrat.

Tipet e renditjes (Enumerations) dhe bashksit (Set)
Jan dy tipe: ENUM dhe SET.

ENUM
Tipi i t dhnave ENUM sht nj list e renditur. Duke pas parasysh se ky tip mund t
ruaj vetm vlera q jan t deklaruara n listn e renditur. Fusha ENUM mund t ket
vetm njrn nga vlerat e lists. Sintaksa e deklarimit t tipit t t dhnave ENUM sht:

CREATE TABLE Test
(
Return ENUM('P','J') DEFAULT 'J',
Madhsia ENUM('S','M','L','XL','XXL'),
Ngjyra ENUM('E zez','e kuqe','e bardh')
)
BAZAT E T DHNAVE


109
Mund t kemi deri 65535 vlera n listn e renditur. Tipi i t dhnave ENUM sht nj
zgjedhje e mir pr fush kombinimesh (Combo box) n Web faqe ose kudo q
shfrytzuesi duhet t zgjedh vlerat nga lista. ENUM mund t prmbaj ose ndonj vler
nga lista ose vlern NULL. Nse mundohemi t fusim ndonj t dhn q nuk sht n
listn e vlerave ather do t insertohet vler e zbrazt.

SET
Tipi it dhnave SET sht i ngjashm me ENUM. Njsoj si ENUM tipi SET prmban
list t vlerave. Ndryshimi mes tyre sht se te SET mund t zgjedhim m shum se nj
vler. Tipi SET mund t prmbaj deri 64 vlera t ndryshme. Sintaksa pr krijimin e tipit
SET sht:

CREATE TABLE Test
(
Reklama SET('Web faqe','Televizion','Gazet')
)
Kolona e krijuar Reklama mund t prmbaj kto vlera:
Web faqe
Televizion,Gazet

Kur t bjm shtimin e t dhenave n kolonn me tipin SET duhet q vlerat t jen t
futura brenda kuotave t ndara me presje. P.SH. pr t shtuar nj t dhn me dy vlera
nga shembulli i mparshm veprojm:
INSERT INTO Test(Reklama) VALUES (Web faqe,Televizion)
Pr kt arsye nuk duhet q brenda n listn e vlerave t ket ndonj vler q prmban
presje. Arsyeja q kto dy tipe t t dhnave jan t ndara nga tipet tjera sht se kto
jan si bashksi e karakterve por MySQL i ruan n memorie si numra. Pr kt arsye
edhe t dhnat procesohen m shpejt. Poashtu mund t bhen manipulime duke prdor
operacione numerike. P.SH.
SELECT * FROM Test WHERE Reklama=1;
Ky urdhr do t kthej si rezultat t gjitha vlerat nga tabela Test ku Reklama sht Web
faqe.

Modifikuesit e kolonave (fushave)
MySQL ka disa fjal t rezervuara q modifikojn kolonat. P.SH. m hert i pam
modifikuesit AUTO_INCREMENT, UNSIGNED dhe ZEROFILL. Disa nga
modifikuesit mund t zbatohen vetm n disa tipe t t dhnave, kjo mund t shihet n
tabeln e mposhtme:


Emri i modifikuesit Tipi mbi t cilin zbatohet
AUTO_INCREMENT N t gjith tipet INT
BINARY CHAR, VARCHAR
DEFAULT T gjith tipet prve BLOB dhe TEXT
NOT NULL T gjitha tipet
NULL T gjitha tipet
BAZAT E T DHNAVE


110
PRIMARY KEY T gjitha tipet
UNIQUE T gjitha tipet
UNSIGNED Tipet numerike
ZEROFILL Tipet numerike


Tipet pr dat dhe koh

MySQL ka disa tipe t t dhnave pr dat dhe koh q na lehtsojn punn pr ruajtjen e
informative. Ato jan: DATETIME, DATE, TIME, YEAR dhe TIMESTAMP.
Tabela e mposhtme i prshkruan kto tipe t t dhnave.

Tipi Prshkrimi
DATETIME
YYYY-MM-DD HH:MM:SS prej 1000-01-01 00:00:00 deri
9999-12-31 23:59:59
DATE YYYY-MM-DD prej 1000-01-01 deri 9999-12-31
TIME HH:MM:SS
YEAR YYYY
TIMESTAMP YYYYMMDDHHMMSS

Tipi TIMESTAMP mund t paraqitet edhe n mnyra t ndryshme, si mposht:

Tipi Prshkrimi
TIMESTAMP (14) YYYYMMDDHHMMSS
TIMESTAMP (12) YYMMDDHHMMSS
TIMESTAMP (10) YYMMDDHHMM
TIMESTAMP (8) YYYYMMDD
TIMESTAMP (6) YYMMDD
TIMESTAMP (4) YYMM
TIMESTAMP (2) YY

Data n MySQL paraqitet s pari viti pastaj muaji dhe n fund dita.












BAZAT E T DHNAVE


111
SQL (Structured Query Language)

SQL sht nj gjuh q prdoret pr leximin dhe shtimin e t dhnave n pothuaj
se n t gjitha bazat e t dhnave. Me SQL mund t bjm krkimin e t dhnave, shtimin
e t dhnave t reja, ndryshimin (modifikimin) e t dhnave ose fshirjen e tyre. SQL
sht thjesht nj vegl thelbsore pr bashkveprim me MySQL. Edhe nse prdorim
ndonj program ose interfejs pr baza t t dhnave, diku n prapavij t atij programi
sht i gjeneruar kodi SQL. Urdhrat n SQL lexohen si nj fjali n gjuhn angleze. Kjo
qasje ka disa prparsi edhe mangsi sepse n fund SQL dallon nga gjuht programuese
tradicionale si C, Java ose Perl.
Gjuhn e strukturuar SQL e paraqiti s pari kompania IBM n vitin 1970
menjher pas zbulimit t teoris t bazave relacionale. SQL ishte i popullarizuar sa q n
vitin 1980 korporata Oracle lansoi sistemin e par publik SQL. N at koh SQL nuk
ishte i standardizuar, dhe kjo nuk u b deri n vitin 1989 ku ai standard u quajt SQL89.
Mirpo n kt standard nuk sht definuar sa duhet struktura e gjuhs SQL. Edhe pse n
treg u paraqiten disa versione komerciale t gjuhs SQL, diferenca n sintaks e bri t
pamundshme kyqjen e tyre n ndonj implementim. Kjo zgjati deri n vitin 1992 kur
ANSI vuri standardin SQL92 ose SQL2. Shumica e sistemeve t menaxhimit t bazave t
t dhnave kan pranuar SQL92 si standard, megjithat bazat relacionale q
implementojn standardin SQL92 jan komplekse. Standardi SQL92 nuk sht fjala e
fundit e SQL standardeve. Me rritjen e popullaritetit t sistemit t menaxhimit t bazave
t orientuara kah objektet ( Object Oriented Database Managament System OODBMS )
dhe sistemit t menaxhimit t bazave t lidhura me objekte ( Object Relational Database
Managament System ORDBMS ) sht vn re nj tendenc pr mbshtetjen e SQL
standardit pr kto baza t t dhnave. Pra SQL3 do t ishte nj prgjigje pr kt.

Dizajni i SQL

Si u cek m hert SQL m shum i ngjan nj gjuhe q flasim ne se sa nj gjuhe
t kompjuterit. T shohim shembujt e mposhtm:

CREATE TABLE Klientt ( emri varchar(10))
folje objekt mbiemr

INSERT INTO Klientt VALUES (Arben)
folje nj objekt nj objekt

SELECT emri FROM Klientt HERE emri LIKE %n
folje objekt objekt mbiemr

Shumica e implementimeve t SQL duke prfshir edhe MySQL jan jo t ndieshme n
shkronja ( case-insensitive ). Pra nuk ka rndsi se si i shkruani fjalt e rezervuara me
shkronja t mdha apo t vogla, e rndsishme sht q t shkruhen shkronjat e duhura.
P.SH. nga shembulli m lart, rreshti i par mund t shkruhet edhe ksisoj:
cREatE TabLe Klientt (emri varchar(10))
BAZAT E T DHNAVE


112
Jo ndieshmria e shkronjave vlen vetm pr fjalt e rezervuara t SQL. N MySQL emri
i bazs s t dhnave, tabels dhe fushave sht i ndieshm n shkronja. Pr shkak t
leximit m t mir t komandave t SQL fjalt e rezervuara do ti shkruajm me shkronja
t mdha.
Element i par n nj SQL pyetsor sht gjithnj nj folje. Folja shpreh aksionin q
dshirojm q baza e t dhnave ta kryej. Pastaj pjesa tjetr e komands vepron
varsisht nga folja q kemi prdor. P.SH. nga shembulli m lart, folja CREATE (krijo)
shoqrohet me objektin TABLE dhe pjesa tjetr sht prshkrimi i tabels q do t
krijojm.

Kyja n server
Ka disa mnyra pr kyjen n server, m e shpeshta sht ajo prmes ndonj gjuhe
programuese. Por ktu ne do t prdorim vegln mysql. Pra
Start Programs MySQL MySQL Server 5.1 MySQL Command Line Client
Shkruajm fjalkalimin dhe kyqemi n server.

Enter password: *
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.1.12-beta-community-nt MySQL Community Server (GPL)
Type help; or \h for help. Type \c to clear the buffer.
mysql>
Komanda m lart tregon lidhjen n server n makin lokale si shfrytzues. Nj opcion
tjetr sht opcioni h i cili na mundson lidhjen n MySQL server nga distanca (mysql
u root h db.Banka p).
Nuk ka ndonj lidhje n mes t shfrytzuesve t Windows-it dhe shfrytzuesve t
MySQL. Shfrytzuesit pr MySQL duhet krijuar n mnyr t pavarur nga shfrytzuesit e
Windows it. T gjitha komandat n MySQL duhet t prfundojn me shenjn ; ose \g.

Sintaksa e komandave
Shprehja n kllapat e mesme sht opsionale,shprehja brenda < > sht emri i objektit.

Krijimi i bazs s t dhnave

Hapi i par n krijimin e nj baze MySQL sht krijimi i objektit t bazs s t dhnave, i
cili shrben si vend ku do t vendosen tabelat e asaj baze. Krijimi i nj baze t t dhnave
n MySQL sht nj ndr punt m t lehta, krkohet fjala e rezervuar CREATE
DATABASE duke shkruar pastaj emrin e bazs s t dhnave, ja edhe sintaksa:

CREATE DATABASE [ IF NOT EXISTS ] <emri i bazs s t dhnave>
[ [ DEFAULT ] CHARACTER SET <emri i bashksis s karakterve> ]
[ [ DEFAULT ] COLLATE <mnyra e krahasimit apo rendtjes> ]

N komandn pr krijimin e bazs s t dhnave prfshihen edhe disa opsione. I pari
sht opsioni IF NOT EXISTS, i cili nse prdoret dhe ekziston emri i bazs s t
BAZAT E T DHNAVE


113
dhnave na shfaqet nj paralajmrim, por nse nuk prdoret ather do t lajmroj nj
gabim. Nse ekziston nj baz e t dhnave me emr t njjt ather ajo nuk do t
krijohet. Opsioni tjetr sht CHARACTER SET, ku kjo sht bashksi e shkronjave,
numrave dhe simboleve n baz t t dhnave. P.SH. A,B,C,a,b,c,1,2,3,>,+ etj. Opsioni
tjetr COLLATE prcakton renditjen, krahasimin, grupimin e bashksis s karakterve (
CHARACTER SET ). Ndrsa opsioni DEFAULT vler e parazgjedhur gjat instalimit t
MySQL serverit.
Marrim disa shembuj:
Krijojm bazn e t dhnave me emrin BANKA:

CREATE DATABASE BANKA;
Ose

CREATE DATABASE IF NOT EXISTS BANKA;
Ose

CREATE DATABASE IF NOT EXISTS BANKA;
DEFAULT CHARACTER SET latin1
DEFAULT COLLATE latin1_bin;

Krijimi i tabels

Hap tjetr i rndsishm pr krijimin e nj baze t t dhnave sht krijimi i tabelave.
Tabelat jan objekte t bazs pr ruajtjen e t dhnave dhe sigurin e tyre. Pr krijimin e
tabels n MySQL prdoret komanda CREATE TABLE. Kjo komand sht njra ndr
SQL komandat m komplekse n MySQL.
Sintaksa:

<definicioni>::=
CREATE [ TEMPORARY ] TABLE [ IF NOT EXISTS ] < emri i tabels >
(< element i tabels > [{, < element i tabels > } ] )
[< tipi i tabels > [< tipi i tabels > ] ]


< element i tabels >::=
< definimi i fushs >
| { [ CONSTRAINT < emri i rregulls (constraint) > PRIMARY KEY
( < emri i fushs > [{, < emri i fushs > } ] ) }
| { [ CONSTRAINT < emri i rregulls > ] FOREIGN KEY [ < emri i indeksit> ]
( < emri i fushs > [ { , < emri i fushs > } ] ) < definimi i referencs > }
| { [ CONSTRAINT < emri i rregulls > ] UNIQUE [ INDEX ] [ < emri i indeksit> ]
( < emri i fushs > [{, < emri i fushs > } ] ) }
| { { INDEX | KEY } [ <emri i indeksit> ( <emri i fushs> [ { ,<emri i fushs> } ] ) }
|{FULLTEXT[ INDEX] [<emri i indeksit>] ( <emri i fushs> [{,<emri i fushs>}] ) }


BAZAT E T DHNAVE


114

< definimi i fushs>::=
<emri i fushs> <tipi i t dhnave>[NOT NULL|NULL] [DEFAULT <ndonj vler>]
[PRIMARY KEY] [COMMENT <ndonj koment>] [<definimi i referencs>]

< tipi i t dhnave>::=
< tip i t dhnave numerike>
| < tip i t dhnave sting ose karakter>
| <tip i t dhnave pr dat>

< definimi i referencs >::=
REFERENCES < emri i tabels > [ (<emri i fushs> [{,<emri i fushs>} ] ) ]
[ON DELETE {RESTRICT |CASCADE |SET NULL |NO ACTION |SET DEFAULT } ]
[ON UPDATE {RESTRICT |CASCADE |SET NULL |NO ACTION |SET DEFAULT } ]
[ MATCH FULL | MATCH PARTIAL ]

< tipi i tabels >::=
{ ENGINE = {BDB | MEMORY | ISAM | INNODB | MERGE | MYISAM }}
| < tipet shtes t tabelave>

Tash le t komentojm sintaksn pr krijimin e tabels. N rreshtin e par krkohet fjala e
rezervuar CREATE TABLE e shoqruar me emrin e tabels q dshirojm t krijojm.
Ky rresht prmban dy opsione, opsioni i par TEMPORARY tregon se kjo sht nj
tabel e prkohshme q sht aktive vetm gjat kyqjes s shfrytzuesit. Tabela e
prkohshme ekziston deri sa shfrytzuesi nuk kyqet nga serveri. Opsioni i dyt IF NOT
EXISTS sht njsoj sikur te krijimi i bazs s t dhnave. Rreshti i dyt na lejon
prcaktimin e elementeve t tabels me an t < element i tabels >. Element i tabels
sht do objekt q sht i definuar n tabel si: fusha ose elsi primar. N seciln tabel
mund t prfshihen m shum se nj element t ndar mes veti me presje. Ndrsa rreshti i
fundit na ofron prcaktimin e tipit t tabels. T gjith tipet e tabels jan opsionale. Si
mund t shihet sintaksa e krijimit t tabels mund t thjeshtsohet ose t komplikohet.
Elementet e domosdoshme n sintaks pr krijimin e tabels jan:
CREATE TABLE < emri i tabels > ( <element i tabels > )
Pasi elementi i tabels sht komponent e domosdoshme shikojm sintaksn pr
< element i tabels >. Me elementin e tabels kemi disa opsione por m s shpeshti
prdoret < definimi i fushs >. Ku me an t tij bjm definimin e fushs n tabel.
Definimi i fushs duhet t bhet pr do fush q do t jet pjes e tabels. Nga sintaksa
vrejm se vetm dy elemente krkohen <emri i fushs> dhe <tipi it dhnave>. T
gjith elementet shtes pr definimin e fushs jan opsionale. Definimi i tipit t t
dhnave bhet me an t tipeve numerike, string dhe dat. Tipet e t dhnave jan t
sqaruara m hert.
Deri tani shqyrtuam vetm elementet e nevojshme ( domosdoshme ) pr krijimin e
tabels dhe definimin e fushs. Si rezultat definimi i fushs prfshinte emrin e fushs dhe
tipin e t dhnave pr at fush. Komponent tjetr nga definimi i fushs sht edhe vlera
boshe e fushs e cila caktohet me an t fjalve t rezervuara NULL dhe NOT NULL.
Me an t ktyre fjalve t rezervuara mund t definojm fushn t pranoj ose jo vlera
BAZAT E T DHNAVE


115
boshe. Nse nuk sht definuar as njra as tjetra prej opsioneve ather nnkuptohet se
ajo fush mund t pranoj vler boshe.

CREATE TABLE Test
(
ID SMALLINT UNSIGNED NOT NULL,
Emri VARCHAR(20) NOT NULL
);
Definimi i vlers s parazgjedhur ( nnkuptuar ) bhet me an t fjals s rezervuar
DEFAULT. Kjo sht e dobishme pr faktin kur n nj fush prsritet nj vler.
CREATE TABLE Autori
(
ID SMALLINT UNSIGNED NOT NULL,
Viti_i_lindjes YEAR NOT NULL,
Vendlindja VARCHAR(40) NOT NULL DEFAULT E panjohur
Sasia SMALLINT NOT NULL DEFAULT 1
);
Pr tipet e t dhnave string vlera e DEFAULT shkruhet n thonjza ndrsa te tipet
numerike shkruhet vetm numri. Nse nuk caktojm vlern e parazgjedhur ather
MySQL automatikisht i ndan nj vler asaj fushe varsisht nga tipi i t dhnave. Nse
fusha mund t marr si vlern boshe ather vlera e parazgjedhur sht NULL. Nse
fusha nuk merr vlern boshe ather vlera e parazgjedhur varet nga definimi i fushs:

Pr fushat me tip t t dhnave TIMESTAMP vlera e parazgjedhur sht data dhe
ora aktuale.
Pr fushat me tip t t dhnave DATE/TIME vlera e parazgjedhur sht zero.
Pr fushat me modifikuesin AUTO_INCREMENT vlera e parazgjedhur sht
numri vijues n vargun rrits.
Pr fushat me tip t t dhnave numerike q nuk e kan t definuar
AUTO_INCREMENT vlera e parazgjedhur sht 0.
Pr fushat me tipin ENUM vlera e parazgjedhur sht vlera e par n definimin e
fushs.
Pr fushat me tip t t dhnave string vlera e parazgjedhur sht nj string i
zbrazt (string nj varg i karakterve).

Si shihet n MySQL t gjitha fushave u sht ndar vlera e parazgjedhur.

Definimi i elsit primar
Mnyra m e thjesht pr definimin e elsit primar sht caktimi i opsionit PRIMARY
KEY n definimin e fushs, si shembullin e mposhtm:
CREATE TABLE Porosit
(
ID SMALLINT UNSIGNED NOT NULL PRIMARY KEY,
Modeli SMALLINT UNSIGNED NOT NULL,
Prshkrimi VARCHAR(40)
);
BAZAT E T DHNAVE


116
SHEMBUJ:
Krijojm tabelat KLIENTT dhe KREDIT n bazne t dhnave BANKA:
S pari prdorim komandn USE < emri i bazs s t dhnave >, pra USE BANKA;
KLIENTT: Tipi i t dhnave

Numri i llogaris Varchar(10) PRIMARY KEY
Emri Varchar(20)
Mbiemri Varchar(20)
Qyteti Varchar(20)
Adresa Varchar(20)
Tel Varchar(20) DEFAULT I panjohur

KREDIT:

ID INT AUTO_INCREMENT PRIMARY KEY
Numri I llogaris Varchar(10)
Tipi i kredis Varchar(20)
Shuma INT
Prqindja INT
Kohzgjatja e kredis INT
Aprovimi ENUM(Po,Jo)
Fillimi DATE

CREATE TABLE KLIENTT
(
Numri_i_llogaris Varchar(10) NOT NULL PRIMARY KEY,
Emri Varchar(20) NOT NULL,
Mbiemri Varchar(20) NOT NULL,
Qyteti Varchar(20) NOT NULL,
Adresa Varchar(20) NOT NULL,
Tel Varchar(20) NOT NULL DEFAULT I panjohur
);

CREATE TABLE KREDIT
(
ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Numri_i_llogaris Varchar(10) NOT NULL,
Tipi_i_kredis Varchar(20) NOT NULL,
Shuma INT NOT NULL,
Prqindja INT NOT NULL,
Kohzgjatja_e_kredis INT NOT NULL,
Aprovimi ENUM(Po,Jo) DEFAULT Jo,
Fillimi DATE,
FOREIGN KEY (Numri_i_llogaris) REFERENCES KLIENTT (Numri_i_llogaris)
ON DELETE CASCADE ON UPDATE CASCADE
);
BAZAT E T DHNAVE


117
N dy rreshtat e fundit (me shkronja t nxira (Bold)) kemi br lidhjen e tabelave
KLIENTT dhe KREDIT. Ku tabela KLIENTT sht tabela prind ndrsa tabela
KREDIT tabela fmij. Lidhja n mes ktyre tabelave sht nj me shum ( 1 - ) pra
sht vn integriteti referncial ( sikur n ACCESS). Ndrsa ON DELETE CASCADE
dhe ON UPDATE CASCADE ruajn q t dhnat n tabeln KREDIT t mos mbesin
jetim. Pra nse fshihet (ndryshohet) ndonj e dhn n tabeln KLIENTT ather t
gjitha t dhnat n tabeln KREDIT q jan t lidhura me t dhnn prkatse do t
fshihen (ndryshohen).

Prdorim komandn DESCRIBE < emri i tabels > pr t shikuar t dhnat e
prgjithshme mbi tabelat e krijuara.
mysql> DESCRIBE KLIENTT;
mysql> DESCRIBE KREDIT;

Manipulimi i t dhnave
Tani pas krijimit t tabelave gjja e par q duhet br sht futja e t dhnave n ato
tabela. Pr kt arsye do t msojm komandat pr futjen e t dhnave INSERT dhe
REPLACE. MySQL prkrah edhe metoda tjera pr futjen e t dhnave si kopjimi ose
importimi i t dhnave. Urdhri q m s shpeshti prdoret pr futjen (insertimin) e t
dhnave sht INSERT. Ja edhe sintaksa e urdhrit INSERT:

INSERT [LOW_PRIORITY | DELAYED ] [IGNORE] [INTO]
{ < opsioni VALUES > | < opsioni SET > | < opsioni SELECT > }

< opsioni VALUES >::=
< emri i tabels > [ ( emri i fushs > [ { , < emri i fushs > } ] ) ]
VALUES ({ < shprehja > | DEFAULT } [ { , { < shprehja > | DEFAULT } } ] )
[ { , ({ < shprehja > | DEFAULT } [ { , { < shprehja > | DEFAULT } } ] ) } ]

< opsioni SET > ::=
< emri i tabels >
SET < emri i fushs > = { < shprehja > | DEFAULT }
[ { , < emri i fushs > = { < shprehja > | DEFAULT } } ]

< opsioni SELECT > ::=
< emri i tabels > [ ( < emri i fushs > [ { , < emri i fushs > } ] ) ]
< urdhri SELECT >

Komentojm sintaksn pr urdhrin INSERT. N rreshtin e par sht fjala e rezervuar
INSERT pastaj opsionet.
Opsioni i par nga kto opsione sht LOW_PRIORITY dhe DELAYED, mund t
zgjedhet njri, asnjrin nga kto dy opsione por zgjedhja e t dyve nuk mund t bhet.
Nse zgjedhim opsionin LOW_PRIORITY ather urdhri nuk do t ekzekutohet derisa
asnj klient t mos jet duke shfrytzuar tabeln n t ciln do t ekzekutohet urdhri.
Deri sa nuk bhet ekzekutimi i urdhrit nuk mund t kryhen veprime tjera. Nse zgjedhim
opsionin DELAYED ekzekutimi i urdhrit do t shtyhet por n dallim nga opsioni i par
BAZAT E T DHNAVE


118
ndrkoh mund t kryhen veprime tjera. Kto opsione prdoren vetm te tabelat e tipit
MyISAM dhe ISAM.
Opsioni tjetr sht IGNORE, me zgjedhjen e ktij opsioni do t injorohen t
gjith rreshtat q prmbajn vlera q bjn dyfishimin e elsit primar ose dyfishimin e
vlers s indeksit unik.
Opsioni i fundit sht fjala kye INTO, prdoret pr t treguar se n ciln tabel
do t bhet insertimi i t dhnave.
N rreshtin e dyt jan tri opsione prej t cilave duhet t zgjedhim.
Opsioni VALUES na mundson futjen e m shum se nj rreshti n tabel.
Nga sintaksa vrejm se duhet t ipet emri i tabels pastaj opsioni VALUES. Poashtu
mund t caktojm fushat e tabels t cilt duhet t jen t ndar mes veti me presje
dhe t futura n kllapa t vogla. Pas opsionit VALUES duhet t ipen vlerat q do t futen
n tabel pr seciln fush t deklaruar. Nse nuk caktojm emrat e fushave ather vlerat
q do t ipen pr seciln fush duhet t jen t renditura si n tabel.Nse keni harruar
renditjen e fushave n tabel, prdorni urdhrin DESCRIBE.
T gjitha vlerat duhet t jen brenda kllapave t vogla dhe t ndara mes veti me presje.
Pr fushat t definuara si AUTO_INCREMENT ose TIMESTAMP sht e preferuar vlera
DEFAULT.
Shembuj:
Fusim t dhnat n tabeln KLIENTT:

INSERT INTO KLIENTT ( Numri_i_llogaris, Emri, Mbiemri, Qyteti, Adresa, Tel )
VALUES (140201,Bujar,Shulemaja,Prishtin,Bregu i diellit,044/123-456);

INSERT INTO KLIENTT ( Numri_i_llogaris, Emri, Mbiemri, Qyteti, Adresa, Tel )
VALUES (140202,Amir,Simnica,Fush Kosov,rr.Agim Ramadani,044/321-
654);

INSERT INTO KLIENTT ( Numri_i_llogaris, Emri, Mbiemri, Qyteti, Adresa, Tel )
VALUES (140203,Valbona,Krasniqi,Dardan,rr.Adem Jashari,044/213-546);

INSERT INTO KLIENTT ( Numri_i_llogaris, Emri, Mbiemri, Qyteti, Adresa, Tel )
VALUES (140204,Gani,Thaqi,Besian,rr.Zahir Pajaziti,044/312-645);

INSERT INTO KLIENTT ( Numri_i_llogaris, Emri, Mbiemri, Qyteti, Adresa, Tel )
VALUES (140205,Lavdim,Kastrati,Prishtin,Tophane,044/132-465);

Kjo mund t shkruhet edhe si:

INSERT INTO KLIENTT ( Numri_i_llogaris, Emri, Mbiemri,Qyteti, Adresa,Tel)
VALUES
(140201,Bujar,Shulemaja,Prishtin,Bregu i diellit,044/123-456),
(140202,Amir,Simnica,Fush Kosov,rr.Agim Ramadani,044/321-654),
(140203,Valbona,Krasniqi,Dardan,rr.Adem Jashari,044/213-546),
(140204,Gani,Thaqi,Besian,rr.Zahir Pajaziti,044/312-645),
(140205,Lavdim,Kastrati,Prishtin,Tophane,044/132-465);
BAZAT E T DHNAVE


119

Nse e dim renditjen e fushave ather nuk kemi nevoj t shkruajm pjesn me
shkronja t nxira (bold).


Opsioni SET sht i prshtatshm nse dshirojm t fusim t dhna vetm n
disa fusha. Nga sintaksa shihet se s pari duhet t shkruhet emri i tabels pastaj SET dhe
fushat q dshirojm t ju ndajm vler.

Shembuj:
Fusim t dhna n tabeln KREDIT:

INSERT INTO KREDIT SET Numri_i_llogaris=140203,Tipi_i_kredis=Vetur,
Shuma=4500,Prqindja=6,Kohzgjatja_e_kredis=12,Aprovimi=1,Fillimi=20060412;

INSERT INTO KREDIT SET Numri_i_llogaris=140205,Tipi_i_kredis=Mobile,
Shuma=1300,Prqindja=7.5,Kohzgjatja_e_kredis=6,Aprovimi=1,Fillimi=20060823;

INSERT INTO KREDIT SET Numri_i_llogaris=140201,Tipi_i_kredis=Vetur,
Shuma=7000,Prqindja=5.5,Kohzgjatja_e_kredis=36,Aprovimi=1,
Fillimi=20050215;

INSERT INTO KREDIT SET Numri_i_llogaris=140203,Tipi_i_kredis=Shtpi,
Shuma=45000,Prqindja=4.7,Kohzgjatja_e_kredis=120,Aprovimi=2,
Fillimi=20050520;

INSERT INTO KREDIT SET
Numri_i_llogaris=140202,Tipi_i_kredis=Kompjuter,
Shuma=630,Prqindja=7,Kohzgjatja_e_kredis=12,Aprovimi=1,Fillimi=20060712;

INSERT INTO KREDIT SET Numri_i_llogaris=140204,Tipi_i_kredis=Kuzhin,
Shuma=1000,Prqindja=4,Kohzgjatja_e_kredis=12,Aprovimi=1,Fillimi=20050904;

INSERT INTO KREDIT SET Numri_i_llogaris=140205,Tipi_i_kredis=Lavatrie,
Shuma=420,Prqindja=3,Kohzgjatja_e_kredis=6,Aprovimi=1,Fillimi=20060605;

INSERT INTO KREDIT SET Numri_i_llogaris=140201,Tipi_i_kredis=Mobile,
Shuma=1730,Prqindja=5.8,Kohzgjatja_e_kredis=12,Aprovimi=1,
Fillimi=20061002;

INSERT INTO KREDIT SET Numri_i_llogaris=140205,Tipi_i_kredis=Vetur,
Shuma=5250,Prqindja=7.3,Kohzgjatja_e_kredis=18,Aprovimi=1,
Fillimi=20050412;

INSERT INTO KREDIT SET Numri_i_llogaris=140202,Tipi_i_kredis=Tavolin,
Shuma=420,Prqindja=8.3,Kohzgjatja_e_kredis=12,Aprovimi=2,Fillimi=20050812;
BAZAT E T DHNAVE


120
Opsioni SELECT m s shpeshti prdoret pr kopjimin e t dhnave t nj tabele
n nj tjetr, si shembull:
Krijojm tabeln TEST n bazn e t dhnave BANKA.



CREATE TABLE TEST
(
Numri VARCHAR(10) NOT NULL PRIMARY KEY,
Emri VARCHAR(20) NOT NULL,
Mbiemri VARCHAR(20) NOT NULL,
Qyteti VARCHAR(20) NOT NULL,
Adresa VARCHAR(20) NOT NULL,
Tel VARCHAR(20) NOT NULL
);

Pastaj shkruajm

INSERT INTO TEST (Numri, Emri, Mbiemri, Qyteti, Adresa, Tel)
SELECT Numri_i_llogaris,Emri,Mbiemri,Qyteti,Adresa,Tel FROM KLIENTT;

Ekzekutohet, dhe t gjitha t dhnat e tabels KLIENTT do t gjinden edhe n tabeln
TEST.




Njsoj si urdhri INSERT prdoret urdhri REPLACE, sintaksa e t cilit ndryshon me at
t urdhrit INSERT vetm se nuk e prkrah opsionin IGNORE. Ndrsa t gjitha opsionet
tjera VALUES, SET dhe SELECT i prkrah.

BAZAT E T DHNAVE


121
Modifikimi i tabels

Nuk sht e pazakont, q pas krijimit t tabels t kemi nevoj pr ndonj ndryshim n
definimin e saj. Pr fat t mir MySQL na mundson ndryshimin e elementeve t tabels
pas krijimit t saj. P.SH. mund t shtojm fusha, t ndryshojm definimin e fushave n
tabel, shtojm elsin primar dhe elsin e jashtm ose fshirjen e fushave. Pr
modifikimin e nj tabele prdorim urdhrin ALTER TABLE. Ja edhe sintaksa e urdhrit
ALTER TABLE:

ALTER TABLE <emri i tabels>
<opsioni alter> [{, <opsioni alter>}...]

<opsioni alter>::=
{ADD [COLUMN] <definimi i fushs> [FIRST | AFTER <emri i fushs>]}
| {ADD [COLUMN] (<element i tabels> [{, <element i tabels>}...])}
| {ADD [CONSTRAINT <emri i rregulls>] PRIMARY KEY
(<emri i fushs> [{, <emri i fushs>}...])}
| {ADD [CONSTRAINT <emri i fushs>] FOREIGN KEY [<emri i indeksit>]
(<emri i fushs> [{, < emri i fushs>}...]) <definimi i referencs>}
| {ADD [CONSTRAINT <emri i rregulls>] UNIQUE [<emri i indeksit>]
(<emri i fushs> [{, <emri i fushs>}...])}
| {ADD INDEX [<emri i indeksit>] (<emri i fushs> [{, <emri i fushs>}...])}
| {ADD FULLTEXT [<emri i indeksit>] (<emri i fushs> [{, <emri i fushs>}...])}
| {ALTER [COLUMN] <emri i fushs> {SET DEFAULT <vler> | DROP
DEFAULT}}
| {CHANGE [COLUMN] <emri i fushs> <definimi i fushs> [FIRST | AFTER
< emri i fushs>]}
| {MODIFY [COLUMN] <definimi i fushs> [FIRST | AFTER <emri i fushs>]}
| {DROP [COLUMN] <emri i fushs>}
| {DROP PRIMARY KEY}
| {DROP INDEX <emri i indeksit>}
| {DROP FOREIGN KEY <emri i rregulls>}
| {RENAME [TO] <emri i tabels s re>}
| {ORDER BY <emri i fushs> [{, <emri i fushs>}...]}
| {<tip i tabels> [<tip i tabels>...]}

Elementet e domosdoshme n sintaks pr modifikimin e tabels jan: ALTER TABLE,
emri i tabels q do t modifikojm dhe nj ose m shum opsione pr ndryshim
(opsionet alter). Nse zgjedhim m shum se nj opsion pr ndryshim ather ato duhet t
ndahen me presje. Supozojm se krijojm nj tabel:

CREATE TABLE Librat
(
ID SMALLINT NOT NULL,
Titulli_i_librit VARCHAR(40) NOT NULL,
IDBotuesi SMALLINT NOT NULL DEFAULT I panjohur
BAZAT E T DHNAVE


122
)
ENGINE=INNODB;

Si mund t shihet krijuam nj tabel me emrin Librat q prmban tri fusha. Tani
supozojm q dshirojm t bjm ndryshime n definimin e ktyre fushave. Dshirojm
q n tabel t ket els primar, els t jashtm dhe fusha shtes. Urdhri vijues ALTER
TABLE e bn at:

ALTER TABLE Librat
ADD PRIMARY KEY (ID),
ADD CONSTRAINT emri_i_rregulls FOREIGN KEY (IDBotuesi) REFERENCES
Botuesi (IDBotuesi),
ADD COLUMN Zhanri ENUM(Dram,Roman,Poezi) NOT NULL AFTER
Titulli_i_librit;

Urdhri fillon me ALTER TABLE e cila identifikon emrin e tabels q do t modifikojm,
q n rastin ton sht tabela Librat. Rreshti tjetr shton elsin primar n tabel duke u
bazuar n fushn ID. Rreshti i tret shton nj els t jashtm (foreign key) n tabel dhe
n fund shtuam nj fush me emrin Zhanri me tipin e t dhnave ENUM dhe t paraqitet
n renditje pas fushs Titulli_i_librit. Nse gjat krijimit t tabels gabojm n definimin
e fushs ather prmisimet mund t bhen kshtu, shembull: nga tabela Librat
dshirojm q emri i fushs Titulli_i_librit t jet Titulli dhe tipi i t dhnave
VARCHAR(10) dhe t paraqitet pas fushs IDBotuesi

ALTER TABLE Librat
CHANGE Titulli_i_librit Titulli VARCHAR(10) NOT NULL AFTER IDBotuesi;

T njjtn gj mund ta bjm edhe me MODIFY por aty nuk mund t bjm ndryshimin
e emrit t fushs.

Me an t ALTER TABLE mund t bjm riemrimin e tabels:

ALTER TABLE Librat RENAME TO Romanet;

Urdhri ALTER TABLE shfrytzohet edhe pr largimin e fushave nga tabela,

ALTER TABLE Librat
DROP COLUMN Zhanri,
DROP PRIMARY KEY;

Fshirja e tabels

Fshirja e tabels bhet me an t urdhrit DROP TABLE dhe sintaksa e tij sht:

DROP [TEMPORARY] TABLE [IF EXISTS] <emri i tabels> [{,<emri i tabels>} ]

BAZAT E T DHNAVE


123
Urdhri DROP TABLE prfshin opsionin TEMPORARY i cili prdoret pr fshirjen e
tabelave t prkohshme duke mos br fshirjen aksidentale t ndonj tabele t
prhershme. Tjetr opsion sht IF EXISTS, ashtu si te tabelat edhe ktu sht m mir t
prdoret kjo fjal e rezervuar. M mir t marrim nj vrejtje se ndonj gabim kur
dshirojm t fshijm ndonj tabel q nuk ekziston. Poashtu kt urdhr mund t
prdorim pr fshirjen e m shum se nj tabele n t njjtn koh, duke br ndarjen e
tyre me presje.

Shembuj:

DROP TABLE IF EXISTS Librat;
DROP TEMPORARY TABLE Test, Test1, Test2;
DROP TEMPORARY TABLE IF EXISTS Test, Test1, Test2;

Urdhri SHOW

Me an t ktij urdhri mund t shohim t dhna specifike pr do baz t t dhnave dhe
tabelave. Urdhri

SHOW CREATE DATABASE <emri i bazs s t dhnave>

Pra ky urdhr krkon vetm emrin e bazs s t dhnave, p.sh:

SHOW CREATE DATABASE Banka;

Urdhri SHOW DATABASES; prdoret pr shikimin e t gjitha bazave t t dhnave.
Sintaksa sht

SHOW DATABASES;

Urdhri SHOW COLUMNS liston fushat n tabel me t gjitha t dhnat pr ato fusha.
Sintaksa sht

SHOW [FULL] COLUMNS FROM <emri i tabels> FROM <emri i bazs s t
dhnave] [LIKE <shprehje>]

Nj shembull:
SHOW COLUMNS FROM user FROM mysql LIKE %priv;

Poashtu urdhri SHOW mund t prdoret edhe pr t dhnat mbi tabelat, ja edhe sintaksa:

SHOW TABLES [FROM <emri i bazs s t dhnave>] [LIKE <shprehje>]
Shembull:

SHOW TABLES FROM mysql LIKE help%;

BAZAT E T DHNAVE


124
Urdhri SHOW TABLES tregon t gjitha tabelat n baz t t dhnave.

Prdorimi i urdhrit DESCRIBE

Nj urdhr tjetr i prshtatshm pr shikimin e informacioneve mbi tabela sht
DESCRIBE.
Sintaksa:
DESCRIBE <emri i tabels> [ <emri i fushs> | <shprehje>];
Shembull:
DESCRIBE user %priv;

Editimi (ndryshimi) i t dhnave n MySQL

Pasi kemi msuar insertimin e t dhnave n nj baz t t dhnave tani jemi gati pr t
msuar editimin e tyre. Editimi bhet me an t urdhrit UPDATE, ja edhe sintaksa:

UPDATE [LOW_PRIORITY] [IGNORE]
<editimi i nj tabele> | <editimi i tabels s lidhur>

<editimi i nj tabele>::=
<emri i tabels>
SET <emri i fushs>=<shprehje> [{, <emri i fushs>=<shprehje>}...]
[WHERE <kushti>]
[ORDER BY <emri i fushs> [ASC | DESC] [{, <emri i fushs > [ASC | DESC]}...]]
[LIMIT <numri i rreshtave>]

<editimi i tabels s lidhur>::=
<emri i tabels> [{, <emri i tabels>}...]
SET <emri i fushs>=<shprehje> [{, <emri i fushs>=<shprehje>}...]
[WHERE <kushti>]

Rreshti i par i sintakss prmban fjaln e detyrueshme UPDATE bashk me opsionet
LOW_PRIORITY dhe IGNORE t cilat i pam edhe te urdhri INSERT. Opsionin
LOW_PRIORITY e zgjedhim kur dshirojm t shtyjm ekzekutimin e urdhrit UPDATE
derisa asnj klient t mos jet i kyur n tabeln q do t bjm editimin. Opsionin
IGNORE e prdorim nse dojm t bjm editimin edhe pse ka els primar apo indeks
unik t dyfisht (rreshti me vler t dyfisht nuk do t editohet).
N rreshtin e dyt jan dy alternativa <editimi i nj tabele>, <editimi i tabels s
lidhur>. Editimi i tabels s lidhur i referohet tabels q sht e lidhur me nj tabel
tjetr me an t urdhrave SQL. Kjo lidhje sht e bazuar n FOREIGN KEY, pra me
lidhjen n mes t dy tabelave.
Ndrsa alternativa e par editimi i nj tabele, nuk ka kushte specifike pr lidhjen n mes
t tabelave, duhet t krijojm urdhrin UPDATE si m lart. Si shihet nga sintaksa s
pari duhet t specifikojm emrin e tabels pastaj fjaln e rezervuar SET. Fjala SET
prmban s paku nj emr t nj fushe t shoqruar me ndonj vler. Nse dshirojm q
t bjm editimin e m shum se nj fushe ather kt e bjm duke i ndar iftin emrin
BAZAT E T DHNAVE


125
e fushs/shprehjen me presje.Ve ksaj n alternativn e par mund t bjm edhe
zgjedhjen e disa opsioneve. I pari nga ata sht WHERE i cili prcakton cilt rreshta do t
editohen. Pasi q WHERE sht si pjes integrale e urdhrit SELECT ky do t msohet n
detale m von.
Opsioni i dyt ORDER BY mundson editimin e rreshtave sipas nj renditje t caktuar
duke u bazuar n vlerat n fush ose fusha. Opsioni ORDER BY mund t vhet pr m
shum se nj fush. Ve ksaj pr seciln fush t prfshir n fjaln e rezervuar ORDER
BY mund t zgjedhen opsionet ASC dhe DESC. ASC do t thot editimi i rreshtave sipas
renditjes rritse, ndrsa DESC editimi i rreshtave sipas renditjes zbritse.
Opsion tjetr sht fjala e rezervuar LIMIT. Me an t ktij opsioni mund t kufizojm
numrin e rreshtave q do t editohen. P.SH. Nse me urdhrin UPDATE do t editoheshin
10 rreshta, ather me urdhrin UPDATE por me LIMIT 5 do t editohen vetm 5 rreshtat
e par.

Shembuj:

UPDATE Kredit
SET Shuma=Shuma+10;

UPDATE Kredit
SET Shuma=Shuma+15
WHERE Numri_i_llogaris=140204;

UPDATE Kredit
SET Shuma=Shuma+15
WHERE Prqindja=5
ORDER BY Fillimi DESC
LIMIT 3;

N urdhrin e fundit editohet tabela Kredit, fusha Shuma rritet pr 15 ku fusha Prqindja
ka vlern 5, n renditjen DESC sipas fushs Fillimi e cila pasi q sht e definuar si
TIMESTAMP ateher rreshtat e edituar do t jen ato t dats m t vonshme, dhe n
fund editimi sht i kufizuar n 3 rreshtat e par.

Fshirja e t dhnave nga tabela

sht e pashmangshme q pas insertimit t t dhnave disa duhet t fshihen. Kur t
fshijm t dhna nga nj tabel ather fshihet nj ose m shum rreshta. Nuk mund t
fshijm vetm nj pjes t nj rreshti. MySQL prkrah dy urdhra q prdoren pr
fshirjen e t dhnave: DELETE dhe TRUNCATE.

Urdhri DELETE

Urdhri DELETE duhet t jet urdhri primar pr fshirjen e t dhnave nga tabela.
Sintaksa:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
BAZAT E T DHNAVE


126
{<fshirja n nj tabel> | <fshirja from> | <fshirja using>}

< fshirja n nj tabel>::=
FROM <emri i tabels>
[WHERE <kushti>]
[ORDER BY <emri i fushs> [ASC | DESC] [{, <emri i fushs> [ASC | DESC]}...]]
[LIMIT <numri i rreshtave>]
<fshirja from>::=
<emri i tabels>[.*] [{, <emri i tabels>[.*]}...]
FROM <emri i tabels> [{, <emri i tabels>}...]
[WHERE <kushti>]

<fshirja using>::=
FROM <emri i tabels>[.*] [{, <emri i tabels>[.*]}...]
USING <emri i tabels> [{, <emri i tabels>}...]
[WHERE <kushti>]

N rreshtin e par sht fjala kye DELETE s bashku me opsionet LOW_PRIORITY,
QUICK dhe IGNORE. Opsionet LOW_PRIORITY dhe IGNORE i pam m hert te
urdhrat INSERT dhe UPDATE. Nse zgjedhim opsionin LOW_PRIORITY ather
urdhri DELETE nuk do t ekzekutohet derisa t kyen t gjith shfrytzuesit nga
tabela ku do t bhet fshirja e t dhnave. Opsioni IGNORE nuk kthen gabime, vetm
lajmrime kur nuk mund t fshihet ndonj rresht. Opsioni tjetr QUICK zbatohet vetm te
tabelat e tipit MyISAM.

Fshirja e t dhnave n nj tabel

Si alternativ e par pr fshirjen e t dhnave prdoret fshirja nga nj tabel. Nga sintaksa
shihet se krkohet fjala kye FROM q definon emrin e tabels nga e cila do t fshihen t
dhnat. Poashtu ka mundsi opsionesh si fjala WHERE, ORDER BY dhe LIMIT. Opsioni
WHERE prmban kushtin me an t cilit do t fshihen t dhnat. ORDER BY bn sortimin
e fushave. LIMIT kufizon numrin e rreshtave q do t fshihen.

Shembuj:

DELETE FROM Test;

Nga ky urdhr kuptojm, jan shkruar fjalt kye DELETE FROM dhe emri i tabels.
Pasi nuk ka ndonj kusht tjetr ather t gjitha t dhnat nga tabela Test do t fshihen.

DELETE FROM Test
WHERE ID=12;

Fjala WHERE bn q t fshihen vetm t dhnat q kan fushn ID t barabart me 12.
Rreshtat q nuk plotsojn kt kusht nuk fshihen.

BAZAT E T DHNAVE


127
DELETE FROM Test
WHERE ID=13
ORDER BY Data DESC
LIMIT 1;

N kt urdhr rreshtat q do t fshihen jan: me ID=13, t sortuar duke u bazuar n
fushn Data me renditje zbritse (duke kuptuar se rreshti me dat m t von do t fshihet
i pari ). Ndrsa LIMIT kufizon numrin e rreshtave q do t fshihen, n rastin ton vetm
nj.

Fshirja e t dhnave nga tabelat e lidhura mes veti

Urdhri DELETE prkrah dy alternativa pr fshirjen e t dhnave nga tabelat e lidhura
mes veti: <fshirjen from> dhe <fshirjen using>.

Alternativa <fshirja from>

Kjo alternativ sht e ngjashme me at t fshirjes nga nj tabel n at se prmban fjalt
FROM dhe WHERE. Por nga sintaksa mund t vrejm se nuk prfshihet fjala ORDER
BY dhe LIMIT. Nga sintaksa vrejm pikn ( . ) dhe yllin ( * ) q shoqrojn emrin e
tabels. Pika dhe ylli jan opsionale. Me an t tyre tregojm se t gjitha fushat e tabels
jan t prfshira.

Shembull:

DELETE Test.*
FROM Test1, Test
WHERE Test1.ID=Test.ID
AND Test1.Emri=AAAA;

Nga ky urdhr kuptojm: tabela Test sht tabela nga e cila do t fshihen t dhnat, fjala
FROM prcakton tabelat e lidhura q n rastin ton jan Test dhe Test1. Fjala WHERE
tregon lidhjen n mes atyre tabelave dhe prfshin edhe kushtin e dyt.

Alternativa <fshirja using>

Dallimi primar n mes <fshijes using> dhe <fshirjes from> sht se n alternativn
<fshirja using> tabela nga e cila do t fshihen t dhnat caktohet n fjaln FROM dhe
lidhja e tabelave caktohet me fjaln USING. T gjitha aspektet tjera t ktyre dy
alternativave jan t njjta.

Shembull:
DELETE FROM Test
USING Test, Test1
WHERE Test.ID=Test1.ID
AND Test.Emri=AAAA;
BAZAT E T DHNAVE


128
Si mund t shihni fjala DELETE nuk e cakton emrin e tabels dhe prdorimi i fjals
WHERE sht identik si te alternativa <fshirja from>.

Prdormi i urdhrit TRUNCATE pr fshirjen e t dhnave

Me an t ktij urdhri bjm fshirjen e t gjitha t dhnave nga tabela. Sintaksa

TRUNCATE [TABLE] <emri i tabels>

Si mund t shihet duhet t shkruhet fjala kye TRUNCATE dhe emri i tabels. Mund t
shkruajm edhe opsionin TABLE por nuk ka ndonj efekt. P.SH. urdhri i mposhtm bn
fshirjen e t dhnave nga tabela Test:

TRUNCATE TABLE Test;

Pra urdhri TRUNCATE prmban opsionin TABLE dhe emrin e tabels. Ekzekutimi i
urdhrit TRUNCATE sht i njjt me ekzekutimin e urdhrit vijues DELETE:

DELETE FROM Test;

Dallimi thelbsor ndrmjet urdhrave TRUNCATE dhe DELETE sht se urdhri
TRUNCATE nuk ka siguri gjat kryerjes s transaksioneve. Dallim tjetr sht se urdhri
TRUNCATE e starton numrin e AUTO_INCREMENT nga fillimi pr dallim nga urdhri
DELETE. N prgjithsi urdhri TRUNCATE sht m i shpejt se urdhri DELETE.



Shikimi i t dhnave n MySQL

Nj nga funksionet kryesore q nj system i menaxhimit t bazave relacionale
duhet t prkrah sht qasja e t dhnave. Kjo qasje duhet t mundsoj shikimin e t
dhnave t dshiruara si dhe mnyrn se si ato do t paraqiten. Pr prkrahjen e ktyre
veprimeve MySQL sht i pajisur me SQL urdhrin SELECT. Ky urdhr prdoret pr
shikimin e t dhnave n gati t t gjitha sistemet e menaxhimit t bazave relacionale. Me
an t urdhrit SELECT mund t zgjedhim cilat fusha dhe cilt rreshta nga tabela ose
tabelat dshirojm ti shohim.


Urdhri SELECT

Sa her q dshirojm t shohim t dhna nga ndonj baz e t dhnave prdorim
urdhrin SELECT, me an t t cilit prcaktojm t dhnat q dshirojm ti shohim.
Urdhri SELECT sht urdhri m i fuqishm n MySQL. Ka nj fleksibilitet t madh
dhe mundson krijimin e pyetsorve prej atyre m t thjesht deri te ata m kompleks.
Sintaksa e urdhrit SELECT sht e prbr nga nj numr i fjalve dhe elementeve t
ndryshme, ku shumica nga to jan opsionale. Ja edhe sintaksa:
BAZAT E T DHNAVE


129
SELECT
[<opsionet select> [<opsionet select>...]]
{* | <lista e elementeve>}
[<definimi i ekportit>]
[
FROM <tabela referuese> [{, <tabela referuese>}...]
[WHERE <shprehje> [{<operator> <shprehje>}...]]
[GROUP BY <definimi i group by>]
[HAVING <shprehje> [{<operator> <shprehje>}...]]
[ORDER BY <definimi pr order by>]
[LIMIT [<fillimi>,] <numri rrestave>]
[PROCEDURE <emri i procedurs> [(<argumenti> [{, <argumenti>}...])]]
[{FOR UPDATE} | {LOCK IN SHARE MODE}]
]

<opsionet select>::=
{ALL | DISTINCT | DISTINCTRO}
| HIGH_PRIORITY
| {SQL_BIG_RESULT | SQL_SMALL_RESULT}
| SQL_BUFFER_RESULT
| {SQL_CACHE | SQL_NO_CACHE}
| SQL_CALC_FOUND_ROS
| STRAIGHT_JOIN

<lista e elementeve>::=
{<emri i fushs> | <shprehje>} [[AS] <pseudonim>]
[{, {<emri i fushs> | <shprehje>} [[AS] <pseudonim>]}...]

<definimi i ekportit>::=
INTO OUTFILE <emri i datoteks> [<opsionet e ekportimit>
[<opsionet e ekportimit >]]
| INTO DUMPFILE <emri i datoteks >

< opsionet e ekportimit >::=
{FIELDS
[TERMINATED BY <vler>]
[[OPTIONALLY] ENCLOSED BY <vler>]
[ESCAPED BY <vler>]}
| {LINES
[STARTING BY <vler>]
[TERMINATED BY <vler>]}

< tabela referuese >::=
<emri i tabels> [[AS] <pseudonim>]
[{USE | IGNORE | FORCE} INDEX <emri i indeksit> [{, <emri i indeksit>}...]]

BAZAT E T DHNAVE


130
<definimi i group by>::=
<emri i fushs> [ASC | DESC]
[{, <emri i fushs> [ASC | DESC]}...]
[WITH ROLLUP]

<definimi pr order by>::=
<emri i fushs> [ASC | DESC]
[{, <emri i fushs> [ASC | DESC]}...]

Si mund t shihet nga sintaksa urdhri SELECT prmban nj numr t madh t
elementeve. Duke ju referuar sintakss vrejm se elementet e domosdoshme jan:

SELECT { * | <lista e elementeve> }

Pra sintaksa sht e prbr nga fjala kye SELECT dhe * ose lista e elementeve, e cila
sht e prbr nga fushat ose shprehjet si m posht:

<lista>::=
{<emri i fushs> | <shprehje>} [[AS] <pseudonim>]
[{, {<emri i fushs> | <shprehje>} [[AS] <pseudonim>]}...]

Pra, sintaksa duhet t ket s paku nj fush ose shprehje. Nse prfshihet m shum se
nj fush ose shprehje ather ato ndahen me presje. Si shtes apo si opsion sht ndarja
e nj pseudonimi pr fushat ose shprehjet duke prdor fjaln AS.
Pr shikimin e t dhnave nga ndonj tabel duhet t prdorim fjaln FROM dhe tabeln
referuese. Fjala FROM krkon nj ose m shum tabela referuese t ndara mes veti me
presje si m posht:

FROM <tabela referuese> [{, <tabela referuese>}...]

< tabela referuese >::=
<emri i tabels> [[AS] <pseudonim>]
[{USE | IGNORE | FORCE} INDEX <emri i indeksit> [{, <emri i indeksit>}...]]

Secila tabel referuese sht emri i tabels, zgjedhja AS mundson ndarjen e nj
pseudonimi pr at tabel. Fjala FROM mund t prmbaj m shum se nj tabel
referuese. Pr krijimin e urdhrit SELECT pr shikimin e t dhnave nga nj tabel
krkon nj numr t vogl elementesh. Se si funksionon kjo do ta shohim me disa
shembuj:

SELECT * FROM Klientet;

SELECT * FROM Kredite;

SELECT Emri, Mbiemri FROM Kredite;

BAZAT E T DHNAVE


131
N urdhrin e par prfshihet fjala kye SELECT pastaj *, me an t * krkojm nga
MySQL q t kthej si rezultat t gjitha fushat. Ndrsa me FROM prcaktojm se nga cila
tabel dshirojm ti shohim kto t dhna. Kur t ekzekutojm kt urdhr do t shohim
t gjitha t dhnat nga tabela Klientet. Prdorimi i * sht nj mnyr e leht pr shikimin
e rezultatit pr seciln fush. Nse dshirojm t shohim t dhna nga disa fusha t
caktuara ather shkruajm fjaln kye SELECT dhe emrat e fushave nga t cilat
dshirojm t shohim t dhnat t ndara mes veti me presje dhe FROM emri i tabels,
ashtu si m lart te shembulli n rreshtin e tret. Duke ju referuar srish sintakss pr
urdhrin SELECT shohim mundsin e ndarjes s pseudonimit pr secilin element t
lists. Kjo bhet si m posht:

SELECT Emri AS Filan, Mbiemri AS Fisteku FROM Klientet;

SELECT Emri AS Emri i klientit, Mbiemri AS Mbiemri i klientit FROM Klientet;

N shembullin e msiprm n rreshtin e dyt shohim se n t dy rastet pseudonimet jan
futur n thonjza, kjo sht p shkak se ato prbhen nga m shum se nj fjal dhe futja
n thonjza i tregon MySQL se ato fjal jan pjes e pseudonimit.

Prdorimi i shprehjeve n urdhrin SELECT

N sintaksn e urdhrit SELECT <lista e elementeve> prve emrit t fushs prfshinte
edhe shprehjen. Le t shohim nj urdhr SELECT q prmban nj shprehje:

SELECT Emertimi AS Emri i mallit, NeDepo+TeShitura AS Total
FROM Dyqani;

Elementi i par i lists s elementeve sht i njjt si te shembujt e mparshm, ndrsa
elementi i dyt sht shprehje. Shprehja (NeDepo+TeShitura) mbledh vlerat nga fusha
NeDepo dhe TeShitura. Ksaj shprehje i sht ndar emri Total, i cili emr do t paraqitet
n rezultatin e ekzekutimit t ktij pyetsori. Mund t krijohen shprehje edhe m t
komplikuara varsisht nga llogaritja q bhet.

Prdorimi dhe definimi i variablave n urdhrin SELECT

Nj lehtsim tjetr te shprehjet sht mundsia e krijimit dhe definimit t variablave.
Variabla duhet t filloj me shenjn @:

@Emri, @Mbiemri etj.

Ndarja e vlers pr variablat bhet me an t urdhrit SET, P.SH.

SET @Numri=140201;
SET @Emri=Bujar;
SET @Shuma=550;

BAZAT E T DHNAVE


132
Shembull:
SELECT 1+3, Klientet, NOW( ) AS Data dhe ora;

Me ekzekutimin e ktij urdhri marrim si rezultat:
+-----+--------------+--------------------------+
| 1+3 | Klientet | Data dhe ora |
+-----+--------------+--------------------------+
| 4 | Klientet | 2004-08-24 11:39:40 |
+-----+--------------+--------------------------+
1 row in set (0.00 sec)

Elementi i par tregon se si me urdhrin SELECT mund t bjm llogaritje, elementi i
dyt Klientet sht nj string i cili paraqitet edhe si rezultat, n fund elementi i tret
NOW( ) AS Data dhe ora kthen datn dhe orn aktuale.

Opsionet te urdhri SELECT

Opsioni ALL prcakton q pyetsori mund t kthej si rezultat t gjith rreshtat edhe pse
ka rreshta duplikat. Opsioni DISTINCT dhe DISTINCTROW kan t njjtn domethnie,
prcaktojn q n rezultatin e pyetsorit t mos paraqiten rreshtat me t dhna t dyfishta.
Nse nuk zgjedhim asnjrin nga kto opsione nnkuptohet se sht zgjedhur ALL.
N tabeln Klientet nga shembujt e mparshm shtojm kto t dhna:

INSERT INTO Klientet VALUES
(140206,Bujar,Krasniqi,Pej,rr.Gjimnazi,044/123-678),
(23,Gani,Thaqi,Besian,rr.Zahir Pajaziti,044/312-645);

Ekzekutojm kt urdhr dhe pastaj shkruajm:

SELECT ALL Emri FROM Klientet;

Do t paraqiten t gjith rreshtat nga kjo tabel, ku te fusha Emri paraqitet Gani dhe
Bujar dyher, ndrsa me ekzekutimin e urdhrit:

SELECT DISTINCT Emri FROM Klientet;

Emrat nuk jan duplikat.

SELECT ALL Emri, Mbiemri FROM Klientet;

Tani Gani Thaqi prsritet dyher, ndrsa me

SELECT DISTINCT Emri, Mbiemri FROM Klientet;

T gjith rreshtat jan t ndryshm.

BAZAT E T DHNAVE


133
WHERE

Fjala kye WHERE na mundson prcaktimin e rreshtave q dshirojm ti shohim si
rezultat i ekzekutimit t nj pyetsori. Fjala kye WHERE sht e prbr nga nj ose m
shum kushte q definojn parametrat t urdhrit SELECT. Secili kusht sht nj shprehje
q mund t jet emr i nj fushe, operator ose funksion. Sintaksa n vijim prshkruan se
si sht e definuar fjala kye WHERE:

WHERE < shprehja > [ { < operator > < shprehja > } ]

Si mund t shihet fjala kye WHERE duhet t prmbaj s paku nj kusht q definon
rreshtat q do t paraqiten n rezultat. Kur t definojm m shum se nj kusht ather
ato kushte lidhen mes veti me operatort logjik AND ose OR. Tani le t shohim nj
shembull:

SELECT Numri, Tipi_i_kredise AS Kredia FROM Kredite
WHERE Tipi_i_kredise = Mobile;

Fjala kye WHERE kushtzon q vetm rreshtat n fushn Tipi_i_kredise me vlern
Mobile t paraqiten si rezultat i ktij pyetsori.

SELECT Numri, Tipi_i_kredise AS Kredia FROM Kredite
WHERE Tipi_i_kredise=Vetur AND Shuma>5000;

Ktu fjala kye WHERE prmban dy kushte t lidhura mes veti me operatorin AND. Kjo
do t thot q duhet t plotsohen dy kushtet n mnyr q rreshti t paraqitet si rezultat.
Kushti i par krkon q tipi i kredise t jet vetur dhe mimi i saj t jet m i madh se
5000. Nga urdhri i msiprm mund t themi se pse nuk e shfrytzuam pseudonimin
Kredia pr fushn Tipi_i_kredise te fjala kye WHERE. Kjo sht pr shkak se si MySQL
i proceson urdhrat SELECT nuk mund t shfrytzohen pseudonimet n fjaln kye
WHERE. Nj mundsi e till sht e lejuar te fjala kye HAVING.

GROUP BY

Deri tani msuam disa pjes prbrse t urdhrit SELECT t cilat kthenin si rezultat
vlera nga fushat dhe rreshtat. Fjala kye GROUP BY ndryshon pak nga elementet tjera t
urdhrit SELECT nga ajo se ai bn grupimin e vlerave. Ja edhe sintaksa:

GROUP BY <definimi i group by>

<definimi i group by>::=
<emri i fushs> [ASC | DESC]
[{, <emri i fushs> [ASC | DESC]}...]
[WITH ROLLUP]

BAZAT E T DHNAVE


134
Fjala kye GROUP BY prmban s paku nj fush edhe pse mund t prmbaj m shum
se nj. Nse jan zgjedhur m shum se nj fush ather ato ndahen me presje n mes
veti. Me prcaktimin e fjals kye GROUP BY rreshtat grupohen sipas vlerave n fusha.
Si rezultat grupimi bhet pr ato fusha q kan vlera q prsriten. P.SH. nuk mund t
bjm grupimin pr fushn q sht els primar, sepse do vler n at fush sht
unike.

Shembuj:

SELECT * FROM Klientet
WHERE Qyteti=Prishtin
GROUP BY Emri;

Si rezultat do t paraqiten t gjith klientt n qytetin e Prishtins t sortuar sipas emrit.
Sortimi mund t bhet me renditje rritse ASC dhe renditje zbritse DESC, nse nuk
bhet zgjedhja e asnjrs nga kto ather nnkuptohet vlera ASC.

SELECT Numri, COUNT(Shuma) AS Numri i kredive
FROM Kredite
WHERE ID<10
GROUP BY Numri DESC;

Si rezultat paraqitet numri i kredive pr secilin numr llogarie.

Fjala kye HAVING

Fjala kye HAVING sht e ngjashme me WHERE n at se prmban nj ose m shum
kushte, t cilt definojn rreshtat q do t paraqiten n rezultat. Megjithat HAVING ka
disa prparsi nga WHERE. P.SH. n HAVING mund t prfshijm funksionet aggregate
sikur funksioni COUNT( ). Pastaj mund t shfrytzohen pseudonimet n HAVING t
ciln gj nuk mund ta bjm te fjala kye WHERE.
Sintaksa e HAVING:

HAVING < shprehje > [ { < operator > < shprehje > } ]

Si shihet nga sintaksa duhet t shkruhet s paku nj shprehje. HAVING sht e
konstruktuar njsoj si WHERE n kuptimin e kushteve dhe lidhjen e atyre kushteve mes
veti me operator.

SELECT Numri, Tipi_i_kredive, COUNT(Shuma) AS Nkredive FROM Kredite
WHERE ID<20
GROUP BY Numri
HAVING Nkredive<3;

Si rezultat do t paraqiten t gjith numrat e llogaris s klientve q kan marr m pak
se tri kredi.
BAZAT E T DHNAVE


135
Fjala kye ORDER BY

N sintaksn e urdhrave UPDATE dhe DELETE sht prmend edhe fjala kye ORDER
BY e cila prdorej pr sortimin e t dhnave q u modifikuan ose ato q u fshin. Poashtu
edhe urdhri SELECT prmban fjaln kye ORDER BY q na mundson prcaktimin e
renditjes s rreshtave n rezultat. Ja edhe sintaksa:

ORDER BY < definimi i order by >

< definimi i order by >::=
< emri i fushs > [ ASC | DESC ]
[ { , < emri i fushs > [ ASC | DESC ] } ... ]

Si shihet nga sintaksa ktu duhet t prfshihet prveq fjals kye ORDER BY edhe s
paku nj emr i nj fushe. Mund t shkruajm edhe pseudonim t ndonj fushe ose emrin
e asaj fushe. Nse dshirojm q t prfshihen m shum se nj fush ather ato
shkruhen duke i ndar me presje. Pr seciln fush mund t shkruajm mnyrn e
sortimit: sipas renditjes rritse ASC ose zbritse DESC. Nse nuk zgjedhet asnjri nga
opsionet ather nnkuptohet se sht zgjedh mnyra e renditjes ASC.

Shembuj:

SELECT * FROM Klientet
ORDER BY Emri;

Si rezultat paraqiten t gjitha shnimet e klientve nga tabela Klientet t sortuara sipas
emrit me renditje rritse. N renditjet me m shum se nj fush, sht rregull q s pari
renditja bhet sipas fushs s par dhe pastaj fushs s dyt.

SELECT * FROM Klientet
ORDER BY Emri,Qyteti;

Fjala kye LIMIT

Fjala kye LIMIT mund t merr dy argumente:

LIMIT [<fillimi>,] <numri rrestave>

Argumenti i par sht opsional dhe prcakton prej ku t filloj numrimi i rreshtave. Nse
nuk sht zgjedhur ndonj vler ather nnkuptohet vlera 0. Argumenti i dyt me radh
< numri i rreshtave > n fjaln kye LIMIT tregon numrin e rreshtave q do t paraqiten
n rezultat.




BAZAT E T DHNAVE


136
Shembuj:

SELECT * FROM Kredite
WHERE ID<20
ORDER BY ID
LIMIT 5;

Si rezultat paraqiten 5 t dhnat e fundit q plotsojn kushtin WHERE.

SELECT * FROM Kredite
WHERE ID<20
ORDER BY ID
LIMIT 4, 5;

Si rezultat paraqiten 5 t dhna duke filluar nga e dhna e katrt q plotsojn kushtin
WHERE.

Prdorimi i operatorve n urdhrat SQL

Gjat msimit t SQL urdhrave kemi par se n sintaksn e tyre jan prdor nj numr i
shprehjeve. P.SH. kemi prdor shprehjet te fjala kye WHERE, te urdhrat SELECT,
UPDATE dhe DELETE. Shprehja sht nj formul e prbr nga emra t fushave,
operatorve dhe funksioneve. Kto elemente s bashku krijojn shprehje m efektive pr
modifikimin e t dhnave n MySQL. N mnyr q do shprehje t jet efikase
shfrytzohen operator t ndryshm. Operatori sht nj symbol ose fjal kye q
prcakton nj aksion t caktuar ose kushtet ndrmjet elementeve t shprehjes ose
ndrmjet shprehjeve.

Prioriteti i operatorve

Kur nj shprehje t procesohet ajo prllogaritet sipas renditjes s elementeve t shprehjes
dhe prioritetit t operatorve. MySQL proceson shprehjet sipas nj rregulle specifike t
prioritetit t operatorve. Kur kemi t bjm me shprehje komplekse q kan shum
operator,MySQL duhet t prcaktoj se cili operator ka prparsi.Pr at MySQL e ka t
paradefinuar prioritetin e kategorive t operatorve sipas ksaj renditje:

BINARY, COLLATE
NOT ( negacioni), ! (negacioni)
- ( minusi unar )
* ( shumzimi ), / ( pjestimi ), % ( pjestimi me mbetje )
- ( zbritja), + ( mbledhja )
T gjith operatort e krahasimit prveq BETEEN dhe NOT BETEEN
BETWEEN, NOT BETWEEN
AND, &&
OR, | |, XOR

BAZAT E T DHNAVE


137
Operatort aritmetik

Operatort aritmetik prdoren pr llogaritje n shprehje. Jan t ngjashm me simbolet n
algjebr mbledhja, zbritja, shumzimi, pjestimi. N tabeln e mposhtme jan
prshkrimet pr secilin operator:

Operatori Prshkrimi
+ ( mbledhja ) Mbledh dy argumente
- ( zbritja ) Zbret argumentin e dyt nga argumenti i par
- ( unar ) Ndrron shenjn e argumentit
* (shumzimi ) Shumzon dy numra
/ ( pjestimi ) Pjeston argumentin e par me argumentin e dyt
% ( pjestimi me mbetje )
Pjeston argumentin e par me argumentin e dyt dhe si
rezultat jep mbetjen

M hert kemi par shembuj ku kemi prdor operatort aritmetik n urdhrat SQL.

SELECT Emertimi AS Emri i mallit, NeDepo+TeShitura AS Total
FROM Dyqani;

UPDATE Kredit
SET Shuma=Shuma+10;

Operatort e krahasimit

Operatort e krahasimit prdoren pr krahasimin ndrmjet dy argumenteve dhe
prcaktimin e vlers sakt, pasakt ose NULL t atij kushti. Nse njri ose t dy
argumentet jan NULL ather vlera e kushtit sht NULL, prveq te operatori < = > i cili
kthen vlern e sakt kur dy argumentet jan t njjt. Q kushti t pranohet duhet t
kthej vler t sakt. P.SH. me an t urdhrit SELECT i cili prmban fjan kye
WHERE:

SELECT * FROM Klientet
WHERE Qyteti=Prishtin;

Fjala kye WHERE prmban shprehjen Qyteti=Prishtin . Kur t ekzekutohet urdhri i
msiprm vlera n fushn Qyteti krahasohet me vlern Prishtin. Nse vlera sht
Prishtin ather kushti sht i sakt. Nse vlera nuk sht Prishtin kushti do t jet i
pasakt. Nse n fushn Qyteti kemi vlera NULL ather kushti sht NULL. Si rezultat
do t paraqiten vetm rreshtat ku n fushn Qyteti sht vlera Prishtin.

MySQL prkrah nj numr t madh t operatorve t krahasimit, q mundsojn
prcaktimin e kushteve t ndryshme n urdhrat SQL. Tabela e mposhtme prshkruan
kta operator:

BAZAT E T DHNAVE


138

Operatori Prshkrimi
= Kthen vlern e sakt nse t dy argumentet jan t barabart
< = >
Kthen vlern e sakt nse t dy argumentet jan t barabart,
edhe n rastin kur kan vler NULL
<>, != Kthen vlern e sakt nse argumentet nuk jan t barabart
<
Kthen vlern e sakt nse argumenti i par sht m i vogl
se argumenti i dyt
<=
Kthen vlern e sakt nse argumenti i par sht m i vogl
ose i barabart me argumentin i dyt
>
Kthen vlern e sakt nse argumenti i par sht m i madh
se argumenti i dyt
>=
Kthen vlern e sakt nse argumenti i par sht m i madh
ose i barabart mse argumentin i dyt
IS NULL Kthen vlern e sakt nse argumenti ka vlern NULL
IS NOT NULL
Kthen vlern e sakt nse argumenti sht i ndryshm nga
NULL
BETWEEN
Kthen vlern e sakt nse vlera e argumentit gjendet n
intervalin e parcaktuar nga fjala kye BETWEEN
NOT BETWEEN
Kthen vlern e sakt nse vlera e argumentit nuk gjendet n
intervalin e parcaktuar nga fjala kye BETWEEN
IN
Kthen vlern e sakt nse vlera e argumentit sht e
parcaktuar n fjaln kye IN
NOT IN
Kthen vlern e sakt nse vlera e argumentit nuk sht e
parcaktuar n fjaln kye NOT IN
LIKE
Kthen vlern e sakt nse vlera e argumentit sht e
prcaktuar nga LIKE
NOT LIKE
Kthen vlern e sakt nse vlera e argumentit nuk sht e
prcaktuar nga LIKE
REGEXP
Kthen vlern e sakt nse vlera e argumentit sht e
prcaktuar me REGEXP
NOT REGEXP
Kthen vlern e sakt nse vlera e argumentit nuk sht e
prcaktuar me NOT REGEXP

Si shihet ka nj numr t madh operatorsh t krahasimit dhe mnyra m e mir pr
kuptimin e tyre sht me an t shembujve:

SELECT ID, Numri, Tipi_i_kredise
FROM Kredite
WHERE Shuma=420
ORDER BY Tipi_i_kredise;

Si shihet operatori i krahasimit ( = ) prcakton se si rezultat jan vetm rreshtat te t cilt
vlera n fushn Shuma sht 420.
BAZAT E T DHNAVE


139

SELECT ID, Numri
FROM Kredite
WHERE Tipi_i_kredise < = > NULL

Nga ky shembull si rezultat kthehen vetm ata rreshta q n fushn Tipi_i_kredise kan
vlern NULL.

SELECT ID, Numri
FROM Kredite
WHERE Tipi_i_kredise IS NOT NULL;

Nga ky shembull si rezultat kthehen vetm ata rreshta q n fushn Tipi_i_kredise kan
vler t ndryshme nga NULL.

SELECT ID, Numri, Tipi_i_kredise
FROM Kredite
WHERE Shuma>1000
ORDER BY Tipi_i_kredise;

Si rezultat kthehen t gjitha t dhnat q n fushn Shuma kan vlern m t madhe se
1000. T renditura sipas Tipi_i_kredise.

SELECT ID, Numri, Tipi_i_kredise
FROM Kredite
WHERE Shuma BETWEEN 420 AND 1800
ORDER BY Tipi_i_kredise;

Si rezultat kthehen t gjitha t dhnat q vlera n fushn Shuma sht ndrmjet vlers 420
dhe 1800. T renditura sipas Tipi_i_kredise.

SELECT ID, Numri, Tipi_i_kredise
FROM Kredite
WHERE Shuma NOT BETWEEN 420 AND 1800
ORDER BY Tipi_i_kredise;

Si rezultat kthehen t gjitha t dhnat q vlera n fushn Shuma sht m e vogl se 420
dhe m e madhe se 1800. T renditura sipas Tipi_i_kredise.

SELECT Emri, Mbiemri, Adresa
FROM Klientet
WHERE QYTETI IN (Prishtin,Besian)
ORDER BY Emri;

Nga ky shembull fitojm si rezultat t dhnat q n fushn Qyteti prmbajn vlern
Prishtin ose Besian. Pra lista e vlerave e cila sht brenda kllapave t vogla t ndara
BAZAT E T DHNAVE


140
mes veti me presje. Kushti merr vlern e sakt vetm pr vlerat brenda kllapave t vogla,
t dhnat q prmbajn vlera tjera ose NULL n fushn Qyteti nuk do t paraqiten n
rezultat. Lista e vlerave Brenda kllapave t vogla n kt shembull jan t future n
thonjza sepse jan t tipit sting, n rastin kur vlerat jan t tipit numeric ather vlerat
nuk futen n thonjza.

SELECT Numri,Tipi_i_kredise
FROM Kredite
WHERE Shuma IN (420,7000,390);

Nj tjetr operator i krahasimit mjaft i dobishm sht operatori LIKE, i cili mundson
krkimin e vlerave t ngjashme me vlern e caktuar. Operatori LIKE prkrah dy karakter
gjithprfshirs:

% ( prqindja ) prfaqson zero ose nj numr t vlerave
_ ( underline ) prfaqson saktsisht nj vler.

SELECT Numri, Emri, Mbiemri
FROM Klientet
WHERE Qyteti LIKE P%
ORDER BY Emri;

Si rezultat paraqiten t gjitha t dhnat q n fushn Qyteti kan vlera q fillojn me
shkronjn P ( t madhe). T renditura sipas fushs Emri.

SELECT Numri, Emri, Mbiemri
FROM Klientet
WHERE Qyteti LIKE %P%
ORDER BY Emri;

Rezultati i ktij shembulli sht i njjt me at t shembullit t mparshm. Kjo sht
ngase % mund t prfaqsoj zero ose nj numr t vlerave.

SELECT Numri, Emri, Mbiemri
FROM Klientet
WHERE Qyteti LIKE _r%n
ORDER BY Emri;

Si rezultat fitojm t gjitha t dhnat q n fushn Qyteti kan vlerat: shkronja e dyt
duhet t jet r dhe duhet t prfundoj me shkronjn n. Sepse _ ( underline ) pfaqson
saktsisht nj vler, pra shkronja e par mund t jet fardo. Nuk duhet t harrojm q
vlerat n fusha jan CASE SENSITIV.

MySQL prkrah edhe nj operator q mundson gjetjen e vlerave t ngjashme me vlern
e caktuar. Operatori REGEXP mundson nj numr t ndryshm t opsioneve dhe
trajtash n mnyr t gjetjes s vlerave t ngjashme me vlern e caktuar. Tabela e
BAZAT E T DHNAVE


141
mposhtme liston nj numr t opsioneve q mund ti prdorim me operatorin REGEXP
n krijimin e SQL urdhrave.

Opsioni Prshkrimi Shembull Vlerat e pranueshme
< vlera >
Vlera e testuar duhet t prmbaj
vlern e caktuar
bo bota, boshe, karboni
< ^ >
Vlera e testuar nuk duhet t
prmbaj vlern e caktuar
^bo shuma, emri, mbiemri
.
Vlera e testuar mund t prmbaj
njrin nga karaktert
b. mbiemri, bora, baza
[<karaktert>]
Vlera e testuar prmban s paku
nj nga karaktert e listuar
brenda kllapave t mesme
[df]
dritarja, formulari,
mundsia
[<intervali>]
Vlera e testuar duhet t prmbaj
s paku njrin nga karaktert e
listuar n intervalin n kllapat e
msme
[1-5] 15,3,346,50,22,791
^
Vlera e testuar duhet t filloj
me vlern pas shenjs ^
^s start, sup, sqarim
$
Vlera e testuar duhet t
prfundoj me vlern para
shenjs $
ar$
sqaruar,
drejtuar,formular
*
Vlera e testuar duhet t prmbaj
zero ose m shum karakter pr
shenjn *
^s.*i$ sqarimi, startimi, syri

Operatori REGEXP mund t shihet si jo i prshtatshm por pas shembujve q do ti
punojm do t kemi t qart rndsin dhe dobin e ktij operatori.

SELECT Emri, Mbiemri, Adresa
FROM Klientet
WHERE Emri REGEXP ^[a-f]
ORDER BY Emri;

Shprehja Emri REGEXP ^[a-f] s pari prcakton fushn Emri, fjaln kye REGEXP dhe
vlern q duhet t plotsohet. Vlera sht brenda kuotave (thonjzave t njfishta) dhe
prmban shenjn ^ dhe intrevalin q prcakton shkronjat prej a deri n f. Pasi q sht
prdor shenja ^ ather vlera e ardhshme e prcaktuar duhet t paraqitet n fillim. N
rastin ton sht intervali brenda kllapave t mesme. Pra q kushti t merr vlern e sakt
pr nj t dhn duhet q n fushn Emri vlera t filloj me shkronjat nga a deri n f.

SELECT Emri, Mbiemri, Adresa
FROM Klientet
WHERE Emri REGEXP ^[mn].*[ai]$
ORDER BY Emri;
BAZAT E T DHNAVE


142
N kt urdhr srish REGEXP fillon me shenjn ^ duke treguar q vlera e ardhshme
duhet t paraqitet n fillim t vlers s fushs Emri. Por n kt rast nuk kemi interval por
dy karakter m dhe n. Si rezultat vlera n fushn Emri duhet t filloj me m ose n. Pastaj
sht pika ( . ) dhe ylli ( * ). Pika tregon se vetm nj karakter mund t prfshihet dhe ylli
tregon se mund t prfshihen zero ose m shum karakter t prsritur. Karaktert mund
t prsriten. Pastaj [ai]$ tregon se vlera duhet t prfundoj me karaktert a ose i.

Operatort logjik

Operatort logjik mundsojn testimin e vlefshmris s shprehjeve. Pr nj kusht ose
disa kushte q t jen t pranueshme duhet t marrin vler t sakt. Tabela e mposhtme
pshkruan operatort logjik n MySQL:

Operatori Prshkrimi
AND
Kthen vlern e sakt nse t dy argumentet kan vler t sakt. Poashtu
mund t shfrytzojm edhe && n vend t AND
OR
Kthen vlern e sakt nse njri nga argumentet sht i sakt. Mund t
shfrytzojm | | n vend t OR
XOR Kthen vlern e sakt nse saktsisht njri nga argumentet sht i sakt
NOT, !
Kthen vlern e sakt nse argumenti ose shprehja ka vler t pasakt. Mund
t shfrytzojm ! n vend t operatorit NOT

SELECT ID, Tipi_i_kredise
FROM Kredite
WHERE Tipi_i_kredise=Vetur AND Shuma>3500
ORDER BY Shuma;

Shprehja e par te fjala kye HERE prcakton q fusha Tipi_i_kredise duhet t ket
vlern Vetur, shprehja e dyt krkon q vlera n fushn Shuma t jet m e madhe se
3500. Kto dy shprehje jan t lidhura mes veti me operatorin logjik AND, d.m.th. si
rezultat t dy shprehjet duhet t marrin vler t sakt n mnyr q i tr kushti t merr
vler t sakt. Me fjal t tjera t gjitha t dhnat n rezultat te fusha Tipi_i_kredise do t
ken vlern Vetur dhe n fushn Shuma vlera do t jet m e madhe se 3500.



SELECT ID, Tipi_i_kredise
FROM Kredite
WHERE Tipi_i_kredise=Vetur OR Shuma>3500
ORDER BY Shuma;

Shprehja e par te fjala kye WHERE prcakton q fusha Tipi_i_kredise duhet t ket
vlern Vetur, shprehja e dyt krkon q vlera n fushn Shuma t jet m e madhe se
3500. Kto dy shprehje jan t lidhura mes veti me operatorin logjik OR, d.m.th. si
rezultat njra nga dy shprehjet duhet t merr vler t sakt n mnyr q i tr kushti t
BAZAT E T DHNAVE


143
merr vler t sakt. Me fjal t tjera t gjitha t dhnat n rezultat te fusha Tipi_i_kredise
do t ken vlern Vetur ose n fushn Shuma vlera do t jet m e madhe se 3500.

SELECT Emri, Mbiemri
FROM Klientet
WHERE Emri=Amir XOR Qyteti=Prishtin;

Shprehja e par te fjala kye HERE prcakton q fusha Emri duhet t ket vlern Amir,
shprehja e dyt krkon q vlera n fushn Qyteti t jet vlera Prishtin. Kto dy shprehje
jan t lidhura mes veti me operatorin logjik XOR, d.m.th. si rezultat saktsisht njra nga
dy shprehjet duhet t merr vler t sakt n mnyr q i tr kushti t merr vler t sakt.
Me fjal t tjera si rezultat do t paraqiten t gjitha t dhnat q n fushn Emri kan
vlern Amir dhe te fusha Qyteti kan vler t ndryshme nga Prishtin, ose te fusha Emri
kan vler t ndryshme nga vlera Amir dhe te fusha Qyteti kan vler Prishtin.

Mund t ndrtojm edhe shprehje m t komplikuara, ku prfshihen m shum se nj
operator logjik, sin shembullin e mposhtm:

SELECT Emri, Mbiemri
FROM Klientet
WHERE Emri=Lavdim AND ( Qyteti IS NULL OR NOT (Qyteti=Prishtin))
ORDER BY Emri;

Shprehja e par te fjala kye HERE prcakton q fusha Emri duhet t ket vlern
Lavdim, dy shprehjet tjera jan t lidhura me operatorin logjik OR. E para nga kto dy
shprehje krkon q fusha Qyteti t ket vler NULL, ndrsa shprehja tjetr krkon q
vlera n fushn Qyteti t mos jet Prishtin. Pasi q kto dy shprehje jan t lidhura me
operatorin logjik OR ather q t kthehet vler e sakt duhet q njra nga shprehjet t
merr vler t sakt. Ndrsa q e tr shprehja t merr vlern e sakt duhet q vlera n
fushn Emri t jet Lavdim.

Opertaort logjik mund ti prdorim edhe n urdhrat UPDATE dhe DELETE pr
definimin e rreshtave q do t modifikohen.

.
Operatort e sortimit

Tip tjetr i operatorve jan operatorte sortimit , t cilt prdoren pr definimin e kushtit
pr krahasim me vlerat npr fusha. N tabeln e mposhtme jan operatort logjik:

Operatori Prshkrimi
BINARY
Konverton nj string n string binar ashtu q sortimi i t
dhnave do t jet CASE SENSITIV
COLLATE
Prcakton nj sistemim t veant q prdoret pr
krahasimin dhe sortimin e t dhnave

BAZAT E T DHNAVE


144
Mnyra m e mir p t kuptuar secilin nga kta operator sht prmes shembujve:

CREATE TABLE Produkti
(
ProdID SMALLINT NOT NULL PRIMARY KEY,
ProdColor VARCHAR(15) NOT NULL
);

INSERT INTO Produkti
VALUES (101, Red), (102, red), (103, RED), (104, REd), (105, reD),
(106, Blue), (107, blue), (108, BLUE), (109, BLue), (110, blUE);

Para se t shohim operatorin BINARY shohim nj shembull:

SELECT * FROM Produkti
WHERE ProdColor=red;

Do t kthehen si rezultat t gjitha t dhnat q n fushn ProdColor kan vlern red

+--------+-------------+
| ProdID | ProdColor |
+--------+-------------+
| 101 | Red |
| 102 | red |
| 103 | RED |
| 104 | Red |
| 105 | reD |
+--------+-------------+
5 ros in set (0.00 sec)

SELECT * FROM Produkti
HERE ProdColor=BINARY red;

+--------+-------------+
| ProdID | ProdColor |
+--------+-------------+
| 102 | red |
+--------+-------------+
1 ro in set (0.01 sec)

Si shihet rezultati prfshin n fushn ProdColor saktsisht vlern red, pra krkimi sht
br CASE SENSITIV.

SELECT * FROM ProductColors
HERE ProdColor COLLATE latin1_german2_ci = red;

Nga shembulli m lart shohim se sht prdor sistemi i krahasimit latin1_german2_ci.
BAZAT E T DHNAVE


145
Lidhja e tabelave n urdhrin SELECT

M hert msuam prdorimin e urdhrit SELECT pr shikimin e t dhnave nga ndonj
baz e t dhnave. Ku kemi ekstraktuar rreshta dhe fusha t caktuara, t grupuara sipas
nevojs. Kto t dhna i kemi nxjerr nga nj tabel, por MySQL mundson shikimin e t
dhnave nga shum tabela dhe kthen si rezultat t dhna sikur nga nj tabel. sht e
vrtet ne mund t qasemi shum tabelave edhe me urdhrat UPDATE dhe DELETE. Do
t msojm si t krijojm lidhjet ndrmjet dy apo m shum tabelave dhe shum nga
elementet q prdoren te urdhri SELECT jan t ngjashme me ato t urdhrat UPDATE
dhe DELETE.
Me krijimin e nj urdhri SELECT dshirojm q rezultati t mirret nga t dhnat q
ruhen n tabela t ndryshme. N rezultat nuk duhet t ket t dhna q paraqiten
arbitarisht (pa arsye), me fjal t tjer t dhnat duhen t paraqiten sikur t ishin nga nj
tabel. T dhnat duhet t jen t harmonizuara dhe logjike pavarsisht faktit se ato jan
nga tabela t ndryshme.
Pr t arritur kt harmonizim MySQL mundson lidhjet te urdhri SELECT. Ja edhe
sintaksa:

SELECT
[<opsioni select> [<opsioni select>...]]
{* | <lista select>}
[
FROM {<tabela referuese> | <definimi i lidhjes>}
[WHERE <shprehje> [{<operator> <shprehje>}...]]
[GROUP BY <definimi i group by>]
[HAVING <shprehje> [{<operator> <shprehje>}...]]
[ORDER BY <definimi i order by>]
[LIMIT [<fillimi>,] <numri i rreshtave>]
]

<definimi i lidhjes>::=
{<tabela referuese>, <tabela referuese> [{, <tabela referuese>}...]}
| {<tabela referuese> [INNER | CROSS ] JOIN <tabela referuese> [<kushtet e
lidhjes>]}
| {< tabela referuese > STRAIGHT_JOIN < tabela referuese >}
| {< tabela referuese > LEFT [OUTER] JOIN < tabela referuese > [<kushtet e
lidhjes >]}
| {<tabela referuese> RIGHT [OUTER] JOIN < tabela referuese > [<kushtet e
lidhjes >]}
| {<tabela referuese> NATURAL [{LEFT | RIGHT} [OUTER]] JOIN<tabela
referuese>}


< tabela referuese >::=
<emri i tabels> [[AS] <pseudonimi>]
[{USE | IGNORE | FORCE} INDEX <emri i indeksit> [{, <emri i indeksit>}...]]
BAZAT E T DHNAVE


146
<kushtet e lidhjes>::=
ON <shprehje> [{<operator> <shprehje>}...]
| USING (<fush> [{, <fush>}...])


Si mund t shihet nga sintaksa fjala kye FROM sht:

FROM {<tabela referuese> | <definimi i lidhjes>}

Ndrsa nga sintaksa e urdhrit SELECT m hert te fjala kye FROM ka qen m
ndryshe:

FROM <tabela referuese> [ { , <tabela referuese> } ]

Kjo sht br pr paraqitje m t shkurtr t sintaks e lidhjes s s urdhrit SELECT. Pra
tani fjala kye FROM prmban edhe definimin. Definimi i lidhjes i referohet tipeve t
ndryshme t lidhjes, si mposht:

<definimi i lidhjes>::=
{<tabela referuese>, <tabela referuese> [{, <tabela referuese>}...]}
| {<tabela referuese> [INNER | CROSS ] JOIN <tabela referuese> [<kushtet e
lidhjes>]}
| {< tabela referuese > STRAIGHT_JOIN < tabela referuese >}
| {< tabela referuese > LEFT [OUTER] JOIN < tabela referuese > [<kushtet e
lidhjes >]}
| {<tabela referuese> RIGHT [OUTER] JOIN < tabela referuese > [<kushtet e
lidhjes >]}
| {<tabela referuese> NATURAL [{LEFT | RIGHT} [OUTER]] JOIN<tabela
referuese>}

E para nga kto lidhje sht lidhja themelore ( bazike) e cila prbhet vetm nga tabelat
referuese t ndara mes veti me presje. Lidhjet tjera jan INNER, CROSS,
STRAIGHT_JOIN, LEFT, RIGHT dhe NATURAL.

Krijimi i lidhjes themelore

N disa nga shembujt deri tani kemi par prdorimin e urdhrit SELECT ku te tabela
referuese kemi zgjedhur vetm nj tabel. Te lidhja themelore tani n vend t nj tabele te
fjala kye FROM prdorim m shum se nj tabel (si shihet edhe nga sintaksa).
Kt m mir do ta kuptojm me nj shembull:

SELECT Emri, Mbiemri, Shuma
FROM Klientet, Kredite;
Ky urdhr sht i ngjashm me urdhrat SELECT t msuar m hert, dallimi sht te
fjala kye FROM e cila prmban dy tabela: Klientet dhe Kredite. Te urdhi SELECT
kemi zgjedh dy fushat e para nga tabela Klientet dhe fushn Shuma nga tabela Kredite.
BAZAT E T DHNAVE


147
Nga ky shembull lidhja sht definuar n dy tabela por vet lidhja nuk sht e kufizuar.
Fushat e zgjedhura n fjaln kye SELECT nuk kan ndonj efekt se si do t definohet
vet lidhja. Kur nj lidhje nuk sht e kufizuar n do mnyr kthen si rezultat do rresht
t nj tabele me do rresht t tabels tjetr. Ky tip i rezultatit quhet Prodhimi Kartezian.
Nga ky shembull tabela e par ka 7 t dhna, ndrsa tabela e dyt ka 9 t dhna, dhe si
rezultat paraqiten 7x9 t dhna pra 63 t dhna. Shfrytzimi i lidhjes pr kthimin e
rezultatit si prodhim kartezian nuk sht e dobishme. Kjo sht shkaku se nse bjm
lidhjen e tri tabelave q kan nga 100 t dhna ather prodhimi kartezian i tyre do t jet
nj million t dhna. sht e dobishme q me prdorimin e lidhjes themelore t shtohen
kushtet e nevojshme n fjaln kye HERE n mnyr q t kufizohet lidhja. P.SH.
urdhri i mposhtm sht i ngjashm me at m par, me prjashtim t fjals kye
WHERE:

SELECT Emri, Mbiemri, Shuma
FROM Klientet, Kredite
WHERE Klientet.Numri=Kredite.Numri;

Tani me fjaln WHERE kemi vn nj kusht q definon kufizimin e lidhjes. Pra t dnat
q do t paraqiten si rezultat i ekzekutimit t ktij urdhri jan : t gjitha t dhnat ku
vlera n fushn Numri sht e barabart n t dy tabelat. N shembullin ton do t
kthehen 9 t dhna. Mund t prdorim edhe pseudonimet si mposht:

SELECT Emri, Mbiemri, Shuma
FROM Klientet AS A, Kredite AS B
WHERE A.Numri=B.Numri;

Te fjala kye HERE mund t vejm edhe kushte tjera, operator logjik, shprehje q
kufizojn lidhjen. P.SH. urdhri i mposhtm kthen si rezultat vetm ato t dhna q
n fushn Shuma kan vler m t madhe se 1400.

SELECT Emri, Mbiemri, Shuma
FROM Klientet, Kredite
WHERE Klientet.Numri=Kredite.Numri AND Shuma >1400;

Tani si rezultat kthehen vetm 4 t dhna q plotsojn kushtet (Shembujt gjenden n
ftp://comp-253 BAZAT E T DHNAVE).









BAZAT E T DHNAVE


148
Lidhja INNER dhe CROSS

Kur sht fjala te lidhjet MySQL sht i pajisur me mundsi t shumta q japin t njjtin
rezultat. Pr shembull mund t krijojm INNER dhe CROSS lidhje q japin t njjtin
rezultat si lidhja themelore. Shohim sintaksn pr INNER dhe CROSS lidhjen:

{<tabela referuese> [INNER | CROSS ] JOIN <tabela referuese> [<kushtet e lidhjes>]}

<kushtet e lidhjes>::=
ON <shprehje> [{<operator> <shprehje>}...]
| USING (<fush> [{, <fush>}...])

Si shihet nga sintaksa duhet t shkruajm tabeln referuese pastaj opsionet INNER ose
CROSS pastaj fjaln kye JOIN dhe tabeln e dyt referuese dhe n fund opsioni ndonj
kusht. Ky kusht prmban fjalt kye ON dhe USING. Me an t ktyre fjave kye
defnojm kushtin. Kushti te lidhja themelore definohej me fjaln kye HERE, ndrsa te
INNER dhe CROSS lidhjet definohet me an t < kushtet e lidhjes >.
N prgjithsi caktimi i fjalve INNER dhe CROSS jep rezultat t njjt sikur t mos
ishin shkruar fare. Kur nuk sht shkruar as INNER dhe CROSS ather nnkuptohet t
jet lidhje CROSS. Nse nuk vejm <kushtet e lidhjes> ather rezultati i fituar do t jet
i njjt me at t lidhjes themelore, pra prodhim kartezian. Ja edhe disa shembuj:

SELECT Emri, Mbiemri, Shuma FROM Klientet, Kredite;

SELECT Emri, Mbiemri, Shuma FROM Klientet JOIN Kredite;

SELECT Emri, Mbiemri, Shuma FROM Klientet INNER JOIN Kredite;

SELECT Emri, Mbiemri, Shuma FROM Klientet CROSS JOIN Kredite;

Secili urdhr kthen si rezultat 63 t dhna (rreshta), pra si prodhimi kartezian.
Pr kufizimin e lidhjes INNER dhe CROSS e bjm me an t fjalve ON ose USING. Ja
edhe nj shembull me fjaln ON:

SELECT Emri, Mbiemri, Shuma
FROM Klientet AS A JOIN Kredite AS B
ON A.Numri=B.Numri;
Pra tani me fjaln FROM definuam lidhjen. M mir s ndarjen e tabelave t lidhura me
presje prdorm fjaln kye JOIN. Pastaj me an t fjals ON caktuam se vlerat n fushat
Numri te t dy tabelat duhet t jet i barabart n mnyr q t paraqiten n rezultat. Me
definimin e kushtit te fjala kye ON rezultati nga shembulli kufizohet n 9 t dhna.
Mund t fitojm t njjtin rezultat edhe me fjaln kye USING pr kufizimin e lidhjes.

SELECT Emri, Mbiemri, Shuma
FROM Klientet AS A JOIN Kredite AS B
USING(Numri);
BAZAT E T DHNAVE


149
Si mund t shihet te fjala kye USING sht e nevojshme caktimi i fushave t lidhura (
n kllapa t vogla). Kjo mund t shfrytzohet vetm kur fushat e lidhura n t dy tabelat
kan emr t njjt. Nse bjm lidhjen n m shum se nj fush ather ato shkruhen t
ndara me presje mes veti.
Njsoj sit e lidhja themelore edhe ktu mund t kufizojm lidhjen me an t kushteve
WHERE si mposht:

SELECT Emri, Mbiemri, Shuma
FROM Klientet JOIN Kredite
ON Klientet.Numri=Kredite.Numri
WHERE Shuma >1400;

Kur t bjm definimin e lidhjeve INNER dhe CROSS duhet t prcaktojm fushat e
lidhura duke shfrytzuar fjalt kye ON ose USING dhe kushte tjera te fjala kye
WHERE. Poashtu mund t vejm kushte te WHERE sit e lidhja themelore duke mos
shfrytzuar fjalt kye ON ose USING. Por urdhrat jan m leht t lexueshm nse
prdorim fjalt kye ON ose USING.

Lidhja STRAIGHT_JOIN

Nj tip tjetr i lidhjes sht lidhja direkte ( straight join) e cila sht e ngjashme me
lidhjen themelore n disa aspekte. Dallimi kryesor sht se lidhja direkte mundson
zgjedhjen e optimizuesit t lidhjes i cili s pari bn leximin e tabels n t majt e pastaj
asaj n t djatht (Optimizuesi i lidhjes sht nj komponent e MySQL serverit i cili
mundohet t gjej mnyrn m t mir pr procesimin e lidhjes). Pra lidhja direkte
shfrytzohet ather kur mendojm se optimizuesi i lidhjes nuk sht duke br mir
procesimin e e urdhrit SELECT. N t shumtn e rasteve duhet t mbshtetemi te
optimizuesi i lidhjes.
Pr krijimin e nj lidhje direkte shfrytzojm sintaksn:

<tabela referuese> STRAIGHT_JOIN <tabela referuese>

Pra nga sintaksa shihet q s pari duhet t caktohet tabela referuese e prcjellur nga fjala
kye STRAIGHT_JOIN pastaj nga nj tabel tjetr referuese.
Shembull:

SELECT Emri, Mbiemri, Shuma
FROM Klientet STRAIGHT_JOIN Kredite
WHERE Klientet.Numri=Kredite.Numri AND Shuma>1400;

Pas ekzekutimit t ktij urdhri marrim rezultat t njjt sit e lidhjet e tjera. Nj gj
vrehet, te lidhja direkte sikur edhe te lidhja themelore lidhja sht kufizuar me fjaln
kye WHERE e jo me fjalt kye ON ose USING. N fakt i vetmi dallim ndrmjet lidhjes
direkte me at themelore sht n sintaks, te lidhja direkte shfrytzohet fjala kye
STRAIGHT_JOIN pr ndarjen e tabelave referuese ndrsa te lidhja themelore kjo gj
bhet me an t presjes.
BAZAT E T DHNAVE


150
MySQL ofron edhe nj metod pr krijimin e lidhjes direkte. N vend t prdorimit t
lidhjes direkte n fjaln kye FROM prdorim sintaksn e lidhjes direkte dhe caktojm
opsionin STRAIGHT_JOIN te fjala kye SELECT sin shembullin e mposhtm:

SELECT STRAIGHT_JOIN Emri, Mbiemri, Shuma
FROM Klientet, Kredite
WHERE Klientet.Numri=Kredite.Numri AND Shuma>1400;

Shihet se te fjala kye FROM tabelat referuese jan t ndara me presje q sht tipike pr
lidhjen themelore. Por urdhri SELECT prmban opsionin STRAIGHT_JOIN. Ekzekutimi
i ktij urdhri jep rezultat t njjt me at m par.


Krijimi i lidhjeve t jashtme (Outer joins)

Prveq lidhjeve q kthehin si rezultat prodhimin kartezian, lidhjet tjera q i pam deri tani
ishin ato q kthehin si rezultat vetm t dhnat q prmbanin vlera t njjta n fusha t
caktuara. Supozojm q dshirojm t shohim t dhna q nuk i plotsojn kto kushte,
por jo q rezultati t mos jet numr i madh i rreshtave. P.SH. m hert shikuam t dhna
nga tabela Klientt dhe tabela Kredit, ku kemi krkuar q si rezultat t paraqiten vetm
t dhnat q plotsojn kushtin q: fusha Numri n tabeln Klientet dhe fusha Numri n
tabeln Kredit t jen t barabart. Por nse tabela Klientt do t prmbante ndonj
klient q nuk ka marr asnj kredi.
MySQL ofron mundsin e shikimit t ktyre klientve duke prdor lidhjet e jashtme
(outer joins). Mund t krijojm dy tipe t lidhjeve t jashtme: lidhja e majt dhe lidhja e
djatht. Lidhja e majt nxjerr t gjitha t dhnat nga tabela e majt, ndrsa lidhja e djatht
nxjerr t gjitha t dhnat nga tabela e djatht. Figura e mposhtme tregon diagramin e
Venn-it pr lidhjen e majt. Rrethi n t majt sht tabela Klientt dhe rrethi n t
djatht paraqet tabeln Kredit. Diagrami i Venn-it ilustron lidhjen e ktyre dy tabelave.
Vlerat n t majt jan nga tabela Klientt ndrsa vlerat n t djatht jan nga tabela
Kredit.N lidhjen [INNER|CROSS] JOIN si rezultat jan paraqitur vetm t dhnat q
kan plotsuar kushtin Klientet.Numri=Kredite.Numri, kto t dhna jan paraqitur n
prerjen e dy rrathve. Si mund t shihet do klienti i korrespondon nj kredi ose m
shum kredi. Por n figur shihet se klienti Bujar Krasniqi nuk sht n rezultat pr shkak
t lidhjes JOIN. Pasi q kjo sht lidhje e jashtme e majt (left outer join) klienti Bujar
Krasniqi do t jet n rezultat por vlera q korrespondon sht NULL.





BAZAT E T DHNAVE


151


Lidhja e jashtme e majt (Left outer join)

Sintaksa pr lidhjen e jashtme t majt sht e njjt me at t INNER dhe CROSS JOIN,
vetm se duhet t prfshihet fjala kye LEFT, si sht treguar n sintaksn e mposhtme:

<tabela referuese> LEFT [OUTER] JOIN <tabela referuese> [<kushtet e lidhjes>]

<kushtet e lidhjes>::=
ON <shprehje> [{<operator> <shprehje>}...]
| USING (<fush> [{, <fush>}...])

Pra s pari specifikojm tabeln referuese t prcjellur nga fjala kye LEFT dhe opsioni
OUTER pastaj fjala kye JOIN. Kjo pastaj prcjellet nga nj tabel tjetr referuese dhe
kushtet e lidhjes, t cilat mund t jen fjalt kye ON dhe USING.
Shembull: Urdhri i mposhtm definon lidhjen e jashtme t majt n tabelat Klientt dhe
Kredit.


BAZAT E T DHNAVE


152
SELECT Emri, Mbiemri, Tipi_i_Kredise
FROM Klientet LEFT JOIN Kredite
ON Klientet.Numri=Kredite.Numri
ORDER BY Emri;

Mund t shihet q fjala kye FROM s pari i referohet tabels Klientet dhe pastaj i
referohet tabels Kredite. Si rezultat paraqiten t gjitha t dhnat nga tabela Klientet
(tabela e majt) dhe vetm t dhnat nga tabela Kredite (tabela e djatht) q e plotsojn
kushtin e lidhjes te fjala kye ON. Sikur n tabeln e mposhtme



Nse i referohemi rreshtit t pest shohim se sht kthyer vlera NULL pr fushn
Tipi_i_kredise. sht kthyer vlera NULL sepse klienti Bujar Krasniqi nuk ka marr asnj
kredi. Pra nse vlera n tabeln e majt nuk ka ndonj vler lidhse n tabeln e djatht
ather i ndahet vlera NULL vlers s tabels s djatht.
Mund t fitojm rezultat t njjt edhe me fjaln kye USING, si mposht:

SELECT Emri, Mbiemri, Tipi_i_Kredise
FROM Klientet LEFT JOIN Kredite
USING(Numri)
ORDER BY Emri;

Poashtu mund t bjm lidhje t jashtme t majt edhe pr m shum se dy tabela.
Shembull:

SELECT BookTitle, Copyright, AuthFN, AuthMN, AuthLN
FROM Books AS b LEFT JOIN AuthorBook AS ab ON b.BookID=ab.BookID
LEFT JOIN Authors AS a ON ab.AuthID=a.AuthID
ORDER BY BookTitle;


BAZAT E T DHNAVE


153
Lidhja e jashtme e djatht (Right outer join)

Lidhja e jashtme e djatht sht e ngjashme me lidhjen e jashtme t djatht, vetm se
dallimi qndron q t dhnat kthehen nga tabela e djatht. Ja edhe sintaksa q tregon
definimin e lidhjes s djatht t jashtme:

<tabela referuese> RIGHT [OUTER] JOIN <tabela referuese> [<kushtet e lidhjes>]

<kushtet e lidhjes>::=
ON <shprehje> [{<operator> <shprehje>}...]
| USING (<fush> [{, <fush>}...])

Si mund t shihet sintaksa sht gati e njjt me at t lidhjes s majt, prveq fjals
kye RIGHT. Tani le t shohim nj shembull:

Tab1



Tab2



Si fitohet ky rezultat (Tab3) nga tabelat Tab1 dhe Tab2:

Tab3


BAZAT E T DHNAVE


154
SELECT Tab2.Numri, Tab2.Profesioni, Tab2.Institucioni, Tab1.Emri, Tab1.Qyteti
FROM Tab1 RIGHT JOIN Tab2
ON Tab1.Numri=Tab2.Numri;

N shembullin e msiprm do t fitohet rezultat i njjt edhe n rastin e lidhjes s jashtme
t majt vetm se tabela e par referuese duhet t jet Tab2 pastaj tabela e dyt referuese
do t jet Tab1.

Tab2 LEFT JOIN Tab1

Si fitohet rezultati (Tab4) i mposhtm nga tabelat Tab1 dhe Tab2

Tab4




SELECT Tab2.Numri, Tab2.Profesioni, Tab2.Institucioni, Tab1.Emri, Tab1.Qyteti
FROM Tab1 LEFT JOIN Tab2
ON Tab1.Numri=Tab2.Numri;

Edhe n kt shembull si m lart fitohet rezultat i njjt edhe me lidhjen e jashtme t
djatht:

Tab2 RIGHT Tab1

Krijimi i lidhjes NATURAL

Nj lidhje tjetr q mund t prcaktohen n urdhrin SELECT sht lidhja NATURAL.
Kjo lidhje mund t prcaktohet si lidhje INNER ose CROSS, ose lidhje e jashtme e
majt, ose lidhje e jashtme e djatht. Sintaksa n vijim tregon definimin e lidhjes
NATURAL:

<tabela referuese> NATURAL [{LEFT | RIGHT} [OUTER]] JOIN <tabela referuese>

Nga sintaksa shohim se nuk bhet definimi i kushteve t lidhjes. Lidhja NATURAL
automatikisht bn lidhjen e tabelave prmes fushave me emr t njjt. P.SH. nse bjm
lidhjen e tabels Klientt dhe tabels Kredit, ather lidhja NATURAL do t definoj
automatikisht lidhjen me fushat Numri t t dy tabelave.
BAZAT E T DHNAVE


155
Pr krijimin e nj lidhje NATURAL duhet t shkruhet s pari tabela referuese pastaj fjala
kye NATURAL JOIN dhe tabela e dyt referuese. Nse i fusim vetm kto elemente do
t krijojm lidhje [ INNER | CROSS ] JOIN. Nse prcaktojm fjalt kye LEFT ose
LEFT OUTER ather jemi duke krijuar lidhje t majt, ndrsa nse prcaktojm fjalt
kye RIGHT ose RIGHT OUTER jemi duke krijuar lidhje t djatht.
Shembull:

Me ekzekutimin e ktij urdhri

SELECT Emri, Mbiemri, Tipi_i_kredise
FROM Klientet NATURAL JOIN Kredite;

do t fitojm rezultat t njjt sikurse me lidhjen [ INNER | CROSS ] JOIN, pra urdhri i
msiprm jep rezultat t njjt sikur urdhri:

SELECT Emri, Mbiemri, Tipi_i_kredise
FROM Klientet INNER JOIN Kredite
ON Klientet.Numri=Kredite.Numri;

Shihet q te urdhri NATURAL JOIN nuk sht br definimi i kushteve t lidhjes sit e
lidhja e INNER JOIN, nuk ka fjal kye ON ose USING. Pra lidhja NATURAL
automatikisht e bn lidhjen ndrmjet tabelave n fushat me emr t njjt. Nse
dshirojm lidhje t majt t jashtme vetm duhet t prcaktohet fjala LEFT ose LEFT
OUTER:

SELECT Emri, Mbiemri, Tipi_i_kredise
FROM Klientet NATURAL LEFT JOIN Kredite;

Nse dshirojm lidhje t djatht t jashtme vetm duhet t prcaktohet fjala RIGHT ose
RIGHT OUTER:

SELECT Emri, Mbiemri, Tipi_i_kredise
FROM Klientet NATURAL RIGHT JOIN Kredite;

Rezultatet jan t njjt sikur te shembujt te lidhjet LEFT dhe RIGHT.
Por nse n dy tabela q dshirojm t bjm lidhje NATURAL dhe n ato dy tabela nuk
ekzistojn fusha me emr t njjt ather si rezultat do t fitojm prodhimin kartezian t
t dhnave t atyre tabelave.








BAZAT E T DHNAVE


156
Bashkimi i tabelave n urdhrin SELECT

Nse dshirojm t bashkojm rezultatet q dalin nga urdhrat SELECT n nj rezultat
ather nj mnyr e leht pr t br kt sht me an t operatorit UNION, ja edhe
sintaksa:

<urdhri select> UNION <urdhri select>

Me bashkimin e dy urdhrave n kt mnyr kthen si rezultat numrin e njjt t fushave
q i korrespondojn secilit urdhr dhe tipin e t dhnave t njjt. P.SH. nse me urdhrin
e par marrim si rezultat dy fusha Fusha1 dhe Fusha2. Ku Fusha1 e ka tipin e t dhnave
INT ndrsa Fusha2 tipin e t dhnave CHAR. Ather si rezultat duhet q urdhri i dyt t
kthej dy fusha me tipe t t dhnav INT dhe CHAR prkatsisht.

SELECT Emri, Mbiemri FROM Klientet
UNION
SELECT Numri, Tipi_i_kredise FROM Kredite;

Funksionet

M hert msuam pr shprehjet n SQL urdhrat. Q shprehjet t jen m t fuqishme dhe
specifike kemi prdor elemente si funksionet. Secili funksion kryen nj pun t caktuar
dhe kthen nj vler q sht rezultat i puns s caktuar. Pr shum funksione duhet t
japim m shum se nj argument q i ndahen si vler do parametri q prdoret n
funksion pr kryerjen e nj pune t caktuar. Kto pun mund t jen kalkulime t t
dhnave numerike, manipulimi it dhnave string, manipulime me data e shum
operacione tjera. Funksionet ndahen n funksione pr dat dhe koh, funksione pr
stringje, funksione numerike dhe funksionet aggregate.

Funksionet pr dat dhe koh

Funksionet pr dat prdoren kur kemi t bjm me dat dhe koh, si kthimin e nj date
t caktuar.

CURRENT_DATE( )

Kthen si rezultat datn aktuale n formn si string YYYY-MM-DD ose si vler numerike
YYYYMMDD.
Shembull:

mysql> SELECT CURRENT_DATE();
+----------------+
| CURRENT_DATE() |
+----------------+
| 2007-01-11 |
+----------------+
BAZAT E T DHNAVE


157
mysql> SELECT CURRENT_DATE()+1;
+------------------+
| CURRENT_DATE()+1 |
+------------------+
| 20070112 |
+------------------+

CURRENT_TIME( )

Kthen si rezultat kohn aktuale, si string hh:mm:ss ose si numr hhmmss.

mysql> SELECT CURRENT_TIME();
+----------------+
| CURRENT_TIME() |
+----------------+
| 23:53:15 |
+----------------+
mysql> SELECT CURRENT_TIME() + 1;
+--------------------+
| CURRENT_TIME() + 1 |
+--------------------+
| 235434 |
+--------------------+

DAYNAME( )

Kthen si rezultat emrin e dits n datn e caktuar.

mysql> SELECT DAYNAME('2007-01-11');
+-----------------------+
| DAYNAME('2007-01-11') |
+-----------------------+
| Thursday |
+-----------------------+
Pastaj jan funksionet DAYOFMONTH( ), DAYOFWEEK( ) dhe DAYOFYEAR( ) q
kthejn si rezultat ditn e muajit, ditn e javs dhe ditn e vitit t dats s caktuar
prkatsisht.

Funksioni Prshkrimi Shembull Rezultati
HOUR( )
Kthen orn pr
kohn e caktuar
SELECT HOUR(06:59:03); 6
MINUTE ( )
Kthen minutat pr
kohn e caktuar
SELECT MINUTE(00:01:03); 1
MONTH( )
Kthen muajin pr
datn e caktuar
SELECT MONTH(2007-12-21); 12
BAZAT E T DHNAVE


158
MONTHNAME( )
Kthen emrin e
muajit pr datn e
caktuar
SELECT MONTHNAME(2006-12-
21);
December
NOW( )
Kthen datn dhe
kohn aktuale
SELECT NOW( )
2007-01-
11
12:00:00

Kto jan disa nga funksionet e shumta pr dat dhe koh.

Funksionet pr string

T gjitha funksionet string marrin si argument string dhe kthejn si rezultat nj string.

ASCII( )

Kthen si rezultat vlern ASCII t karakterit t par nga e majta, kthen 0 kur stringu sht i
zbrazt dhe NULL kur stringu ka vlern NULL.

mysql> SELECT ASCII('a');
+------------+
| ASCII('a') |
+------------+
| 97 |
+------------+
mysql> SELECT ASCII('aza');
+-------------+
| ASCII('az') |
+-------------+
| 97 |
+-------------+
mysql> SELECT ASCII('');
+------------+
| ASCII('') |
+------------+
| 0 |
+------------+
mysql> SELECT ASCII(NULL);
+------------+
| ASCII('a') |
+------------+
| NULL|
+------------+




BAZAT E T DHNAVE


159
BIN( )
Kthen si rezultat vlern binare pr ndonj numr (BIGINT), kthen vlern 0 nse numri
nuk mund t konvertohet (funksioni do t konvertoj derisa mundet nga e majta) dhe
NULL nse sht NULL.
mysql> SELECT BIN(15);
+---------+
| BIN(15) |
+---------+
| 1111 |
+---------+
mysql> SELECT BIN('8');
+----------+
| BIN('8') |
+----------+
| 1000 |
+----------+
mysql> SELECT BIN('2w');
+-----------+
| BIN('2w') |
+-----------+
| 10 |
+-----------+
mysql> SELECT BIN('2');
+-----------+
| BIN('w2') |
+-----------+
| 0 |
+-----------+
Ky funksion sht ekuivalent me funksionin CONV(numri,10,2).

CHAR( )
Kthen si rezultat karakteret sikur secili numr t jet i konvertuar nga ASCII kodi.
Numrat decimal rrumbullaksohen me vlern m t afrt.

mysql> SELECT CHAR(97,101,105,111,117);
+--------------------------+
| CHAR(97,101,105,111,117) |
+--------------------------+
| aeiou |
+--------------------------+
mysql> SELECT CHAR(97.6,101,105,111,117);
+----------------------------+
| CHAR(0.97,101,105,111,117) |
+----------------------------+
| beiou |
+----------------------------+

BAZAT E T DHNAVE


160
CONCAT( )

Lidh dy argumentet stringje dhe kthen si rezultat, NULL nse argumenti sht NULL.
Argumentet q nuk jan stringje kthehen n stringje.

mysql> SELECT CONCAT('a','b');
+-----------------+
| CONCAT('a','b') |
+-----------------+
| ab |
+-----------------+
mysql> SELECT CONCAT('a',12);
+----------------+
| CONCAT('a',12) |
+----------------+
| a12 |
+----------------+

CONCAT_WS( )

sht e ngjashme me CONCAT( ) vetm se argumenti i par sht separator q vhet n
mes secilit argument.

mysql> SELECT CONCAT_WS('-','a','b');
+------------------------+
| CONCAT_S('-','a','b') |
+------------------------+
| a-b |
+------------------------+
mysql> SELECT CONCAT_WS('-','a','b',c);
+----------------------------+
| CONCAT_S('-','a','b',c) |
+----------------------------+
| a-b-c |
+----------------------------+

CONV( )

sht funksion q bn konvertimin e numrave nga nj baz te tjetra.
CONV(numri, prej cils baz, te cila baz)

CONV(10,10,2) d.m.th Numrin 10 konverto nga baza 10 n bazn 2.
CONV(3f,16,10)d.m.th. konverto numrin 3f nga baza heksadecimale n at dhjetshe.
CONV(a,16,2) d,m,th. Konverto numrin a nga baza 16 n bazn 2 etj.



BAZAT E T DHNAVE


161
HEX( )
Kthen vlern heksadecimale pr nj numr, kthen vlern 0 nse nuk mund t konvertoj
numrin dhe NULL pr vlern NULL.

mysql> SELECT HEX(13);
+---------+
| HEX(13) |
+---------+
| D |
+---------+

LENGTH( )

Kthen gjatsin n karakter t stringut.

mysql> SELECT LENGTH('MySQL');
+-----------------+
| LENGTH('MySQL') |
+-----------------+
| 5 |
+-----------------+
mysql> SELECT LENGTH(99);
+------------+
| LENGTH(99) |
+------------+
| 2 |
+------------+

LOER( )
Kthen si rezultat t gjith karaktert n shkronja t vogla.

mysql> SELECT LOWER('AbC');
+--------------+
| LOER('AbC') |
+--------------+
| abc |
+--------------+

UPPER( )
Kthen si rezultat t gjith karaktert n shkronja t mdha.
mysql> SELECT UPPER('aBc');
+--------------+
| UPPER('aBc') |
+--------------+
| ABC |
+--------------+
Kto jan disa nga funksionet pr stringje.
BAZAT E T DHNAVE


162
Funksionet numerike

Funksionet numerike prdoren pr kalkulime, ku si argument marrin m s shpeshti
numr. N rast t ndonj gabimi ato lajmrojn pr gabim. Duhet t kemi kujdes q t
mos e kalojm intervalin e tipit t t dhnave. Shumica e funksioneve punojn me tipin e
t dhnave BIGINT (2
63
SIGNED ose 2
64
UNSIGNED).

ABS( )

Kthen vlern absolute t nj numri.

mysql> SELECT ABS(24-26);
+------------+
| ABS(24-26) |
+------------+
| 2 |
+------------+

DEGREES( )

Konverton radiant n shkall.

mysql> SELECT DEGREES(2);
+-----------------+
| DEGREES(2) |
+-----------------+
| 114.59155902616 |
+-----------------+
mysql> SELECT DEGREES(PI()/2);
+-----------------+
| DEGREES(PI()/2) |
+-----------------+
| 90 |
+-----------------+

EXP( )

Kthen si rezultat numrin e t ngritur n fuqi me numrin e caktuar.

mysql> SELECT EXP(1);
+----------+
| EXP(1) |
+----------+
| 2.718282 |
+----------+

BAZAT E T DHNAVE


163
LN( )

Kthen si rezultat logaritmin natyral t numrit t caktuar.

mysql> SELECT LN(2.3);
+-----------------+
| LN(2.3) |
+-----------------+
| 0.8329091229351 |
+-----------------+

LOG10( )

Kthen si rezultat logaritmin me baz dhjet t numrit t caktuar.

mysql> SELECT LOG10(100);
+------------+
| LOG10(100) |
+------------+
| 2.000000 |
+------------+

MOD( )

Kthen modulin e dy numrave t caktuar (pra mbetjen e pjestimit t atyre numrave).

mysql> SELECT MOD(15,4);
+-----------+
| MOD(15,4) |
+-----------+
| 3 |
+-----------+

PI( )

Kthen vlern e pi-s.

mysql> SELECT PI();
+----------+
| PI() |
+----------+
| 3.141593 |
+----------+




BAZAT E T DHNAVE


164
POWER( )

Kthen si rezultat argumentin e par t ngritur n fuqi n argumentin e dyt.

mysql> SELECT POER(2,3);
+------------+
| POER(2,3) |
+------------+
| 8.000000 |
+------------+

RADIANS( )

Konverton numrin e shkallve n radian.

mysql> SELECT RADIANS(180);
+-----------------+
| RADIANS(180) |
+-----------------+
| 3.1415926535898 |
+-----------------+

SQRT( )
Kthen rrnjn katrore t numrit t caktuar.

mysql> SELECT SQRT(81);
+----------+
| SQRT(81) |
+----------+
| 9.000000 |
+----------+

TRUNCATE( )

Cungon numrin e caktuar deri te numri i caktuar i decimaleve.
mysql> SELECT TRUNCATE(2.234,2);
+-------------------+
| TRUNCATE(2.234,2) |
+-------------------+
| 2.23 |
+-------------------+
mysql> SELECT TRUNCATE(2.998,0);
+-------------------+
| TRUNCATE(2.998,0) |
+-------------------+
| 2 |
+-------------------+
BAZAT E T DHNAVE


165
Funksioni Prshkrimi Shembull Rezultati
SIN( ) Kthen sinusin e numrit t caktuar n radian SELECT SIN(5.14); 0.850904
COS( ) Kthen kosinusin e numrit t caktuar n radian SELECT COS(5.14); 0.525322
TAN( ) Kthen tangjentin pr numrin e caktuar n radian SELECT TAN(5.14); 1.619775
COT( )
Kthen kotangjentin pr numrin e caktuar n
radian
SELECT COT(5.14); 0.617370
ASIN( ) Kthen vler e arkus sinusit t numrit t caktuar SELECT ASIN(0.5); 0.523599
ACOS( ) Kthen vler e arkus kosinusit t numrit t caktuar SELECT ACOS(0.5); 1.047198
ATAN( )
Kthen arkus tangjentin pr numrin e caktuar n
radian
SELECT ATAN(5.14); 1.548578

GREATEST( )

Kthen si rezultat argumentin me vler m t madhe.

mysql> SELECT GREATEST(-3,-4,5);
+-------------------+
| GREATEST(-3,-4,5) |
+-------------------+
| 5 |
+-------------------+
mysql> SELECT GREATEST('Pa','Ma','Ca');
+--------------------------+
| GREATEST('Pa','Ma','Ca') |
+--------------------------+
| Pa |
+--------------------------+

LEAST( )

Kthen si rezultat argumentin me vler m t vogl.

mysql> SELECT LEAST(-3,-4,5);
+----------------+
| LEAST(-3,-4,5) |
+----------------+
| -4 |
+----------------+
BAZAT E T DHNAVE


166
mysql> SELECT LEAST('Pa','Ma','Ca');
+-----------------------+
| LEAST('Pa','Ma','Ca') |
+-----------------------+
| Ca |
+-----------------------+

Funksionet aggregate

Funksionet aggregate jan funksione q bjn grupimin e t dhnave( duke supozuar q
sht prdor fjala kye GROUP BY).

AVG( )

Kthen vlern mesatare t ndonj shprehje. Kthen vlern 0 nse shprehja nuk sht tip i t
dhnave numerik.

mysql> SELECT AVG(Shuma) FROM Kredite;
+-------------+
| AVG(Shuma) |
+-------------+
| 6948.8889 |
+-------------+

mysql> SELECT AVG(Shuma) FROM Kredite WHERE Shuma>1000;
+-------------+
| AVG(Shuma) |
+-------------+
| 12056.0000|
+-------------+

COUNT( )

Kthen numrin e vlerave jo-boshe n nj fush.

mysql> SELECT COUNT(Emri) FROM Klientet;
+-------------+
| COUNT(Emri) |
+-------------+
| 6 |
+-------------+
mysql> SELECT COUNT(Emri) FROM Klientet WHERE Emri LIKE B%;
+-------------+
| COUNT(Emri) |
+-------------+
| 2 |
+-------------+
BAZAT E T DHNAVE


167
MAX( )

Kthen vlern maksimale t nj shprehje. Shprehja mund t jet numerike dhe string.

mysql> SELECT MAX(Shuma) FROM Kredite;
+-------------+
| MAX(Shuma) |
+-------------+
| 45000 |
+-------------+

mysql> SELECT MAX(Emri) FROM Klientet;
+-------------+
| MAX(Emri) |
+-------------+
| Valbona |
+-------------+

MIN( )

Kthen vlern m t vogl t nj shprehje, shprehja mund t jet numerike dhe string.

mysql> SELECT MIN(Shuma) FROM Kredite;
+-------------+
| MIN(Shuma) |
+-------------+
| 420 |
+-------------+

mysql> SELECT MIN(Perqindja) FROM Kredite;
+--------------+
|MIN(Perqindja)|
+--------------+
| 3 |
+--------------+

STD( )

Kthen devijimin standard pr vlerat n shprehje.

mysql> SELECT STD(Shuma) FROM Kredite;
+-------------+
| STD(Shuma) |
+-------------+
| 13634.8862 |
+-------------+

BAZAT E T DHNAVE


168
mysql> SELECT STD(Perqindja) FROM Kredite;
+--------------+
|STD(Perqindja)|
+--------------+
| 1.6330 |
+--------------+

SUM( )

Kthen si rezultat shumn e vlerave t nj fushe ose shprehje.

mysql> SELECT SUM(Shuma) FROM Kredite;
+-------------+
| SUM(Shuma) |
+-------------+
| 62540 |
+-------------+

mysql> SELECT SUM(Shuma) FROM Kredite WHERE Perqindja>6;
+-------------+
| SUM(Shuma) |
+-------------+
| 7390 |
+-------------+






















BAZAT E T DHNAVE


169
PROCEDURAT E RUAJTURA (STORED PROCEDURES)

Procedurat e ruajtura jan nj tip i programit t ruajtur, t cilat jan t prgjithshme q
ekzekutohen n krkes t klientit dhe mund t marrin vlera hyrse dhe t japin vlera
dalse. Prdorimi i procedurave t ruajtura e bn nj baz t t dhnave m t sigurt,
ofrojn mekanizma pr mirmbajtjen e bazs s t dhnave, bjn zvoglimin e trafikut
n rrjet sepse programi punon me t dhna n server se sa transferi i tyre npr rrjet etj.
Kodi pr t gjitha procedurat e ruajtura shkruhet n MySQL Query Browser i cili mund t
mirret nga http://dev.mysql.com .

Krijimi i procedurs s ruajtur

Hapim MySQL Query Browser shkojm t File New Script tab dhe shkruajm kodin
pr at procedur. Pr krijimin e nj procedure prdoret urdhri

CREATE PROCEDURE< emri_i_procedurs> ( [<argumenti> <tipi_i_t_dhnave
[{, <argumenti> <tipi_i_t_dhnave }...]])

Pastaj fillojm me bllokun BEGIN , brenda ktij blloku shkruajm kodin dhe e mbyllim
me END. Kjo ka nj ngjashmri me gjuhn programuese PASCAL.



Shembull:
Shkruajm nj procedur q si rezultat do t jap shprehjen Tungjatjeta bot .

DELIMITER $$
CREATE PROCEDURE `TUNG`()
begin
SELECT 'TUNGJATJETA BOT';
end $$
DELIMITER;

E ruajm kt procedur me TUNG.sql pra emri i njjt si i procedurs, dhe e
ekzekutojm. Ekzekutimi i procedurs s ruajtur bhet kshtu:
BAZAT E T DHNAVE


170
CALL <emri_i_procedurs>([parametrat]);

Pra CALL TUNG( ); dhe rezultati do t jet:

mysql> CALL TUNG( );
+-----------------+
|TUNGJATJETA BOT |
+-----------------+
|TUNGJATJETA BOT |
+-----------------+
1 row in set (0.01 sec)
Tani krijojm nj procedur me an t cils do ti shohim t dhnat nga tabela Klientt.

DELIMITER $$
CREATE PROCEDURE `TE_DHENAT`()
begin
SELECT * FROM klientet;
end $$
DELIMITER;

E ruajm gjithmon me emrin e procedurs TE_DHENAT.sql dhe e ekzekutojm. Do t
fitojm t gjitha t dhnat e tabels Klientt.

Procedurat si u cek n fillim mund t marrin parametra, kjo gj sigurohet gjat
shkruarjes s kodit. Krijojm nj procedur q merr si parametra vlera q do t shtohen
n nj tabel.
Tani krijojm nj procedur pr shtimin e t dhnave n tabeln Klientt.

DELIMITER $$
CREATE PROCEDURE `SHTO_TE_DHENAT`(Numri VARCHAR(10),
Emri VARCHAR(20),Mbiemri VARCHAR(20),Qyteti VARCHAR(20),
Adresa VARCHAR(20),Tel VARCHAR(15) )
begin
INSERT INTO Klientet VALUES (Numri,Emri,Mbiemri,Qyteti,Adresa,Tel);
end $$
DELIMITER ;

E ruajm me emrin SHTO_TE_DHENAT.sql dhe e ekzekutojm. Tani ekzekutimi i ksaj
procedure bhet kshtu:

CALL SHTO_TE_DHENAT(140207,ARSIM,BAJRAMAJ,BURIM,rr.A,
044/123-789);

Pas ekzekutimit t ksaj procedure do t shohim se n tabeln Klientt sht shtuar nj e
dhn, pikrisht parametrat e procedurs.

BAZAT E T DHNAVE


171
Brenda kodit t procedurs mund t thrrasim procedur tjetr. Ja nj shembull si
kombinim i shembujve t mparshm.

Shembull:

Krijojm procedurn q do t shtoj t dhna n tabeln Klientt por edhe do t thrret
procedurn TE_DHENAT me an t s cils do ti shohim t dhnat nga tabela Klientt.

DELIMITER $$
CREATE PROCEDURE `SHTO_SHIKO_TE_DHENAT`(Numri VARCHAR(10),
Emri VARCHAR(20),Mbiemri VARCHAR(20),Qyteti VARCHAR(20),
Adresa VARCHAR(20),Tel VARCHAR(15) )
begin
INSERT INTO Klientet VALUES (Numri,Emri,Mbiemri,Qyteti,Adresa,Tel);
CALL TE_DHENAT();
end $$
DELIMITER ;

Pra brenda kodit t procedurs u thirr procedura TE_DHENAT( ).

CALL TE_DHENAT();

Tani pas ekzekutimit t ksaj procedure do t shtohet e dhna q procedura e merr si
parametr dhe ekzektohet procedura TE_DHENAT( ) q mundson shikimin e t dhnave
nga tabela Klientt.





















BAZAT E T DHNAVE


172
PHP, APACHE, MySQL n WEB

PHP, APACHE dhe MySQL jan pjes e grupit t programeve open source.

Kuptimi i rolit t secilit prej ktyre programeve n krijimin e nj WEB faqeje

Apache sht nj WEB server, puna e tij kryesore sht t analizoj do datotek q sht
krkuar nga shfrytzuesi dhe t paraqes rezultatin duke u bazuar n kodin brenda asaj
datoteke. Apache sht mjaft i fuqishm dhe mund t prmbush do krkes q i shtroni.
Mund ta shkarkoni n adresn http://httpd.apache.org .
PHP sht gjuh skriptuese, pjes e serverit q mundson WEB faqja t jet dinamike.
PHP (Hypertext Preprocessor) sht fleksibil dhe i leht pr tu msuar sidomos pr ata q
kan njohuri n C, Java ose Perl. sht nj nga gjuht skriptuese m t popullarizuara.
Mund ta shkarkoni n adresn http://www.php.net .
MySQL sht baza e t dhnave e ndrtuar n at mnyr q mundson PHP-n dhe
Apache-in t punojn s bashku pr qasjen dhe shikimin e t dhnave n nj WEB
browser. Mund ta shkarkoni n adresn http://www.mysql.com .

Instalimi dhe konfigurimi i PHP, Apache dhe MySQL

Instaluesit AMP

Nse nuk dshirojm q t bjm instalimin e t tri komponenteve nj nga nj atehre
mund t bjm instalimin e ktyre komponenteve me nj datotek instaluese. Datoteka
instaluese jan disa por ne do t shkarkojm instaluesin WAMP5 nga adresa
http://www.wampserver.com/en ose n ftp://comp-253 . Me an t WAMP5 bjm
instalimin e t tri komponenteve dhe poashtu bhet konfigurimi i tyre.
Klikojm n datotekn instaluese dhe hapet dritarja:


BAZAT E T DHNAVE


173
Shtypim pulln Next dhe n dritaren vijuese zgjedhim opsionin: I accept the agreement
pastaj shtypim srish pulln Next. N dritaren e re mund t ndryshojm shtegun e
instalimit t komponenteve por ne e lm ashtu si sht C:\wamp dhe shtypim pulln
Next. N dritaren tjetr veprojm njsoj vetm shtypim pulln Next dhe n dritaren
vijuese zgjedhim opsionin pr startim automatik t WAMP5 dhe shtypim Next dhe n
fund Install.



Gjat instalimit paraqitet dritarja:



BAZAT E T DHNAVE


174
ku duhet t zgjedhim vendin ku do t ruhen datotekat q do t krkohen nga serveri
(gjuh skriptuese). Pastaj zgjedhim SMTP serverin ose e lm localhost dhe shtypim
Next. Pastaj shkruajm e-mail adresn p.sh. admin@localhost dhe shtypim Next. Pastaj
prfundon instalimi i ktyre komponenteve shtypim Finish dhe do t startoj WAMP
serveri.
Q kto tri komponenete t punojn s bashku duhet br konfigurimi i tyre, i cili bhet
n datotekat httpd.conf pr Apache, php.ini pr PHP dhe my.ini pr MySQL.
Konfigurimet e tyre mund ti gjeni n ftp://comp-253 n datotekat prkatse.
Tani shkruajm datotekat pr krijmin e bazs s t dhnave, krijimin e tabelave dhe
shtimin e t dhnave n ato tabela, e gjitha kjo bhet me an t gjuhs skriptuese PHP.
Hapim NOTEPAD-in dhe shkruajm kodin e mposhtm:

<html>
<head>
<title>PHP_TESTUES</title>
</head>
<body>
<?php
echo "Ora sht ".time();
?>
</body>
</html>

E ruajm kt me emrin test.php n shtegun C:/wamp/www, pra n vendin ku serveri do
t krkoj datotekat. Hapim INTERNET EXPLORER dhe krkojm adresn
http://localhost/test.php dhe paraqitet:



Krijojm tani tabeln Klientet n bazn e t dhnave Banka.
BAZAT E T DHNAVE


175

<html>
<body>
<h1>PHP</h1>
<?php
$lidhja = mysql_connect("localhost","root","");
mysql_select_db("banka");
$pyetesor="CREATE TABLE Klientet
(
Numri INT NOT NULL PRIMARY KEY,
Emri VARCHAR(20) NOT NULL,
Mbiemri VARCHAR(20) NOT NULL,
Qyteti VARCHAR(15) NOT NULL,
Adresa VARCHAR(20) NOT NULL,
Tel VARCHAR(20) NOT NULL
)";
$rezultati=mysql_query($pyetesor);
echo "Rezultati i krijimit t tabels sht $rezultati<br>\n";
?>
</body>
</html>

E ruajm kt me emrin Test1.php n C:/wamp/www. Kyemi tani n server, shohim se
aty sht baza Banka por ne t nuk ka t krijuar asnj tabel.





Kur t krkojm n adresn http://localhost/Test1.php do t krijojm tabeln Klientet n
bazn e t dhnave Banka.


BAZAT E T DHNAVE


176




Por n tabeln Klientet nuk asnj t dhn, bjm shtimin e t dhnave n tabeln
Klientt.

<html>
<body>
<h1>PROVA</h1>
<?php
$lidhja = mysql_connect("localhost","root","");
$Baza = mysql_select_db ("banka");
$pyetesor = "INSERT INTO Klientet VALUES
('140201','Bujar','Shulemaja','Prishtin','Bregu i diellit','044/123-456'),
('140202','Amir','Simnica','Fush Kosov','rr.Agim Ramadani','044/321-654'),
('140203','Valbona','Krasniqi','Dardan','rr.Adem Jashari','044/213-546'),
('140204','Gani','Thaqi','Besian','rr.Zahir Pajaziti','044/312-645'),
('140205','Lavdim','Kastrati','Prishtin','Tophane','044/132-465')";
$rezultati = mysql_query ($pyetesor);
echo "Rezultati i shtimit te te dhenave eshte $rezultati<br>\n";
?>
</body>
</html>
BAZAT E T DHNAVE


177
E ruajm kt me emrin Test2.php n C:/wamp/www dhe kur t krkojm n adresn
http://localhost/Test2.php do t bjm shtimin e t dhnave n tabeln Klientet.

You might also like