Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,104
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
43
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. SVEUČILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE I INFORMATIKE VARAŽDINLuka Rajčević UVOD U SQL SEMINARSKI RAD Varaždin, 2011.
  • 2. SVEUČILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE I INFORMATIKE VARAŽDINLuka RajčevićRedoviti studentBroj indeksa: 38117/09-R.Smjer: Informacijski sustaviPreddiplomski studij UVOD U SQL SEMINARSKI RAD Mentor: Dr. sc. Kornelije Rabuzin Varaždin, travanj 2011.
  • 3. Sadržaj1. UVOD ..................................................................................................................................................................12. KRATKA POVIJEST SQL-A ............................................................................................................................23. STRUKTURIRANI JEZIK UPITA – SQL ........................................................................................................4 3.1. CODD-OVA PRAVILA ZA RAD S RELACIJSKIM BAZAMA PODATAKA ....................................................................4 3.2. DDL I DML ...................................................................................................................................................5 3.3. PRAVILA PISANJA KODA ..................................................................................................................................6 3.3. TIPOVI PODATAKA U SQL-U ...........................................................................................................................74. RAD S SQL-OM .................................................................................................................................................9 4.1. KREIRANJE BAZE ............................................................................................................................................9 4.2. RAD S PODACIMA U BAZI............................................................................................................................... 115. ALTERNATIVE SQL-U...................................................................................................................................165. ZAKLJUČAK ................................................................................................................................................... 17LITERATURA ...................................................................................................................................................... 18 I
  • 4. 1. UvodSQL – eng. structured query language, tj. strukturirani jezik za stvaranje upita. Iako ime tosugerira, on je mnogo više od jezika za postavljanje upita. SQL je najpopularniji računalni jezikza izradu, traženje, ažuriranje i brisanje podataka iz relacijskih baza podataka. Najpopularnijiznači da se gotovo sve današnje relacijske baze podataka temelje upravo na ovom jeziku koji je,usputno rečeno, standardiziran ANSI standardom.U ovom seminarskom radu ću pokazati kako je nastao SQL, kako se razvijao i kako je postaoglavni jezik za relacijske baze. Također ću opisati i naredbe koje se koriste u ovom jeziku,pravila pisanja istih, tipove podataka koji se koriste u SQL-u itd.Na kraju ću spomenuti i neke alternative SQL-u i iz svega navedenog izvesti nekakav zaključak. 1
  • 5. 2. Kratka povijest SQL-aUpitni jezik SQL je nastao kao rezultat razvoja klase jezika u istraživačkom laboratoriju IBM-a,u San Joseu, Kaliforniji. SQL je evoluirao od nekih ranijih jezika za upite. Tu „evoluciju“karakterizira odstupanje od jezika relacijske algebre i približavanje jezicima relacijskog računa.Jezici ove skupine, tj. upitni jezici, imaju jednu bitnu razliku u odnosu na ostale programskejezike (C, C++, Java, Pascal) a to je da oni:„omogućuju zadavanje onoga što se želi dobiti, bez preciznog navođenja načina kako će seželjeni rezultat dobiti“.[Uvod u relacijske baze podataka, Pavlović-Lazetić Gordana, str 52.]Prvi od jezika u klasi upitnih jezika stovrenih od IBM-a je bio upitni jezik SQUARE (SpecifyingQUeries As Relational Expressions). Ovaj jezik je poprilično relacijski kompletan. Imaprepoznatljivu sintaksu za sve operacije relacijske algebre, npr. Uspoređivanje skupovainkluzijom.Primjer sintakse jezika SQUARE, označava projekciju na atribute A, B, C rezultata prirodnogspajanja relavije R i restrikcije S po uvjetu (D = d1).Neprivlačnu matematičku sintaksu jezika SQUARE trebao je popraviti njegov nasljednikSEQUEL (Structured English QUEry Language). „English“ u njegovom imenu se odnosi nauvođenje rezerviranih riječi (keywords) iz engleskog jezika za označavanje uloge koju pojediniatributi relacije imaju u upitu., dok „structured“ označava postojanje blokova od kojih se gradiupit.Primjer sintakse jezika SEQUEL.Ovaj jezik je također relacijski kompletan jezik, podržava iste agragatne funkcije kao iSQUARE. Ovaj je jezik, uz kasnije izmjene i iz pretežno pravnih razloga, preimenovan u SQL(Structured Query Language). Pod ovim imenom još uvijek postoji, i od tada do danas je doživioniz verzija i standarda. Prvi komercijalni SQL proizvod SQL/DS je predstavio IBM 1981. Iza 2
  • 6. njega su se pojavili sustavi baza podataka Oracle i Relational Technology. Do 1986. Godine nijebilo standarda upitnog jezika baza podataka. Prvi takav standard objavila je komisija X3H2 zabaze podataka Američkog instituta za standarde. Bio je to ANSI SQL/86. Taj standard jesadržavao zajedničke kompoente raznih verzija SQl jezika. Jedan od poznatijih i bitnijihstandarda SQL-a je objavljen 1989. godine. Bio je to SQl/89, i bio je široko prihvaćen na tržištu.Io je funkcionalno kompletniji od SQL/86. Najvažnije proširenej je bilo uvođenje referencijskogintegriteta i ugnježđenje SQL-a u programske jezike Ada, C, COBOL, FORTRAN, Pascal i PL/I.Ostale bitnije verzije su SQL/92 ili SQL-2 (objavljen 1992.) i SQL/99 ili SQL-3 s nekim novimmogućnostima. 3
  • 7. 3. Strukturirani jezik upita – SQL3.1. Codd-ova pravila za rad s relacijskim bazama podatakaSQL jezik je razvijen za rad s relacijskim bazama podataka. Pravila prema kojima se radi urelacijskim bazama, a ujedno i pravilima po kojima je stvoren SQL se pozabavio dr. Codd 1970.godine. U članku „A relational model of data for large shared data banks“ iznosi 12 Coddovihpravila za rad s relacijskim bazama podataka. U nastavku ću napisati tih 12 pravila:0) Relacijski DBMS (Database Management System) – sustav za upravljanje bazama podatakamora biti u mogućnosti da upravlja u ptpunosti bazama podataka kroz svoje relacijskemogućnosti.1) Pravila o informacijama – sve informacije u relacijskoj bazi podataka (uključujući imenatablica i stupaca) predstavljaju se kao vrijednosti u tablici2) Osiguravanje pristupa – svakoj se vrijednosti u relacijskoj bazi podataka može pristupitiupotrebom kombinacije imena tablice, vrijednosti primarnog ključa i imena stupaca.3) Sustavna podrška nedefiniranim vrijednostima – DBMS osigurava sustavnu podršku u radu sanedefiniranim veličinama (nepoznati ili neprimjenjivi tipovi podataka), koji se razlikuju oddefiniranih vrijednosti i neovisni su.4) Aktivan, uvijek dostupan relacijski katalog – opis baze podataka i njenog sadržaja jepredstavljen na logičkom nivou u vidu tabela i može se pretraživati pmoću baze podataka.5) Razumljiv podjezik podataka – bar jedan podržani jezik mora imati dobro definiranu sintaksui biti razumljiv. Mora se podržati definicija podataka, upravljanje podacima, pracila integriteta,autorizacija i transakcije.6) Pravilo za ažuriranje pogleda – svi pogledi koji se teoretski mogu ažurirati, ažuriraju se krozsustav.7) Unošenje, ažuriranje i uklanjanje podataka na nivou skupova – DBMS za dobivanje podatakana nivou skupova i za unošenje, ispravak i uklanjanje podataka.8) Fitička neovisnost podataka – mijenjanje fizičkog zapisa strukture ili metode pristupa neutječe na aplikacije ili programe.9) Logička neovisnost podataka – koliko je god moguće, promjena strukture tablica ne utječe naaplikacije ili programe. 4
  • 8. 10) Neovisnost integriteta – jezik baze podataka mora osigurati način za definiranje pravilaintegriteta. Ona moraju biti sačuvana u katalogu, koji je uvijek dostupan i ne može se ignorirati.11) Neovisnost od distribucije – prva ili ponovna distribucija pdataka ne utječe na zahtjeveaplikacije.12) Zaštita podataka – ne smije postojati mogućnost zaobilaženja pravila integriteta definiranihjezikom baze podataka upotrebom jezika koji rade na niskom nivou.3.2. DDL i DMLČitajući ova pravila možemo reći da SQL kao strukturirani jezik za baze podataka omogućava datvorimo i promijenimo strukturu baze podataka, dodamo prava korisniku za pristup bazamapodataka ili tablicama, tražimo određene informacije odbaze ili da mijenjamo sam sadržaj baze.Kako bi bili u mogućnosti raditi ovo sve nabrojano, SQL nam nudidvije skupine funkcija:  DDL ( Data definition language)  DML ( Data manipulation language)DDL funkcije su funkcije za definiciju podataka (data definition). Naziv DDl se prvi put javlja uvezi s Codasyl1 modelom baza podataka gdje je shema baze bila napisana u Data DescriptionLanguage-u koji je opisivao zapise, polja i skupove koji su činili model podataka. Kasnije sepočeo koristiti uglavnom u kontekstu SQL jezika, ali u zadnje vrijeme je on općeniti naziv zabilo koji formalni jezik kojim se opisuju podaci ili druge strukture koje nose informacije.Najčešća DDL naredba u SQL jeziku je naredba CREATE. Ova naredba u SQL-u stvara objektunutar sustava za upravljanje bazom podataka. Tip objekta koji se može kreirati ovisi o sustavuza upravljanje a može biti npr. tablica, indeks itd. Najčešća CREATE naredba je svakakoCREATE TABLE ali o tome nešto kasnije.DML funkcije su funkcije za upravljanje podacima (data manipulation). Pod DML jezikesmatramo velik broj računalnih kojima se koriste računalni programi ili baze podataka. Oniustvari služe za dodavanje, brisanje, editiranje i/ili ažuriranje podataka u bazama podataka.Trenutno je najčešći DML onaj SQL-ov koji se koristi za dohvaćanje i upravljanje podatakaunutar relacijske baze. DML radi na način da mijenja podatke unutar SQL baze ali ne mijenjashemu ili objekte unutar baze. Dakle, ukoliko imamo definiranu tablicu s nekim zapisima unutarnje, sa DML naredbama možemo upravljati samo podacima. DML naredbe nemaju mogućnost1 „Conference on Data Systems Languages“ – konzorcijum stvoren 1959. čiji su zaključci bili upute o razvojustandardnih programskih jezika koji bi se mogli koristiti na mnogim računalima. 5
  • 9. mijenjanja oblika tablice niti brisanja ili kreiranja iste. Za to je potreban DDL, opisan ranije.Najpoznatije i najčešće korištene DML naredbe unutar SQL-a su npr. SELECT, INSERT,UPDATE i/ili DELETE. Vidimo da je sintaksa vrlo jednostavna, engleske riječi koje rade upravoono što i same znače (odaberi, umetni, ažuriraj, izbriši). Postoje dva tipa DML jezika. To suproceduralni i deklarativni. Svaka SQL DML naredba je deklarativnog tipa. Deklarativnenaredbe (SQL ili neke druge) opisuju što program treba napraviti, za razliku od proceduralnihkoje opisuju kako tj. na koji način program treba obaviti ono što želimo.U početku su DML naredbe koristili samo računalni programi, no danas razvojem i širenjemSQL njih koriste i mnogi korisnici također.3.3. Pravila pisanja kodaOno što je bitno spomenuti i objasniti, a što možda mnogima nije shvatljivo je način pisanja kodau SQL-u. Dakle, u nekim primjerima naredbi od ranije mogli ste primjetiti da su sve SQLnaredbe bile pisane velikim slovima (upper case). To se radi iz razloga što se u kodu želinaglasiti što je naredba a što je tekst ili neki podatak koji se unosi. Naime, SQL ne pravi razlikuizmeđu malih i velikih slova. U prijevodu, slijedeće dvije naredbe su potpuno jednake:Kao što se vidi iz primjera, u prvom načinu ( sa velikim slovima) se jednostavno razaznajunaredbe od imena tablica, stupaca, redova i/ili podataka. Iako je moguć i drugi način, ubuduće ćesvi primjeri biti napisani prvim načinom radi lakšeg snalaženja u kodu.Još jedna bitna stvar kod pisanja koda su komentari. Oni su tekst koji upišemo kao podsjetnik ilikao opis nekih naredbi. Taj tekst se ne izvršava prilikom kompajliranja koda. U SQL-u postojedvije vrste komentara. To su:1.) Komentar za samo jedan red kojemu je oznaka za početak „- -„ (bez navodnika), a iza slijeditekst komentara, npr: 6
  • 10. 2.) Komentar kroz više redova koji započinje oznakom „/*“ a završava sa „*/“ (obje oznake beznavodnika), npr: /* Ovo je Komentar kroz Više redova */Imena objekata (tablice, stupci, redovi) moraju započeti slovom (malim ili velikim) il znakom _(underscore). Dakle, ne smiju započeti sa brojem. U nastavku naziva (nakon prvog znaka) možebiti bilo koji znak pisan u Unicode kodu, decimalni brojevi ili neki specijalni znakovi @, $, _ ili#, ali ne smiju biti ključne riječi (keywords).3.3. Tipovi podataka u SQL-uPrilikom kreiranja tablice (naredbom CREATE) određujemo nazive stupaca te tip podatka kojiće biti spremljen. To bi mogli usporediti sa inicijalizacijom varijable u programiranju. Tipovipodataka u SQL jeziku su:  Cjelobrojni  bit – podatak koji je 1 ili 0  bigint – pohranjen je u 8 bajta i iznosi od  int (integer) koji iznosi od i pohranjen je u 4 bajta.  smallint – cijeli broj pohranjen u 2 bajta; vrijednost od  tinyint – podatak od 0 do 255  Decimalni  decimal ili numeric – vrijednosti od (pr. (11,2) gdje prvi broj (11) označava ukupan broj znamenki a drugi – broj decimalnih mjesta iza decimalne točke.  Novac  money – tip podataka isti kao i decimal. Razlika je u ispisu (pr. 1,245.127)  smallmoney – 4 bajtni novčani tip.  S pomičnim zarezom  float - tip podatka sa poičnim zarezom vrijednosti - 1.79E+308 to -2.23E-308 7
  • 11.  real - tip podatka s pomičnim zarezom vrijednosti - 3.40E + 38 to -1.18E - 38 Datum  datetime – datumski tip podataka razmjera od Siječanj 1, 1753, do Prosinac 31, 9999.  Smalldatetime 1. Siječanj 1900, do 6. Lipanj 2079.  Ostali datumski tipovi su: date, datetimeoffset, datetime2, time (uglavnom kod MS SQL-a) Niz znakova  Char (character) – znakovni niz npr. char (9). U bazi će ovaj podatak zauzimati 9 znakova bez obzira na unešenu duljinu što znači da može doći do skračenja unosa ili do nadopune. Maksimalna vrijednost je 8000 znakova.  Nchar (national char) – u njega se spremaju znakovi koji spadaju u Unicode. Maksimalna dužina je 4000 znakova.  Text – sprema tekstualne podatke. Može sadržavati 2,147,483,647 znakova.  Varchar – niz promjenjive dužine ( u bazu se sprema trenutna dužina podatka). Maksimalne dužine 8000 znakova. Binarni  Binary – binarni podatak maksimalne duljine 8000 bajtova  Varbinary – binarni podatak promjenjive dužine. Maksimalne dužine 8000 bajtova.  Image – binarni podatak primjenjive dužine, maksimalne dužine 2,147,483,647 bajtova. 8
  • 12. 4. Rad s SQL-om4.1. Kreiranje bazeDakle, SQL je jezik za stvaranje upita nad bazom podataka. No osim stvaranja upita, SQL jezadužen i za cjelokupno dizajniranje baze podataka. U relacijskom modelu baza to znači da jeSQL zadužen za stvaranje tablica, redova i stupaca u tablicama, indeksa itd. Bazu podataka bimogli definirati kao objekt koji sadrži tablice i druge objekte u kojima se spremaju i obrađujupodaci. Kako bi se kreirala baza podataka najčešće se koristi naredbaSinonim za ovu naredbu je iIza imena baze (sheme) mogu slijediti dodaci koji pomnije opisuju bazu koju zelimo stvoriti. Onise dodaju sa CREATE SPECIFICATION, a neki od dodatnih opisa baze mogu biti NAME(logičko ime baze podataka), FILENAME (ime i path datoteke baze podataka pod kojim onapostoji na tvrdom disku), SIZE (početna veličina datoteke za podatke u MB ili kB), MAXSIZE(najveća količina koju baza podataka smije automatski uzeti, može biti i UNLIMITED) itd. Oveopcije se ne mogu primjeniti u svim sustavima za upravljanje bazom podataka. Oni nisustandardizirani te njihovo postojanje varira od sustava do sustava.Tablica predstavlja dvodimenzionalne matrice čiji redovi predstavljaju naziv i svpjstva objekatapohranjenih u tablicu, a stupci svojstva objekata izražena odgovarajućim tipom podatka. Naredbakojom se kreira tablica glasi:Ukoliko želimo napraviti tablicu koja će se zvati npr. Korisnici u kojoj će stupci biti UserID,Username, Password, Ime, Prezime, DatumRodjenja, Telefon tada ćemo SQL sintaksom načinititablicu na slijedeći način: 9
  • 13. Na ovakav način SQL će kreirati tablicu sa nazivom Korisnici. Ta tablica će imati 7 stupaca i toredom: UserID, Username, Password, Ime, Prezime, GodinaUčlanjenja i telefon.. Iz ovogprimjera možemo vidjeti i jos neke dodatne naredbe koje smo koristili. To su NOT NULL(naredba koja ne dozvoljava da određeno polje bude prazno, tj. da na njemu ne bude upisanavrijednost) U našem slučaju username i password ne mogu biti prazna polja. PRIMARY KEYnam govori koji stupac će služiti kao primarni ključ. Primarni ključ je jedinstven za svaki redak ipo njemu se reci i razlikuju. Ta vrijednost također ne smije biti NULL.Naša tablica je prazna pa ćemo ju napuniti s podacima koje ćemo koristiti za upite. Unospodataka u tablice se vrši naredbom INSERT. Upis izgleda ovako:Kako bi unjeli podatke u prvu tablicu pišemo slijedeću naredbu:Ovim kodom smo u tablicu Korisnici unijeli vrijednosti u polja. Na isti način u tablicu možemododati još korisnika:Nakon što smo unijeli podatke u tablicu naša „baza“ izgleda otprilike ovako: Slika 1: Baza s podacima 10
  • 14. 4.2. Rad s podacima u baziNaredba SELECT koristi se za dohvaćanje (čitanje) podataka iz baze. Na našem konkretnomprimjeru, ukoliko bi htjeli ispisati imena svih korisnika to bi učinili na slijedeći način:Na ovaj način dobivamo sve zapise koji se nalaze u stupcu Ime u našoj tablici: Slika 4.2.1: Naredba SELECTNaredbom SELECT tako možemo dohvatiti i ostale stupce u abzi, ali također možemo ikombinirati i dobiti primjerice sva imena i sve brojeve telefona. Također željeli bismo i kolonupassword, ali je njen naziv na engleskom pa bi ga htjeli samo ovaj puta prikazati maloprikladnije. Kod za ono što želimo napraviti i rezultat toga bi bio slijedeći: Slika 4.2.2: SELECT u kombinaciji sa ASU prošlom primjeru smo stupac imena „password“ prikazali kao „sifra“ ali samo ovaj jedan puta.Kada bi htjeli izlistati cijelu tablicu ponovo vidjeli bi da se taj stupac i dalje zove „password“.Inače, cijela tablica se može vrlo lako izlistati bez nabrajanja svih stupaca i to na način: Slika 4.2.3: SELECT cijele tabliceSada kad znamo unositi podatke u tablicu i pregledavati ih po određenim poljima možemoučiniti nešto i da ih uredimo. Recimo da želimo sortirati prethodnu tablicu prema prezimenu i toobrnutim abecednim redoslijedom. Upit izgleda ovako: 11
  • 15. Slika 4.2.4: Sortiranje tablice po određenom stupcuNa isti način možemo sortirati podatke prema više polja. Također, primjetite da smo u prošlomprimjeru uzeli cijelu tablicu. To ne mora biti slučaj. Sortiranje je moguće vršiti samo nad nekimstupcima (npr. ispis imena i prezimena sortiran po imenu).Pretpostavimo sad da smo dobili zahtjev i da trebamo za određenog korisnika pronaći svepodatke (ili samo neke, postupak je isti). To ćemo napraviti na slijedeći način: Slika 4.2.5: SELECT sa uvjetomDakle, potrebno je koristiti ključnu riječ WHERE i onda navesti uvjet koji se mora ispuniti da biispisali određene podatke. U našem slučaju SELECT prolazi kroz bazu i za svaki red koji imausername = Jose32 ispisuje ime, prezime i telefon.Ponekad nam nije bitno samo koje podatke dobijemo od baze nego i koliko ih ima. U tu svrhunam služi naredba COUNT. Slika 4.2.6: naredba COUNTDa proširimo ovaj primjer sa nekim dodatnim uvjetom odgovor bi bio slijedeći: Slika 4.2.7: naredba COUNT sa uvjetomDakle, naša baza nam je vratila odgovor da postoje 2 retka u kojima je godinauclanjenja > 1973.A kad bi pogledali u nasu bazu mogli bi se uvjeriti da to i jest istina. 12
  • 16. U slijedećim primjerima ću prikazati kako se mogu spajati podaci iz više tablica, tj. kako sekombiniraju upiti nad više tablica. Za to će nam biti potrebna nova tablica. Nazvati ćemo jutekstovi. U toj tablici će se nalaziti UserID iz prve tablice te 2 nova stupa i to br_teksta inaziv_teksta. Na već ranije opisani način unosimo podatke u tablicu. Naša tablica izgleda ovako: Slika 4.2.8: Tablica tekstoviZa svaki UserID smo unijeli po nekoliko tekstova (br_teksta i naziv_teksta). Primjetite dakorisnik sa UserID == 3 ima 2 jednaka teksta u tablici. Kako rješiti taj problem, tj. kako učinitida nam baza ne ispisuje oba teksta ako su oni jednaki? Način je vrlo jednostavan, dodati ćemosamo još jednu ključnu riječ u naš upit, DISTINCT: Slika 4.2.9:naredba DISTINCTNa taj način smo iz rezultata izbacili duplikate.Uzmimo za primjer slijedeću situaciju. Želimo izlistati sve tekstove koje je pisao određenikorisnik, npr. Jose32. To ćemo učiniti uz pomoć ugnježđenih upita na slijedeći način: Slika 4.2.10: ugnježđeni upitOvakav način radi na način da se prvo izvršava „unutarnji“ upit, tj. prvo se traži userID odkorisnika sa korisničkim imenom Jose32. Nakon što baza pronađe njegov ID koji je u ovomslučaju jednak 2, prebacuje se na „vanjski“ upit te u tablici tekstovi traži one tekstove koje jenapisao netko sa userID 2. Rezultat su 2 teksta: „Pjesme I“ i „Pjesme II“. Na isti način možemo 13
  • 17. vidjeti tekstove koje su napisali 2 ili više korisnika te npr. dobiti broj tekstova koje je napisaoodređeni korisnik: Slika 4.2.11: ugnježđeni upit (2) Slika 4.2.12: Ugnježđeni upit (3)To bi bili ugnježđeni upiti. Dakle, načini na koji oni rade je već objašnjen i prilično jejednostavan i lak za shvaćanje. Postoje 2 (ili više) upita od kojih se prvo gleda onaj unutrašnji, itako sve do posljednjeg, „glavnog“ upita.Još je jedna stvar dosta zanimljiva, a to je spajanje tablica. Ono što želimo postići je da uz brojteksta i njegov naziv odmah vidimo i korisničko ime autora, kako bi bez dodatnog traženja moglidobiti svoj odgovor. Način na koji ćemo to napraviti je slijedeći: Slika 4.2.13: Spajanje rezultataOno što radimo u ovome upitu je odabir stupaca koji nas zanimaju iz tablica koje imamo uz uvjetda je userid iz jedne tablice jednak userid iz druge tablice. Dakle, za svaki tekst i broj tekstaautomatski dobijemo izlistano i korisničko ime osobe koja je taj tekst pisala. 14
  • 18. Naredba UPDATE je također korisna, a služi nam za ažuriranje podataka u bazi. Uzmimo npr.da želimo promjeniti username i password korisniku Arseniju. To ćemo napraviti sa ovimjednostavnim upitom: Slika 4.2.14: naredba UPDATENa kraju su nam ostale naredbe za brisanje. DROP i DELETE. Samo ime kaže da naredbaDELETE služi za brisanje podataka iz tablice. Recimo da želimo iz tablice tekstovi obrisati zapisčiji je userid = 1: Slika 4.2.15: naredba DELETENaredba DROP služi za brisanje cijele tablice. Sintaksa je prilično jednostavna: Slika 4.2.16: naredba DROPOvom naredbom smo prošli sve osnovne naredbe, a time i osnove SQL-a. Naredbe su jakojednostavne, i sama sintaksa jezika je jednostavna u što smo se mogli i uvjeriti kroz primjer. 15
  • 19. 5. Alternative SQL-uZa početak, trebam napraviti razliku između jezika za upite i SQL-a. SQL je jezik za upite, aalternative koje ću navesti ovdje su alternative za SQL, a ne za upitni jezik. Neke od alternativaza SQL su: .QL (dot-q-el) –objektno orjentirani jezik za upite također korišten u relacijskim bazama podataka. QL je ustvari OO (objektno orjentirana) varijanta logičkog programskog jezika Datalog koji je također jedna alternativa SQL-u. Upiti u .QL – u su optimizirani i također jednostavni. Najčešće korištenje ovog jezika je na način da se napiše upit koji se potom pretvori u SQL upit i tako se mođe izvoditi na većini baza i tablica. LINQ – je komponenta Microsoft .NET frameworka koja daje mogućnost stvaranja upita svim .NET jezicima (VB, C# ...). LINQ definira skupinu metoda i pravila prijenosa za podatke. Te metode i pravila koriste se kako bi se recimo podaci prenijeli i/ili filtrirali u npr. nizove, pobrojenja, XML itd. Također i postoji mogućnost pretvaranja LINQ-a u SQL. Query-by-example – je također upitni jezik za relacijske baze podataka. Razvijen u IBM-u 70-ih godina. On je prvi grafički upitni jezik, koristi vizualne tablice gdje bi korisnik unio naredbe, primjere ili uvjete a jezik bi to izvršio. Danas je QBE poddržan u nekoliko sustava za upravljanje bazama podataka posebice u Microsoft Accessu ali također i u Microsoft SQL Server Enterprise Manageru. 16
  • 20. 5. ZaključakSQL je upitni jezik koji se danas u velikoj većini koristi u svim sustavima za upravljanje bazamapodataka. Gotovo je nezamislivo danas održavati bazu ili se baviti nekim poslom s bazamapodataka a ne poznavati sintaksu i pravila SQL-a. Velika većina servera koji sadrže bazepodataka podržavaju SQL. Postoje i neke alternative, ali one se rijetko koriste. A čak ako se ikoriste, svaka od njih ima i mogućnost prevođenja u SQL. SQL je jednostavno standard za bazepodataka.U ovom seminarskom radu sam prikazao osnove SQL-a. Pokazao sam na koji način se stvaratablica te kako se obavljaju osnovne operacije nad elementima tablice. Naravno, ovo je bio samouvod u SQL. Postoji još mnoštvo drugih naredbi i mogućnosti osim ovih ovdje spomenutih. Ali otome nekom drugom prilikom. 17
  • 21. Literatura1. SQL, članak dostupan na http://en.wikipedia.org/wiki/SQL2. SQL tutorial, dostupno na http://www.w3schools.com/sql/default.asp3. Query by example, dostupno na http://en.wikipedia.org/wiki/Query_by_Example4. .QL, dostupno na http://en.wikipedia.org/wiki/.QL5. LINQ, dostupno na http://en.wikipedia.org/wiki/Language_Integrated_Query6. Uvod u SQL, dostupno na http://www.bhwebmasters.net/wp-content/uploads/2009/01/sql_new.pdf7. SQl tutorial, dostupno na http://www.riteh.uniri.hr/zav_katd_sluz/zr/nastava/bp/download/vjezbe/SQL_tutorial.pdf8. Pavlović – Lažetić, Gordana: „Uvod u relacione baze podataka“ , dostupno nahttp://download.tutoriali.org/Tutorials/Baze_podataka/Uvod_u_relacione_baze_podataka.pdf 18