of 77 /77
PROGRAMIRANJE WEB  APLI KACIJ A dr.sc. Alen Šimec [email protected] MYSQL

8 Baze Podataka

Embed Size (px)

Text of 8 Baze Podataka

  • 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