110 likes | 384 Views
OSNOVE SQL JEZIKA. Da bi smo mogli da napišemo bilo kakav program ili web sajt koji pristupa bazi podataka neophodno je da upoznamo jezik kojim se manipuliše podacima bazepodataka . U pitanju je jezik pod nazivom SQL (eng. Structured Query Lan-guage) odnosno
E N D
Da bismomogli da napišemo bilo kakav program ili web sajt koji pristupa bazipodataka neophodno je da upoznamo jezik kojim se manipuliše podacima bazepodataka. • U pitanju je jezik pod nazivom SQL (eng. Structured Query Lan-guage)odnosno struktuiranijezik zazadavanje upita. • Ponegde se SQL akronim interpetirao i "Standard Query Language" odnosno standardni jezik za zadavanje upita. • SQL jezik je standardni jezik koji je predstavljen ranih 1970-tih i od tada jedoživeo nekoliko standardizacija od kojih je poslednja bila 1999, a nakon nje jošnekoliko revizija. • Dobra stvar kod standardizacije SQL jezika je što jednom naučen može bitiprimenjen na bazama podataka različitih proizvođača. • Da ne bi sve bilo idealno, upraksi možete računati da predhodna tvrdnja nije potpuno tačna, jer svaki proizvođačuvodi nove mogućnosti koje manje ili više odstupaju od standarda
TIPOVI SQL UPITA SQL upiti se po svojoj funkciji mogu podeliti na sledeće grupe: • DML (eng. Data Manipulation Language), jezik za manipulaciju podataka. Ovugrupu ćemo detaljnije proučiti jer se odnosi na pregled, dodavanje, izmenu ibrisanje podataka. • DDL (eng. Data Definition Language) pomoću koga se kreiraju, menjaju i brišuobjekti u bazi podataka. Pomoću njih možemo kreirati tabele, odrediti nazive itipove podatka, definisati primarni ključ tabele i slično. • DCL (eng. Data Control Language) jezik za kontrolu podataka pomoću kogase određuje koji korisnik šta sme da radi sa podacima. • Na primer, možeteodređenim korisnicima datipravo da samo pregledaju podatke, a nekim i da ihmenjaju
Data Manipulation Language Prikazpodatakaizbaze se dobijapomoćuSELECTnaredbe. OsnovasintaksnastrukturaSELECT naredbe je veomajednostavna: • SELECTnazivikolonaFROMnazivtabele Nazivikolonasurazdvojenizarezom, a posleFROMslužbenereči se upisujeimetabele. Navedenaimenakolonamorajupostojati u tabeli, u suprotnomdobićemoporukuda je došlo do greške. U bazi Automobili , u opciji Create Query, SQL view Upisati naredbu: SELECT model From automobili; Pokrenuti upit (Run)
Akoželiteda prikažetesvekoloneiztabele, možetekoristitidžokerznak SELECT*FROM automobili; • U praksi je često potrebno da se podaci prikažu po određenom redosledu.Redosled može biti po jednoj ili više kolona. Ako bi rezultat upitaželeli da složimopo proizvođačui to odApa na dalje koristimo ORDER BYklauzulu: SELECT proizvodjac,model,cena FROM automobili ORDER BY proizvodjac;
ASC je skraćeno od Ascending(rastućiniz). Može se koristitiiDESC–Descending, odnosnoopadajućinizgde se sortiranjeobavlja od većegkamanjem. • Kodvećinebazapodataka ASC je podrazumevanavrednosti ne mora se eksplicitnonavoditi. • Napisaćemoupitkojićesortiratipodvekolone: prvopokolonimodel porastućem, a zatimpokoloniproizvođač poopadajućemredosledu. SELECTproizvodjac,model,cenaFROMautomobiliORDER BY model,proizvodjacDESC;
USLOVI U UPITIMA • U praktičnom radu gotovo nikad nam ne treba prikaz svih podataka iz jednetabele. • U tom smislu, postoje dva termina:vertikalniihorizontalni filter. • Vertikalni filter znači da ne prikazujemo sve kolone iz tabele, već samo one kojenam zaista trebaju. • Na primer,želite videti samo šifru i naziv kompanije i nikakvedruge podatke. Ovo se implementira jednostavno tako što u SELECT listi navedetesamo potrebna polja. • Horizontalni filter znači da ne želite da vidite sve slogove (redove) iz tabele.Naprimer,želite da vidite samo modeleza zadatogprozvođača. • Ovo se postiže pomoćuWHEREnaredbe u kojoj se definiše jedan ili više kriterijuma koji moraju biti ispunjeni da bi seslog prikazao. WHERE naredba (još se zove klauzula) je veoma sličnaifnaredbi uprogramskim jezicima. • Moguće je zadati više kriterijuma koji se međusobno povezuju ORiANDoperatorima.
SELECTproizvodjac,model,cenaFROMautomobiliWHERE cena > 10000; SELECT proizvodjac,model,cena FROM automobili WHERE cena > 10000 and cena <12000;