2 SQL Naredbe Za Kreiranje Podataka i Prakticni Rad u Access u

Embed Size (px)

Citation preview

  • 8/18/2019 2 SQL Naredbe Za Kreiranje Podataka i Prakticni Rad u Access u

    1/24

    2. SQL naredbe za kreiranje podataka

    Ciljevi lekcije• Upoznati se sa osnovama SQL programskog jezike• Upoznati se sa različitim standardima SQL-a•  Naučiti osnovne SQL naredbe za kreiranje strukture relacione baze podataka• Proučiti primer SQL naredbi za kreiranje strukture relacione baze podataka

    PREU!E"E

    Structured Query Language (SQL) predstavlja programski jezik koji je projektovanza potrebe pretra#ivanja i upravljanja podacima u Sistemima za upravljanje relacionim

     bazama podataka $Relational atabase %anagement S&stems - R'%S() za kreiranje imodi*ikacija +ema relacione baze podataka i za kontrolu pristupa objektima baze podataka,

    Prva verzija programskog jezika SQL razvijena je od strane kompanije %' krajem./01-i2 godina, 3va verzija) inicijalno nazvana SEQUEL) je razvijena za potrebemanipulacije podacima S&stem R sistemu za upravljanje relacionim bazama podataka,

    SQL je *ormalno standardizovan ./45 godine) od strane 6merican National Standardsnstitute $6NS() pod nazivom SQL-45, 3vaj standard je kasnije pri2va7en id od stranenternational 3rganization *or Standardization $S3(, Svi SQL standardi koji su naknadnousvojeni predstavljaju zajedničke standarde organizacija 6NS i S3 $8abela .(, 9e7ina

    R'%S-ova implementira jedan od navedeni2 standarda,

    Godina Naziv  Otali nazivi 

    ./45 SQL-45 SQL-40

    ./4/ SQL-4/ :PS .;0-.

    .//; SQL-/; SQL;) :PS .;0-;

    ./// SQL

  • 8/18/2019 2 SQL Naredbe Za Kreiranje Podataka i Prakticni Rad u Access u

    2/24

    SQL je programski jezik razvijen sa speci*ičnom namenom , Njegova osnovnakarakteristika je da se radi o deklarativnom jeziku za upravljanje i manipulacijom podacima urelacionim bazama podataka, SQL omogu7ava pribavljanje) dodavanje) a#uriranje i brisanje

     podataka u relacionoj bazi podataka, 9e7ina proizvo>ača R'%S-a pro+iruje SQL standarddodaju7i proceduralne elemente) kontrolne strukture) korisnički de*inisane tipove podataka i

    druge elemente, SQL standard SQL-// mnoga od ovi2 pro+irenja su *ormalno pri2va7ena kaodelovi SQL jezika u vidu SQL Persistent Stored %odules $SQL?PS%( $8abela ;(,

    #roizvo$a%  &'e  #uno i'e 

    6NS?S3 Standard SQL?PS% SQL?Persistent Stored %odules

    nterbase?:irebird PSQL Procedural SQL

    '% SQL PL SQL Procedural Language $implements SQL?PS%(

    %icroso*t?S&base 8-SQL 8ransact-SQL

    %&SQL SQL?PS% SQL?Persistent Stored %odule $implements SQL?PS%

    3racle PL?SQL Procedural Language?SQL $based on 6da(

    PostgreSQL PL?pgSQLProcedural Language?PostgreSQL Structured Quer& Language$bazira se na 3racle PL?SQL(

    PostgreSQL PL?PS% Procedural Language?Persistent Stored %odules

    !abela 2 Pro+irena SQL jezika koja su postala deo standarda

    9e7ina proizvo>ača relacioni2 '%S-ova @bezbe>uje alat za kreiranje i izvr+avanjenaredbi SQL jezika, 3vaj alat mo#e biti običan Aommand-line nter*ace $SQL?AL( ili alat sa

     bogatim gra*ičkim inter*ejsom, 8ako>e) u ve7ini slučajeva) je obezbe>ena programksa podr+ka koja omogu7ava da se SQL naredbe kreiraju i koriste iz drugi2 programski2 jezika,

    Sve naredbe SQL jezika se mogu podeliti u dve velike grupe<

    ., ata e*inition Language $L( - jezik koji se koristi za de*inisanje strukturerelacione baze podataka

    ;, ata %anipulation Language $%L( - jezik za pribavljanje i a#uriranje podataka urelacionoj bazi podataka,

    Neopodno predznanje

    aza podataka

    Predstavlja kolekciju povezani2 podataka organizovani2 u logičke celine predstavljenetabelama,

  • 8/18/2019 2 SQL Naredbe Za Kreiranje Podataka i Prakticni Rad u Access u

    3/24

    Site' za upravljanje baza'a podataka (*+S)

    Računarski program $u praksi obično skup računarski2 programa odnosno aplikacija( kojiobezbe>uje kreiranje) obradu i administraciju nad bazom podataka, '%S dobija za2teve u

    obliku upita $SQL upiti - naredne lekcijeB( i prevodi te za2teve u odgovaraju7e akcije nad bazom podataka,

    ,elacioni 'odel

    %odel podataka koji ima sna#nu teorijsku osnovu) koja se zasniva na matematičkoj teorijirelacija i na logici prvog reda) i za korisnika vrlo pri2vatljivu reprezentaciju u vidudvodimenzionalne tabele,

    ,elacija

    8abela sa vrstama i kolonama,

    -tribut relacije

    Predstavlja osobinu entiteta predstavljenog relacijom, 6tribut je praktično imenovana kolonarelacije odnosno tabele) koje se odnose na svojstva objekta predstavljenog relacijom,

    !orka relacije9rsta relacije,

    ,elaciona baza podatakaColekcija normalizovani2 relacija,

    ".". aza podataka #,*/01

    U nastavku je prikazana relaciona baza podataka PREU!E"E koja 7e biti kori+7ena usvim lekcijama ovog kursa koje se bave SQL programskim jezikom, Relacioni dijagram baze

     podataka PREU!E"E prikazan je na Slici .,

  • 8/18/2019 2 SQL Naredbe Za Kreiranje Podataka i Prakticni Rad u Access u

    4/24

    Slika " Relacioni dijagram baze podataka PREU!E"E

    8abela ,-*N&  čuva podatke o radnicima preduze7a, !a svakog radnika se pamtimatični broj) ime) srednje slovo) prezime) datum ro>enja) pol) plata) adresa) matični brojneposrednog rukovodioca i broj sektora u kome radnik radi, !a primarni ključ je izabran

    matični broj radnika odnosno kolona +atr, 8abela ima dva strana ključa< ,ukovodilac  iSektor, Colona ,ukovodilac re*erencira kolonu %at'r u istoj tabeli jer rukovodilac je jedanod radnika $rekurzivna veza(, Colona Sektor re*erencira kolonu roj u tabeli Sektor,

    Preduze7e je podeljeno na ve7i broj sektora, U tabeli S!O,  se pamte slede7i podacio sektorima< broj sektora) naziv sektora) matični broj +e*a sektora i datum kada je +e* sektora

     postavljen na svoju du#nost, !a primarni ključ je izabran broj sektora odnosno kolona roj,Dedini strani ključ je kolona Se3   koja re*erencira kolonu +atr  u tabeli ,-*N& $+e* sektora je jedan od radnika u preduze7u(,

    8abela #,O4-! čuva podatke o projektima koji su aktivni unutar preduze7a, !a

    svaki projekat se pamti< broj projekta) naziv projekta) lokacija projekta i broj sektora koji jezadu#en za projekat, !a primarni ključ je izabran broj projekta odnosno kolona roj, Dedinistrani ključ je kolona Sektor koja re*erencira kolonu roj u tabeli Sektor. 

    8abela CL-N5#O,O*&C čuva slede7e podatke o članovima porodica radnika<matični broj radnika) ime člana porodice) pol) srodstvo sa radnikom i datum do+enja,Primarni ključ je kompozitni i čine ga kolone ,adnik  i &'e, Strani ključ je kolona ,adnik  koja re*erencira kolonu +atr u tabeli ,-*N& ,

    8abela LO5S  čuva podatke o lokacijama na kojima se nalazi odre>eni sektor< brojsektora i naziv lokacije, Primarni ključ je kompozitni i čine ga kolone Sektor  i Lokacija,Strani ključ je kolona Sektor koja re*erencira kolonu roj u tabeli S!O, ,

    8abela ,-*&5N- predstavlja evidenciju anga#ovanja radnika na različitim projektima,!a svako anga#ovanje se pamti< matični broj anga#ovanog radnika) broj projekta na kome jeanga#ovan i broj radni2 sati nedeljno koliko je anga#ovan na projektu, Primarni ključ jekompozitni i čine ga kolone ,adnik   i #rojekat, 8abela ima dva strana ključa< ,adnik   i#rojekat, Colona ,adnik   re*erencira kolonu +atr u tabeli ,-*N&  a kolona #rojekatre*erencira kolonu roj u tabeli #,O4-!,

    ".".". *e3inicija tabela

    e*inicija tabele R6NC

    olona  !ip  lju%  Obavezna  Napo'ena 

    %at'r Number Primarni ključ a Long nteger

    me 8et$;1( Ne a

  • 8/18/2019 2 SQL Naredbe Za Kreiranje Podataka i Prakticni Rad u Access u

    5/24

    SSLovo 8et$.( Ne a

    Prezime 8et$=1( Ne a

    atumRodj ate?8ime Ne Ne

    6dresa 8et$.11( Ne Ne

    Pol 8et$.( Ne Ne

    Plata Number Ne Ne Single

    Rukovodilac Number Strani ključ Ne Long nteger

    Sektor Number Strani ključ a '&t

    e*inicija tabele SEC83R

    olona  !ip  lju%  Obavezna  Napo'ena 

    'roj Number Primarni ključ a '&te

     Naziv 8et$F1( Ne a

    Se* Number Strani ključ a Long nteger

    atPost ate?8ime Ne Ne

    e*inicija tabele PR3DEC68

    olona  !ip  lju%  Obavezna  Napo'ena 

    'roj Number Primarni ključ a nteger

     Naziv 8et$.11( Ne a

  • 8/18/2019 2 SQL Naredbe Za Kreiranje Podataka i Prakticni Rad u Access u

    6/24

    Lokacija 8et$F1( Ne Ne

    Sektor Number Strani ključ a '&te

    e*inicija tabele AL6NGP3R3AE

    olona  !ip  lju%  Obavezna  Napo'ena 

    Radnik Number Primarni ključ) Strani ključ a Long nteger

    me 8et$;1( Primarni ključ a

    Pol 8et$.( Ne Ne

    Srodstvo 8et$.1( Ne a

    atRodj ate?8ime Ne Ne

    e*inicija tabele L3CGSEC

    olona  !ip  lju%  Obavezna  Napo'ena 

    Sektor Number Primarni ključ) Strani ključ a '&te

    Lokacija 8et$F1( Primarni ključ a

    e*inicija tabele R6GN6

    olona  !ip  lju%  Obavezna  Napo'ena 

    Radnik Number Primarni ključ) Strani ključ a Long nteger

    Projekat Number Primarni ključ) Strani ključ a nteger

    Sati number Ne a '&te

  • 8/18/2019 2 SQL Naredbe Za Kreiranje Podataka i Prakticni Rad u Access u

    7/24

    ".".2. !et podaci za bazu podataka #,*/01

     

  • 8/18/2019 2 SQL Naredbe Za Kreiranje Podataka i Prakticni Rad u Access u

    8/24

     

    ".2. SQL naredbe za kreiranje podataka

    SQL L naredbe se koriste za kreiranje) izmenu i brisanje same relacione baze podataka kao i objekata koji čine relacionu bazu podataka, Aentralni objekat svake relacione baze podataka jeste tabela, !a kreiranje tabele koristi se SQL naredba C,-! !-L,

    3snovni *ormat C,-! !-L dat je u nastavku<

    CREATE TABLE  

    [,]);

    !a deklaraciju kolona se koristi *ormat koji je dat u nastavku<

    [()] [], 

  • 8/18/2019 2 SQL Naredbe Za Kreiranje Podataka i Prakticni Rad u Access u

    9/24

    eklaracija kolone sadr#i ime kolone) tip podatka kolone) opciono du#inu $ako jeneop2odna) u zavisnosti od tipa podatka( i opciono) ograničenja za kolonu, eklaracijekolona se razdvojaju zapetama, U odeljku !ipovi podataka navedeni su tipovi podataka kojemo#ete koristiti, 3graničenja za kolonu su opciona i mogu da sadr#e speci*ikaciju

     prede*inisane vrednosti i niz speci*ikacija ograničenja) +to je detaljnije opisano u odeljku

    Ograni%enja kolona,

     Nakon deklaracije svi2 kolona navode se ograničenja koja va#e za celu tabelu,Speci*ikacije ograničenja za tabelu su navedena u odeljku Ograni%enja tabele,

     Navedena sintaksa naredbe C,-! !-L nije kompletna, SQL standardobezbe>uju kori+7enje velikog broja dodatni2 klauzula koje korisnicima omogu7avaju

     preciznu kontrolu procesa kreiranja tabele, 3sim toga proizvo>ači R'%S-ova pro+urujuARE68E 86'LE naredbu klauzulama koje su posledica speci*ični2 osobina nji2ovi2

     proizvoda,

    ".2.". !ipovi podataka

    U 8abeli = su dati generički tipovi podataka koje de*ini+e SQL standard, Ne podr#avajusvi R'%S-ovi tipove podataka de*inisane u SQL standardu,

    !ip podataka  Opi 

    integer Aelobrojna vrednost

    smallint Aelobrojna vrednost

    numeric$p)s( 6rgument p de*ini+e ukupan broj ci*ara broja dok argument s de*ini+e brojci*ara desno od decimalnog zareza, Npr, numeric$5) ;( je broj koji ima H ci*reispred decimalnog zareza i ; ci*re iza decimalnog zareza,

    decimal$p)s( 6rgument p de*ini+e ukupan broj ci*ara broja dok argument s de*ini+e brojci*ara desno od decimalnog zareza, Npr, numeric$5) ;( je broj koji ima H ci*reispred decimalnog zareza i ; ci*re iza decimalnog zareza,

    real 'roj u pokrenom zarezu jednostruke preciznosti

    double precision'roj u pokretnom zarezu dvostruke preciznosti

    *loat$p( 6rgument p de*ini+e preciznost broja,

    c2ar$( 6rgument predstavlja maksimalan broj karaktera koji kolona mo#e da pri2vati, 3vaj tip de*ini+e tekstualne podatke *iksne du#ine) odnosno podatak se dopunjuje blanko znacima sa desne strane kako bi se obezbedilaspeci*icirana du#ina,

  • 8/18/2019 2 SQL Naredbe Za Kreiranje Podataka i Prakticni Rad u Access u

    10/24

    varc2ar;$( 6rgument predstavlja maksimalan broj karaktera koji kolona mo#e da pri2vati, 3vaj tip de*ini+e tekstualne podatke promenljive du#ine $nemadopunjavanja blanko znacima(,

     bit$( 6rgument de*ini+e maksimalan broj bitova koje podatak mo#e da pri2vati,Podaci su *iksne du#ine,

     bit var&ing$( 6rgument de*ini+e maksimalan broj bitova koje podataka mo#e da pri2vati,Podaci su promenljive du#ine,

    date atum,

    time 9reme,

    timestamp atum i vreme,

    time Iit2 timezone

    time koji uključuje i in*ormaciju o vremenskoj zoni,

    timestamp Iit2time zone

    timestamp koji uključuje i in*ormaciju o vremenskoj zoni,,

    nterval 9remenski interval,

    !abela 6 Jenerički SQL tipovi podataka

  • 8/18/2019 2 SQL Naredbe Za Kreiranje Podataka i Prakticni Rad u Access u

    11/24

    U 8abeli H su navedeni tipovi podataka koje implementira %icroso*t SQL Server *amilija proizvoda,

    !ip podatakaOpi 

     binar&$n( 6rgument n $. do 4111( de*ini+e maksimalan broj bajtova koji kolona mo#e da pri2vati, 3vaj tip de*ini+e binarne podatke *iksne du#ine,

    c2ar$n( 6rgument n $. do 4111( predstavlja maksimalan broj karaktera koji kolonamo#e da pri2vati, 3vaj tip de*ini+e tekstualne podatke *iksne du#ine) odnosno

     podatak se dopunjuje blanko znacima sa desne strane kako bi se obezbedilaspeci*icirana du#ina,

    datetime 8ip podataka koji se koristi za predstavljanje in*ormacija o vremenu i datumu,Coristi 4 bajtova za pam7enje in*ormacija o datumu i vremenu sa precizno+7uod =)== milisekunde, %ogu se predstaviti podaci o datumu i vremenu u opseguod 1.,1.,.0F= do =.,.;,////, godine,

    image 'inarni podaci promenljive du#ine, %aksimalan broj bajtova koji kolona mo#e pri2vatiti je ;K=. - . $;).H0)H4=)5H0(,

    int Aolobrojna vrednost u opsegu od -;K=. $-;).H0)H4=)5H4( do ;K=. - .

    $;).H0)H4=)5H0(,

    numeric$p) s( 6rgument p $. do =4( de*ini+e ukupan broj ci*ara broja dok argument s $1 s  p( de*ini+e broj ci*ara desno od decimalnog zareza, %ogu se predstaviti brojeviu opsegu od - .1K=4 M. do .1K=4 - .,

    smalldatetime 8ip podataka koji se koristi za predstavljanje in*ormacija o vremenu i datumu,Coristi H bajta za pam7enje in*ormacija o datumu i vremenu sa precizno+7u od. minuta, %ogu se predstaviti podaci o datumu i vremenu u opsegu od1.,1.,./11 do 15,15,;10/, godine,

    smallint Aolobrojna vrednost u opsegu od -;K.F $-=;)054( do ;K.F - . $M=;)050(,

    tet 8ip podataka koji se koristi za predstavljanje tekstualni2 podataka promenljivedu#ine, %aksimalna du#ina je ;K=. - . $;).H0)H4=)5H0( bajtova,

    tin&int$( Aolobrojna vrednost u opsegu od 1 do ;FF,

    varc2ar$n( 6rgument de*ini+e maksimalan broj bitova koje podatak mo#e da pri2vati,Podaci su promenljive du#ine,

    8abela H 8ipovi podataka koje implementira %S SQL Server

  • 8/18/2019 2 SQL Naredbe Za Kreiranje Podataka i Prakticni Rad u Access u

    12/24

  • 8/18/2019 2 SQL Naredbe Za Kreiranje Podataka i Prakticni Rad u Access u

    13/24

    ".2.2. SQL **L naredbe za kreiranje tabela ,-*N& i S!O, 

    #ri'er "

    CREATE TABLE R!"#$ ( 

    %at&r Int, #me  VarChar('), lo*o Char('), +reime  VarChar('), !atRodj Date, +ol Char('), +lata  Numeric(-, .), 

    dresa VarChar

    (/0), 

    Ruko*odilac Int, ektor Int 

    ); 

    CREATE TABLE 1$23R ( 

    &roj Int,"ai*  VarChar('), e4 Int, !at+ost Date 

    ); 

    ".2.6. Ograni%enje kolone

    3graničenja koja mo#ete da de*ini+ete za kolonu kod kreiranja tabela su<

    • N/LL ili NO! N/LL -de*ini+e da kolona mo#e ili ne mo#e imatu NULL vrednosti,• /N&Q/ - de*ini+e da kolona ima jedinstvene vrednosti $kandidati za ključeve(,• #,&+-,7 7 - de*ini+e da kolona predstavlja primarni ključ tabele $mo#e da se

     primeni na samo jednu kolonu u tabeli(,• C8C  -de*ini+e ograničenje za proveru vrednosti kolone $koristi se kod upisa ili

    a#uriranja vrednosti(,• *9-/L! - de*ini+e podrazumevanu vrednost za kolonu $kolona uzima ovu

    vrednost) ako vrednost kolone nije navedena(,• ,9,NCS -de*ini+e da kolona predstavlja spoljni ključ tabele,

    !a vrednost kolone se mogu speci*icirati ograničenja N/LL  ili NO! N/LL čime sedozvoljava ili zabranjuje N/LL vrednost kolone, Stro#e ograničenje je /N&Q/) koje nedozvoljava ponavljanje vrednosti u koloni,

    !a kolonu podrazumevano ograničenje je N/LL vrednost, 8o znači da navodimo samoograničenje NO! N/LL) ako je de*inisano za konkretnu kolonu,

  • 8/18/2019 2 SQL Naredbe Za Kreiranje Podataka i Prakticni Rad u Access u

    14/24

    Cod navo>enja #,&+-,7 7  podrazumeva se NO! N/LL  ograničenje za tukolonu) tako da ga ne treba posebno navoditi,

    Pri kreiranju tabele u kojoj je atribut 6 primarni ključ) a atribut ' spoljni ključ mo#etekoristi oblik naredbe C,-! !-L koji je prikazan u nastavku. 

    CREATE TABLE ( 

    PRIMARY KEY, & REFERENCES(), ostali atributi 

    ); 

    Uočite da kod deklaracije spoljnog ključa tabele treba navesti iza ključne reči,9,NCS ime re*erencirane tabele i opciono) u maloj zagradi) ime re*erenciranekolone u toj tabeli, '%S očekuje da je re*erencirana kolona primarni ključ $kolonadeklarisana sa #,&+-,7 7( u re*erenciranoj tabeli, Na taj način atribit iza koga stojiklauzula ,9,NCS de*inisan je kao spoljni ključ u odnosu na primarni ključ tabele čije

     je ime navedeno iza klauzule ,9,NCS,

    #ri'er 2

    SQL L naredba za kreiranje tabele PR3DEC68,

    5R121 2&61 +R371$2 

    ( &roj Int PRIMARY KEY, "ai*  VarChar(.)  NOT NULL, 6okacija  VarChar(') DEFAULT(8"i98), ektor Integer REFERENCES SEKTORBr!"# 

    ); 

    ".2.:. Ograni%enja tabele

    !a de*inisanje ograničenja koja va#e za tabelu u celini mo#ete koristiti<

    • #,&+-,7 7 - de*ini+e koja kolona ili koje kolone čine primarni ključ tabele,• /N&Q/ - de*ini+e koja kolona ili koje kolone imaju jedinstvene vrednosti $kandidati

    za ključeve(,• 9O,&GN 7 - de*ini+e koja kolona ili koje kolone čine spoljni ključ tabele,• C8C  -de*ini+e ograničenja vrednosti kolone ili kolona koje '%S proverava kod

    upisa ili a#uriranja vrednosti te ili ti2 kolona,

    !a kreiranje tabele u kojoj je skup atributa $a)b)c( primarni ključ mo#ete koristiti oblik ARE68E 86'LE naredbe prikazan u nastavku,

  • 8/18/2019 2 SQL Naredbe Za Kreiranje Podataka i Prakticni Rad u Access u

    15/24

    CREATE TABLE < ime_tabele >( ,

    PRIMARY KEY (a,b,c) ); 

    6tribute a) b i c treba deklarisati u sekciji atributi i nji2ovi tipovi podataka O,

    #ri'er 6

    SQL L naredba za kreiranje tabele R6GN6,

    CREATE TABLE R!#_" 

    (  Radnik Int, +rojekat Int, ati Int NOT NULL, CONSTRAINT Radi"a+$  PRIMARY KEY Radnik$

    +rojekat# ); 

    ".2.:.". Ograni%enje tranog klju%a

    U deklaraciji kolone ili tabele) nakon klauzule ,9,NCS) mogu se navestiklauzule ON *L!  ili ON /#*-! koje speci*iciraju aktivnosti u slučaju naru+avanjaintegriteta,

    ON *L!  omogu7ava speci*ikaciju aktivnosti nad torkama relacije) odnosnovrstama tabele) na koju se re*erencirate u ,9,NCS klauzuli u slučaju brisanja torki utabeli u kojoj je navedeno ovo ograničenje,

    ON /#*-! omogu7ava speci*ikaciju aktivnosti nad torkama re*erencirane tabele uslučaju a#uriranja $promene vrednosti( podataka u tabeli gde je ,9,NCS ograničenje

    speci*icirano,

    U oba slučaja) iza ovi2 klauzula se navodi jedna od klauzula koja de*ini+e aktivnostkoja 7e se izvr+iti nad torkama u slučaju brisanja ili a#uriranja vrednosti torke u tabeli u kojoj

     je ograničenje navedeno<

    • NO -C!&ON - nema akcije $ovo je prede*inisana vrednost(,• C-SC-* - kaskadno izvr+enje aktivnosti brisanja $bri+u se torke u tabeli na koju se

    re*erencirate( kod ON *L! ili aktivnosti a#uriranja $a#uriraju se vrednostire*erencirani2 atributa( kod ON /#*-!,

    • S! *9-/L! - promena vrednosti atributa u tabeli na koju se re*erencirate na prede*inisanu vrednost,

  • 8/18/2019 2 SQL Naredbe Za Kreiranje Podataka i Prakticni Rad u Access u

    16/24

    • S! N/LL - promena vrednosti atributa u tabeli na koju se re*erencirate na NULL,

     Ne zaboravite da je kod deklarisanja 9O,&GN 7 ograničenja na kraju deklaracijetabele) neop2odno navesti listu re*erentni2 atributa u okviru zagrada) tako da C,-!!-L naredba ima slede7i oblik<

    CREATE TABLE ( 

    FOREI%N KEY ()

    REFERENCES () [ON DELETE  NO ACTION  CASCADE  SET DEFAULT SET

     NULL=] [ON UPDATE  NO ACTION  CASCADE  SET DEFAULT SET

     NULL=] C&ECK  () 

    ); 

    #ri'er :

    SQL L naredba za kreiranje tabele R!#_",

    CREATE TABLE R!#_" ( 

    Radnik Int, +rojekat Int, ati Int NOT NULL, CONSTRAINT Radi"a+$ PRIMARY KEY (Radnik,

    +rojekat)$ CONSTRAINT Radnik$ FOREI%N KEY (Radnik) 

    REFERENCES R!"#$(%at&r)$ CONSTRAINT +rojekat$  FOREI%N KEY (+rojekat) 

    REFERENCES +R371$2(&roj) ); 

  • 8/18/2019 2 SQL Naredbe Za Kreiranje Podataka i Prakticni Rad u Access u

    17/24

    ".2.;. **L naredbe za kreiranje baze podataka #,*/01

    #ri'er ;

    5R121 2&61 R!"#$ ( 

    %at&r #nt, #me ?ar5:ar(') "32 "@66, lo*o 5:ar('), "32 "@66, +reime ?ar5:ar(') "32 "@66, !atRodj !ate, +ol 5:ar(') !1@62 8%8, +lata "umeric(-, .) 5A15$ (+62 > '000), dresa ?ar5:ar(/0), Ruko*odilac #nt, ektor #nt "32 "@66, 53"2R#"2 Radnik+$ +R#%RB $1B (%at&r), 53"2R#"2 Ruko*odi$ 3R1#C" $1B (Ruko*odilac)

    R11R1"51 R!"#$(%at&r), 53"2R#"2 ektor$' 3R1#C" $1B (ektor)

    R11R1"51 1$23R(&roj) ); 

    5R121 2&61 1$23R ( 

    &roj #nt,"ai* ?ar5:ar(') "32 "@66, e4 #nt "32 "@66, !at+ost !ate, 53"2R#"2 ektor+$ +R#%RB $1B (&roj), 53"2R#"2 e4$ 3R1#C" $1B (e4)

    R11R1"51 R!"#$(%at&r) 

    ); 

    5R121 2&61 +R371$2 ( 

    &roj #nt, "ai* ?ar5:ar(.) "32 "@66, 6okacija ?ar5:ar(') !1@62 8"i98, ektor #nteger "32 "@66, 53"2R#"2 +rojekat+$ +R#%RB $1B (&roj), 53"2R#"2 "adlean$ 3R1#C" $1B (ektor)

    R11R1"51 1$23R(&roj) ); 

  • 8/18/2019 2 SQL Naredbe Za Kreiranje Podataka i Prakticni Rad u Access u

    18/24

    5R121 2&61 56"_+3R3!#51 ( 

    Radnik #nt, 

    #me ?ar5:ar('), +ol 5:ar(') "32 "@66 !1@628%8, 

    !atRodj !ate, 53"2R#"2 5lan+orodice+$ +R#%RB $1B (Radnik,

    #me), 53"2R#"2 Roditelj$ 3R1#C" $1B (Radnik)

    R11R1"51 R!"#$(%at&r) ); 

    5R121 2&61 63$_1$ ( ektor #nt, 6okacija ?ar5:ar('), 53"2R#"2 6okacija+$ +R#%RB $1B (ektor,

    6okacija), 53"2R#"2 ektor$. 3R1#C" $1B (ektor)

    R11R1"51 1$23R(&roj) ); 

    5R121 2&61 R!#_" 

    (  Radnik #nt, +rojekat #nt, ati #nt "32 "@66, 53"2R#"2 Radi"a+$ +R#%RB $1B (Radnik,

    +rojekat), 53"2R#"2 Radnik$ 3R1#C" $1B (Radnik)

    R11R1"51 R!"#$(%at&r), 53"2R#"2 +rojekat$ 3R1#C" $1B (+rojekat)

    R11R1"51 +R371$2(&roj) ); 

  • 8/18/2019 2 SQL Naredbe Za Kreiranje Podataka i Prakticni Rad u Access u

    19/24

    ".6. +S -cce peci3i%noti

    8renutno najrasporostranjeniji standard SQL-a koji se koristi je 6NS SQL-/;, 3vajstandard implementira najve7i broj proizvo>ača '%S-a, Sa druge strane %S 6ccess koristine+to stariju verziju standarda 6NS SQL-4/, 8ako>e) kao i ve7ina drugi2 proizvo>ala'%S-a) %icroso*t je u %S 6ccess SQL implementirao speci*ičnosti koje nisu deo SQLstandarda, z ovi2 razloga) postoje elementi SQL standarda koji ne7e raditi u %S 6ccess-u, Unastavku 7e biti navedene neki od elemenata SQL standarda) a vezani su za AR68E 86'LEnaredbu) koje %S 6ccess ne podr#ava<

    • %S 6ccess ne podr#ava /N&Q/) C8C  i *9-/L! ograničenja, Ekvivalentnaograničenja se mogu de*inisati u tabeli kori+7enjem esig 9ieI-a za tabelu,

    • Car i

  • 8/18/2019 2 SQL Naredbe Za Kreiranje Podataka i Prakticni Rad u Access u

    20/24

    ;, Creiranje tabela i izbor ključa - nakon otvaranja *atabae @indo?-a kao na slici

  • 8/18/2019 2 SQL Naredbe Za Kreiranje Podataka i Prakticni Rad u Access u

    21/24

    • Počnite sa kreiranjem tabela klikom na 8able i Create !able in *eign

  • 8/18/2019 2 SQL Naredbe Za Kreiranje Podataka i Prakticni Rad u Access u

    22/24

    • snimite tabelu pod #eljenim imenom•

    domene atributa odredite tipovima podataka koje nudi 6ccess

    • zaberite ključni atribut) selekcijom tog atributa i klikom na ikonicu sa ključem natoolbar-u,

    =, 8abele mo#ete modi*ikovati tako +to 7ete iz istog prozora da klikom na tabelu i izboromopcije esign,

    H, Unos i modi*ikacija podataka u tabeli - jednostavno dvostrukim klikom na tabelu otvara setabela u modu za prikaz i unos podataka, %o#ete da unosite nove vrste ili da menjate

     postoje7e

  • 8/18/2019 2 SQL Naredbe Za Kreiranje Podataka i Prakticni Rad u Access u

    23/24

    F, Pode+avanja za očuvanje re*erencijalnog integriteta• zabrati ikonicu za Relations2ip i otvori7e vam se slede7i prozor u kome mo#ete da

    dodate tabele izme>u koji2 7ete de*inisati veze za očuvanje re*erencijalnog integriteta<

    • !a kreiranje veze izme>u dve tabele jednostavno kliknite i povucite ključ jedne tabelei prevucite ga preko stranog ključa u drugoj tabeli, Podesite ograničenja

  • 8/18/2019 2 SQL Naredbe Za Kreiranje Podataka i Prakticni Rad u Access u

    24/24

    ".:.". #itanja za a'otalni rad

    reiranje baze podataka

    Proučiti detaljno *unkcije %S 6ccess-a kao alata za razvoj aplikacija i '%Sa) kreirati bazu podataka PREU!E"E kori+7enjem relacionog modela koji je dat u ovoj lekciji,