Author
konjina-kobila
View
220
Download
0
Embed Size (px)
7/25/2019 8 Baze Podataka
1/77
PROGRAMIRANJE WEB
APLIKACIJA
dr.sc. Alen [email protected]
MYSQL
7/25/2019 8 Baze Podataka
2/77
Baze podataka Bazapodatakajeskupmedusobnopovezanih
podataka,pohranjenihuvanjskojmemorijiraunala
Podaci
su
istovremeno
dostupni
raznim
korisnicimaiaplikacijskimprogramima
Ubazipodatakamoguejepohranjivati,
mjenjati,brisatiiitatipodatke
7/25/2019 8 Baze Podataka
3/77
Baze podataka Korisnik(administratorbazepodataka)moe
pristupitiprekosoftvera(programa)zaradsabazamapodataka
Sustavza
upravljanje
bazom
podataka
(engl.
DataBaseManagementSystem DBMS)jeposluitelj(server)bazepodataka
Podaciubazisulogikiorganiziraniuskladusnekimmodelompodataka
7/25/2019 8 Baze Podataka
4/77
Baze podatakaModelpodatakajeskuppravilakojaodreujukako
moeizgledatilogikastrukturabazeDBMSpodravaslijedeemodele:
Relacijskimodel.Zasnovannamatematikompojmurelacije.
Mrenimodel.Bazajeprikazanausmjerenimgrafom Hijerarhijskimodel.Bazajeprikazanajednimstablomili
skupomstabala.
Objektnimodel.Bazajeskuptrajnopohranjenihobjekatakojisesastojeodsvojihinternihpodatakaimetoda(operacija)zarukovanjestimpodacima.
7/25/2019 8 Baze Podataka
5/77
Baze podataka Hijerarhijskiimrenimodelbilisuuupotrebiu
60imi70imgodinama20.stoljea Od80tihgodinadodanaskoristeserelacijski
modeli
baza
podataka,
a
sve
vie
i
objektni
modelbazapodataka
Bazepodatakapredstavljajuviurazinuradas
podacimauodnosunaklasineprogramskejezike
7/25/2019 8 Baze Podataka
6/77
Ciljevi baza podataka Ciljevikojiseelepostiibazamapodataka:
Fizikanezavisnostpodataka.Razdvajaselogikadefinicijabazeodnjenestvarnefizikegrae.Akosefizikagraapromijeni,toneezahtijevatipromjene
upostojeimaplikacijama(npr.podaciseprepiuudrugedatotekenadrugimdiskovima)
Logikanezavisnostpodataka.Razdvajaseglobalna
logikadefinicijacijelebazepodatakaodlokalnelogikedefinicijezajednuaplikaciju.akoselogikadefinicijapromijeni,toneezahtijevatipromjeneu
postojeimaplikacijama(uvedesenovizapisiliveza)
7/25/2019 8 Baze Podataka
7/77
Ciljevi baza podataka Ciljevikojiseelepostiibazamapodataka:
Fleksibilnostpristupapodacima.Ustarijimmrenimihijerarhijskimbazama,stazepristupanjapodacimabilesuunaprijeddefinirane.Korisnikjemogao
pristupatipodacimaredoslijedomkojijebiopredvienkodprojektiranjaiimplementiranjabaze
Istovremenipristupdopodataka.Bazamora
omoguitidaveibrojkorisnikaistovremenokoristiistepodatke.Pritomtikorisnicinesmijuometatijedandrugoga.
7/25/2019 8 Baze Podataka
8/77
Ciljevi baza podataka Ciljevikojiseelepostiibazamapodataka:
uvanjeintegriteta.Nastojisesauvatikorektnostikonzistencijapodataka.
Mogunostoporavkanakonkvara.Morapostojati
pouzdanazatitabazeusluajukvarahardverailigreakauradusistemskogsoftvera.
Zatitaodneovlatenogkoritenja.Mogunostdasekorisnicimaograniepravakoritenjabaze.
7/25/2019 8 Baze Podataka
9/77
Ciljevi baza podataka Ciljevikojiseelepostiibazamapodataka:
Zadovoljavajuabrzinapristupa.Operacijespodacimamorajuseodvijatidovoljnobrzo,uskladuspotrebamaodreeneaplikacije.
Mogunostpodeavanjaikontrole.Velikabazazahtijevastalnubrigu:praenjeperformansi,mijenjanjeparametaraufizikojgrai,rutinsko
pohranjivanjerezervnihkopijapodataka,reguliranjeovlatenjakorisnika.Odgovornaosobazoveseadministrator
baze
podataka.
7/25/2019 8 Baze Podataka
10/77
Arhitektura baze podataka Arhitekturabazepodatakasastojiseodtri
slojaisueljameuslojevima:Fizikarazinaodnosisenafizikiprikaziraspored
podatakanajedinicamavanjskememorije.Toje
aspektkojegvidesamosistemskiprogrameri
Globalnalogikarazinaodnosisenalogikustrukturucijelebaze.Tojeaspektkojegvidi
projektantbazeodnosnonjenadministrator.
7/25/2019 8 Baze Podataka
11/77
Arhitektura baze podataka Arhitekturabazepodatakasastojiseodtri
slojaisueljameuslojevima:Lokalnalogikarazinaodnosisenalogiku
predodbuodijelubazekojegkoristipojedina
aplikacija.Tojeaspektkojegvidikorisnikiliaplikacijskiprogramer.
7/25/2019 8 Baze Podataka
12/77
Arhitektura baze podataka
7/25/2019 8 Baze Podataka
13/77
Jezici za rad s bazama podataka KomunikacijakorisnikaiDBMSaodvijase
pomou: Jezikzaopispodataka(DataDescriptionLanguage DDL).
Sluiprojektantubazeiliadministratoruusvrhuzapisivanja
shemeilipogleda.Timjezikomdefiniramopodatkeivezemeupodacima
Jezikzamanipuliranjepodacima(DataManipulationLanguage DML).Sluiprogrameruzauspostavljanjevezeizmeduaplikacijskogprogramaibaze
Jezikzapostavljanjeupita(QueryLanguage QL).Sluikorisnikuzainteraktivnopretraivanjebaze
7/25/2019 8 Baze Podataka
14/77
Modeliranje baze podataka - entitetiPodentitetompodrazumijevamosvetosemoe
jednozna
no
odrediti,
identificirati
i
razlikovati. Entitetjenetooemuelimosprematipodatke.Entitetmoebitiobjektilibie(kua,student,auto),odnosnodogaajilipojava(nogometnautakmica,praznik,servisiranje
auta)Entitetjeopisanatributima(atributikuesu:adresa,broj
katova,bojafasade).
7/25/2019 8 Baze Podataka
15/77
Modeliranje baze podataka - entitetiEntitetodnosnoobjekt"premasrodstvu"moebiti:
jakipostojineovisnooddrugihobjekata slabiegzistencijalnoi/iliidentifikacijskizavisiojakom
objektu
JakientitetjeprimjericeentitetKOLA,jermoepostojatisamzasebe.
SlabientitetjeprimjericeRAZREDjerovisioentitetu
KOLAiakoseizbazepodatakaobriupodaciokolibriusepodaciiorazredutekole.
7/25/2019 8 Baze Podataka
16/77
Modeliranje baze podataka - entitetiEntitetisuopisanisvojstvima(atributima).Atributi
mogubiti: identifikacijskijednoznanoinedvosmislenoidentificirajednu
pojavuentitetameusvimostalima,trajnojepridruenentitetuiestosezovekljuniatributiliifra
opisni opisujekvalitativnailikvantitativnasvojstvaentiteta,mijenjajusesvremenomjersemijenjajuistanjaisvojstvaentiteta
izvedeniizvodeselogikimiliaritmetikimoperacijamaizdefiniranihvrijednostinekihdrugihatributa,ukljuenesuformule,algoritmiilogikiizrazi
7/25/2019 8 Baze Podataka
17/77
Modeliranje baze podataka - klju Kljujeatribut,iliskupatributa,ijevrijednostijednoznano
odredujuprimjerakentitetazadanogtipa.
Nemogupostojatidvarazliitaprimjerkaentitetaistogtipasistimvrijednostimakandidatazaklju
TipentitetaAUTO,kandidatzakljujeatributREGBROJ
TipentitetaSTUDENT,kandidatzakljujeatributJMBAG
7/25/2019 8 Baze Podataka
18/77
Modeliranje baze podatakaVezomsepovezujuentiteti.Vezaseimenujeanaziv
vezeopisujeuloguentitetauvezi.Nazivvezejenajeeglagoliliimenica.
K O L A R A Z R E D
i m a
p r i p a d a
D i j a g r a m e n t i t e t i - v e z e ( M a r t i n o v a n o t a c i j a )
K O L A R A Z R E D
D i j a g r a m e n t i t e t i - v e z e ( C h e n o v a n o t a c i j a )
i m a
1 M
1 M
7/25/2019 8 Baze Podataka
19/77
Modeliranje baze podatakaPremareduveze(ilistupnjuvezepriemujestupanj
vezejednakbrojuentitetakojisudjelujuuvezi)razlikujuse:
unarna,gdjeseradioveziizmeudvijepojaveistogtipa
entiteta
(
esto
se
koristi
naziv
rekurzivna
veza), binarna,gdjeseradioveziizmeudvaentiteta,i
ternarna,gdjeseradiotrimeusobnopovezanaentiteta.
7/25/2019 8 Baze Podataka
20/77
Modeliranje baze podatakaPrematipupovezanosti(pridruivanja)odreujese
kardinalnostvezakojamoebiti:jednostavnoilipotpunopridruivanje(1:1),
uvjetnopridruivanje(1:M),
sloenoilivieznanopridruivanje(M:N).
7/25/2019 8 Baze Podataka
21/77
Modeliranje baze podatakaJednostavnoilipotpunopridruivanje(1:1)
Svakilanizskupapojavajednogentitetapovezanjesjednimisamojednimlanomizskupapojavadrugogentiteta.
7/25/2019 8 Baze Podataka
22/77
Modeliranje baze podatakaUvjetnopridruivanje(1:M)
Svakilanizskupapojavajednogentitetapovezansjednimilinitijednimilisvielanovaizskupapojavadrugogentiteta,priemujesvakilanizskupapojava
drugogentitetapovezansamosjednimlanomizskupapojavaprvogentiteta.
O S O B AI N D E K S
1 2 3 4 5
6 7 8 9 0
im a
im a
1 2 4 5 7im a
7/25/2019 8 Baze Podataka
23/77
Modeliranje baze podatakaSloenoilivieznanopridruivanje(M:N)
Svakilanizskupapojavajednogentitetapovezanjesjednim,nitijednimilisvielanovaizskupapojavadrugogentiteta(nepostojeogranienjaupovezanosti
lanovaskupapojavaobaentiteta).
O S O B AK L U B
K o a r k a k i k lu b
B r i d g e k l u b
je la n
je la n
N o g o m e t n i k lu bje la nje la nje la n
7/25/2019 8 Baze Podataka
24/77
Modeliranje baze podatakaKardinalnostvezemoemijenjatiovisnootomukojise
entitetpromatra.Takojemogueda:1 osoba posjeduje0,1ilivieautomobila
1automobilpripada1osobi
Trgovacjednomdobavljaumoeposlativienarudbi,alisejednanarudbaodnosisamonajednogdobavljaa.Tippridruivanjaje1:M.
7/25/2019 8 Baze Podataka
25/77
Modeliranje baze podatakaSamosevezetipapridruivanja1:1i1:Mmogu
implementiratiurelacijskojbazipodataka.StogasesvakavezatipaM:Ntrebapretvoritiudvijevezetipa1:MiN:1
R A U N P R O I Z V O D
MN
R A U N P R O I Z V O D
MNS T A V K A
R A
U N A
11
7/25/2019 8 Baze Podataka
26/77
Uvod u relacijski modelSvakabazapodatakausebiimajednuilivietablicasa
podacimanpr.tablicaukojojsupohranjeni podaciozaposlenicimaTVZa.
Usvakutablicusespremajupodaciojedinkinpr.
zaposlenikuitosezovezapis(eng.record)Tablicasesastojiodzapisakojipohranjujepodatke
zaposlenika
Tablicaimastupcekojisenazivajuatributi
7/25/2019 8 Baze Podataka
27/77
Uvod u relacijski modelNormalizacijajepristupizradibazepodatakaijie
dizajnbitioptimiziranzaizvravanjeupitanadbazompodataka.
Smanjiti mogunostdobivanjaanomalijaupodacima
baze.Viestrukozapisivanjeistogpodatkaoteava
mijenjanjesadrajabazepodataka.
Normalizacijajepristupizradibazepodatakaijiedizajnbitioptimiziranzaizvravanjegeneralnih upitanabazu.
7/25/2019 8 Baze Podataka
28/77
Uvod u relacijski modelTablicasapodacimaozaposlenicima
7/25/2019 8 Baze Podataka
29/77
Uvod u relacijski modelPodaciutablicitvz_employee
Podaciustupcuemployee_departmentmoramostavitiuodnossadrugomtablicom.Tosenazivarelacijapodataka
Dabimoglistavitizapiseuodnosmoramuvestipojamkljua
7/25/2019 8 Baze Podataka
30/77
Uvod u relacijski modelKlju kojisemoekoristitizajedinstveno
identificiranjeredautablicinazivasejedinstvenimkljuem.
Kadaseklju sastojiodpodatakakojiimajuvanjsko,
realnoznaenje(OIBosobe,JMBAGstudenta,ISBNknjige)tadasetajklju naziva"prirodni"klju.
Akoprirodanklju nijeprikladan,moesedodijeliti
arbitraraniligeneriranklju.
7/25/2019 8 Baze Podataka
31/77
Uvod u relacijski modelAkouvedemojojednutablicusapodacima
Tablicasapodacimaoodjelu
7/25/2019 8 Baze Podataka
32/77
Uvod u relacijski modelPrikazsadrajatablicetvz_department
7/25/2019 8 Baze Podataka
33/77
Uvod u relacijski modelPrimjerrelacijetablicatvz_department i
tvz_employee
7/25/2019 8 Baze Podataka
34/77
Uvod u relacijski modelUprimjeru1bilobigotovonemogueproirititablicu
sapodacima
oadresi
odjela
ilinekom
drugom
podatkubezdadoedopogrekekodunosapodataka
Zasvakogdjelatnikaadresaodjelamoralabiseunositi
runoipojedinano
7/25/2019 8 Baze Podataka
35/77
Uvod u relacijski modelPrikazrunogunosapodatakazatablicutvz_employee
7/25/2019 8 Baze Podataka
36/77
Uvod u relacijski modelAkosmonapravilirelaciju,proirenjesapodacimanije
problem.
Svipodaciveuseinemaponavljanjaunosapodataka.
Podatakseunosiusamojednojtablici
tvz_department
7/25/2019 8 Baze Podataka
37/77
Uvod u relacijski modelPrikazrunogunosapodatakazatablicu
tvz_department
7/25/2019 8 Baze Podataka
38/77
Uvod u relacijski modelPrikazanabazapodatkakojafunkcioniranaopisani
na
in
jerelacijska
baza
podataka
Imenatablice,samebazepodatakaiatributasepiumalimslovimaengleskeabecedebezznakovarazmaka
Svakomatribututj.poljutrebaodredititippodatkakojieseunjegaspremati
MySQL tipovipodatkasedijelena:
a. Numeriketipoveb. Tekstualnitipoviilistring
c. vremenske
7/25/2019 8 Baze Podataka
39/77
Uvod u relacijski modelNumerikitipovi
Mogubitisailibezpredznaka.Akosusapredznakommoguimatinegativnevrijednosti. BIT(x) moebitiizmeu1i64,akosenenavedeondaje1.
TINYINT od128do127ilibezpredznakaod0do255
BOOL,BOOLEAN
SMALLINTod32.768do32.767ilibezpredznakaod0do65.535
MEDIUMINT od 8.388.608do8.388.607ilibezpredznakaod0do16.777.215
INT od2.147.483.648do2.147.483.647ilibezpredznakaod0do4.294.967.295
BIGINT od 9.223.372.036.854.775.808do9.223.372.036.854.775.807ilibezpredznakaod0od18.446.744.073.709.551.615
7/25/2019 8 Baze Podataka
40/77
Uvod u relacijski modelNumerikitipovi
Mogubitisailibezpredznaka.Akosusapredznakommoguimatinegativnevrijednosti. FLOAT(x,y) sekoristizapohranurealnihbrojevasamanjom
preciznou.xjeukupanbrojznakova,aybrojdecimalnihznakova
DOUBLE(x,y) istokaoiFLOAT alisaduplompreciznou FLOAT(x) gdjejexpreciznostubrojbitovima
DECIMAL(x,y) slinodoubleu
7/25/2019 8 Baze Podataka
41/77
Uvod u relacijski modelTekstualnitipovi
Tekstualnapolja
se
dijele
na
fiksne
ivarijabilne.
Fiksna
polja
e
zauzimatiuvijekistukoliinumemorijezasvojupohranu.Varijabilnapoljaezauzimationolikukoliinumemorijekolikojeunjimapohranjenopodataka
CHAR(x) Tekstodxznakova.Gdjexmoebitiizmeu1i255.Charjefiksantippolja.
VARCHAR(x)Tekstodmaksimalnoxznakova.Gdjexmoebitiizmeu1i255,akosenenavede iznosi1.Varcharjevarijabilantippolja.
BINARY(x) Zapohranubinarnihvrijednosti.Xjebrojduljinapoljaubytovima,maksimalno255.Fiksantippolja.
VARBINARY(x) Ekvivalentvarchar tipualizapohranubinarnihvrijednosti
7/25/2019 8 Baze Podataka
42/77
Uvod u relacijski modelTekstualnitipovi
Tekstualnapolja
se
dijele
na
fiksne
ivarijabilne.
Fiksna
polja
e
zauzimatiuvijekistukoliinumemorijezasvojupohranu.Varijabilnapoljaezauzimationolikukoliinumemorijekolikojeunjimapohranjenopodataka
TINYBLOB poljesamaksimalno255bytova.Varijabilnitip. TINYTEXT poljesamaksimalno255znakova.Varijabilnitip.
BLOB(x) poljeodmaksimalno65535bajtova.Varijabilnitip.
TEXT(x) poljesamaksimalno65535znakova.Varijabilnitip.
MEDIUMBLOB maksimalno16777215 bytova.Varijabilnitip.
MEDIUMTEXTmaksimalno16777215 znakova.Varijabilnitip.
LONGBLOB maksimalno4G bytova.Varijabilnitip.
7/25/2019 8 Baze Podataka
43/77
Uvod u relacijski modelTekstualnitipovi
Tekstualnapolja
se
dijele
na
fiksne
ivarijabilne.
Fiksna
polja
e
zauzimatiuvijekistukoliinumemorijezasvojupohranu.Varijabilnapoljaezauzimationolikukoliinumemorijekolikojeunjimapohranjenopodataka
LONGTEXTmaksimalno4Gznakova.Varijabilnitip. ENUM('1','2','3',..)poljekojemoesadravatijednuodpredefiniranih
vrijednosti('vrijednost1','vrijednost2','vrijednost3'itd.)
SET('1','2','3',..)poljekojemoeimatijednuiliviepredefiniranih
vrijednosti.
7/25/2019 8 Baze Podataka
44/77
Uvod u relacijski modelVremenskitipovi
Postoje
sljede
i
tipovi
vremenskih
polja DATE datumuobliku'YYYYMMDD'.Opsegvrijednostiideod'10000101'do'99991231'.
DATETIME datumivrijemeuobliku'YYYYMMDDHH:MM:SS'.Opseg
vrijednostiideod'10000101 00:00:00'do'99991231 23:59:59'. TIMESTAMP datumivrijemeuobliku'YYYYMMDDHH:MM:SS'.
InternosepohranjujekaobrojsekundiprotekaoodUnix epohe(1.1.1970.).Opsegvrijednostijeod'19700101 00:00:01'UTC (
Coordinated
Universal
Time:
http://en.wikipedia.org/wiki/Coordinated_Universal_Time)do'2038011903:14:07'UTC
7/25/2019 8 Baze Podataka
45/77
Uvod u relacijski modelVremenskitipovi
Postoje
sljede
i
tipovi
vremenskih
polja TIMEVrijemeuformatu'HH:MM:SS'.Opsegvrijednostijeod'838:59:59'do'838:59:59'.
YEAR(2|4) Godinauoblikudvijeili4znamenke.Akosenenavede
pretpostavljase4.
7/25/2019 8 Baze Podataka
46/77
SQL SQL jezik mogue je podijeliti na dvije vee
skupine: DDL (engl. Data Definition Language) je dio SQL jezika za
definiranje struktura baze podataka.
DML
(engl. Data Manipulation Language) je dio SQLjezika za manipulaciju podacima koji se nalaze u strukturikreiranoj od strane DDL-a. DML omoguava umetanjepodataka u tablice, ispravak podataka, brisanje podataka
te projekcije podataka.
7/25/2019 8 Baze Podataka
47/77
SQLNaredbe SQLsedijele po svrsi postojanja na:
DDLnaredbe:
1. CREATE omoguava kreiranje novih struktura (baze podataka,tablica, funkcija...)
2. ALTER omoguava promjenu prethodno kreiranih struktura
3. RENAME mijenja naziv entitetu ili bazi podataka
4. DROP brie strukturu i sve podatke unutar iste
7/25/2019 8 Baze Podataka
48/77
SQL DML naredbe
1.INSERT Unosi podatke u tablicu
2. UPDATE Mijenja postojee podatke u tablici
3. SELECT Prikazuje podatke
4. DELETE Brie podatke
7/25/2019 8 Baze Podataka
49/77
SQLKontrolapravakorisnikabazepodataka:
1. GRANT2. REVOKE
Kontrolatransakcija:
1. STARTTRANSACTION2. COMMIT
3. ROLLBACK
7/25/2019 8 Baze Podataka
50/77
SQLSQLnaredbesedijeleposvrsipostojanjana:
Pomonenaredbe:1. USE
2. SET
3. DESCRIBE4. EXPLAIN
5. SHOW
7/25/2019 8 Baze Podataka
51/77
SQLCREATE stvaratablicusapoljimaipripadajuimatributima
CREATE TABLEusers (idint(11)UNSIGNEDNOTNULLAUTO_INCREMENT,name varchar(50),
lastname varchar(50),username varchar(100)NOT NULL,password varchar(100)NOT NULL,about text,createdtinyint(1)UNSIGNEDNOTNULL,
modifiedtinyint(1)UNSIGNEDNOTNULL,PRIMARY KEY (id),UNIQUE KEY username_key (username))ENGINE=InnoDB DEFAULT CHARSET=latin2 COLLATE=latin2_croatian_ci;
7/25/2019 8 Baze Podataka
52/77
SQLIzlaz
7/25/2019 8 Baze Podataka
53/77
SQLDropjenaredbaobavljasuprotnuzadauodnaredbecreate,odnosnobriebazu,tablicu,korisnikasasvimpoljimaisadrajem
DROPDATABASE briebazupodatakaisvetabliceunjoj.
DROPTABLE brietablicu
DROPUSER briekorisnikabazepodataka
7/25/2019 8 Baze Podataka
54/77
SQLAlter SQLnaredbasluizaizmjenuve stvorenihobjekatakaotosubazapodatakailitablicaunutarbaze.
ALTER DATABASEmoepromijenitipostavljenicharacter setiliporedakabecede
bazepodataka
moedodati,oduzetiilipromijenitibilokojidiotablice.Npr.dodatipolje,maknutipolje,dodatiklju itd.
7/25/2019 8 Baze Podataka
55/77
SQLSelect jesql naredbazadohvattj.pretraivanjepodatakaizbazepodataka
Primjer:
SELECTnameFROMtvz_users WHEREname='Pero'ORDER BY lastname ASC
Izlaz:Pero
7/25/2019 8 Baze Podataka
56/77
SQLFROMsadripopistablicaizkojihsepodaciuzimaju
Npr."SELECT firstname,lastname FROM tvz_users;"edohvatitiimenaiprezimenasvihosobaiztablice
poimenu"tvz_users".
WHEREsadriuvjetepokojimasepodacipretrauju.Npr."SELECT firstname,lastname FROM tvz_users WHEREcity='Zagreb';"dohvatitieimenaiprezimenasvihosobakojeiveuZagrebu,analazeseutablicitvz_osobe.
7/25/2019 8 Baze Podataka
57/77
SQLPHP:
IZLAZ:Svipodaciizbazekojisenalazeutablicitvz_users
7/25/2019 8 Baze Podataka
58/77
SQLPHP:
IZLAZ:Svipodaciizbazekojisenalazeutablicitvz_usersi
sadrepodatakZagrebupoljucity
7/25/2019 8 Baze Podataka
59/77
SQLORDERBYodreujekakoesedohvaenipodaciposloiti.Kljunarije nakrajuodreujeda lijeporedakrastui(ASC)ilipadajui(DESC)
"SELECT firstname,lastname FROM tvz_users ORDER BYlastname ASC,firstname ASC;"dohvatitiesvaimenai
prezimenaljudiiztablicetvz_users poredanihpoprezimenu,azatimpoimenu(dvijeosobesaistimprezimenomebitiporedanepoimenu).
7/25/2019 8 Baze Podataka
60/77
SQLLIMITodreujekolikoeseredovamaksimalnodohvatiti.
"SELECTfirstname,lastname FROMtvz_users ORDERBYlastname ASCLIMIT10;"
dohvatitieprvih10imenaiprezimenaiztablicetvz_users poredanihpoprezimenu.
"SELECTfirstname,lastname FROMtvz_users ORDER
BY lastname ASCLIMIT10,5;"dohvatitie5imenaiprezimenaporedanihpoprezimenuodmaknutihodpoetkarezultataza10redaka,redoveod10do15.
7/25/2019 8 Baze Podataka
61/77
SQLPHP:
IZLAZ:Dohvatprvih10 podatakaizbazekojisenalazeutablici
tvz_usersporedanihpoprezimenuuzlazno
7/25/2019 8 Baze Podataka
62/77
SQLInsertjenaredbazaupisnovihsadrajautablicu
INSERTINTOtvz_users(firstname,lastname,city)VALUES('Iva','Ivi','Zagreb'), ('Joa','Horvat','Osijek');
INSERTINTOtvz_users(firstname,lastname,city)VALUES($firstname,$lastname,$city);
7/25/2019 8 Baze Podataka
63/77
SQLPHP:
IZLAZ:Unospodatakaubazu
7/25/2019 8 Baze Podataka
64/77
SQLUpdatejenaredbazamijenjanjeve postojeihpodatakautablicama
Naredbaepromijenitiimeosobeutablicigdjeje
vrijednostatributaid=3
UPDATEtvz_users SETfirstname='Vedran'WHEREid=3;
7/25/2019 8 Baze Podataka
65/77
SQLPHP:
7/25/2019 8 Baze Podataka
66/77
SQLDeletejenaredbazabrisanjepodatakaiztablica
Delete
naredba
e
izbrisati
sve
zapise
(retke)
koji
zadovoljavajuWHEREuvjet.AkoWHEREnije
prisutanizbrisatesesvizapisi
Naredbaeobrisatisveatributeuredkugdjejevrijednostatributaid=3
DELETEFROMtvz_users WHEREid=3;
7/25/2019 8 Baze Podataka
67/77
SQLPHP:
IZLAZ:Brisanjepodatakaubazigdjejeid=3.
7/25/2019 8 Baze Podataka
68/77
SQLTruncatejenaredbazabrisanjesvihpodatakautablici
Grantjenaredbazakreiranjeidavanjedozvola
korisnicimabazepodatakaPravakojesemogudodijelitina:
bazamapodataka,
tablicama,
pojedinimkolonamaupojedinojtablici
TRUNCATEtvz_users;
7/25/2019 8 Baze Podataka
69/77
SQLrootkorisnikjeglavniadministratorMySQLserveraionimasvaprava.
Rootkorisnikasekoristidabisestvorilonovekorisnikeili dabisenetopopraviloakodoedogrekeuraduservera
SanovominstalacijomMySQLserveradolazi rootkorisnikkojinemapostavljenuzaporku.Akoseradi o
serveru
koji
e
biti
javno
dostupan
na
web
u,
obavezno
postavitizaporku
7/25/2019 8 Baze Podataka
70/77
SQLGrantnaredbakreirakorisnikaproba_korisnikkojiimapravaizvravatinaredbeselect,insert,updateideletenadsvimtablicamabazepodatakatest,temujezaporkazaulaznaMySQL serverzaporka123.
GRANTSELECT,INSERT,UPDATE,DELETEONtest.*TO'proba_korisnik'@'localhost'IDENTIFIEDBY'zaporka123';
7/25/2019 8 Baze Podataka
71/77
SQLRevokenaredbajesuprotnanaredbaodnaredbegrant.Briepravakorisnika.
Revoke naredbaemaknutipravonaizvravanjenaredbeinsertnadtablicamatestbazekorisnikuproba_korisnik
REVOKEINSERTONtest.*FROM'proba_korisnik'@'localhost';
7/25/2019 8 Baze Podataka
72/77
SQLUsejenaredbakojadefinirasakojombazompodatakaemoraditi.
MySQLserversadrijednuilivie baza podataka. Dabiodredilisakojomemobazomraditiprvosesanjommoramopovezati
USEdb_name;
7/25/2019 8 Baze Podataka
73/77
SQLSetjenaredbazamijenjanjeserverskihiklijentskihpostavki.
Koristisezanpr.postavljanjecharacter setvezeklijentaizPHP aplikacijesaMySQL serverom
SETNAMES'utf8';
7/25/2019 8 Baze Podataka
74/77
SQLDescribejenaredbazaopisivanjetablice.Ovomnaredbommoemodobitiprikaztablice.
DESCRIBEproducts;
7/25/2019 8 Baze Podataka
75/77
SQLPHP:
$res=mysql_query('DESCRIBEproducts');
while($row=mysql_fetch_array($res)){echo"{$row['Field']} {$row['Type']}\n";
}
IZLAZ:
product_idint(10)unsignedurlvarchar(100)
namevarchar(50)descriptionvarchar(255)pricedecimal(10,2)visibletinyint(1)unsigned
7/25/2019 8 Baze Podataka
76/77
SQLExplainjenaredbazaoptimizacijuizvravanjaupitanabazu.Omoguavauviduinternoizvravanjepojedinog
upitanadbazom.
Showjegeneralnanaredbazaprikaz.Showmoeprikazatikojesvebazepostojenaserveru,kojesvetablicepostojeupojedinojbazipodataka,korisnikeitd.
7/25/2019 8 Baze Podataka
77/77
Pitanja