Home FORUM Toplista HTML CSS JavaScript PHP DIZAJN SEO Mapa |
![]() |
![]() |
![]() |
![]() |
![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SELECT sa WHERE uslovomKada nam nisu potrebni podaci iz svih redova već samo iz nekih onda koristimo WHERE uslov kao dodatak SELECT iskazu. Na primer evo kako bi izgledao upit da trazimo podatke iz tabele Korisnici samo iz jednog reda a iz svih kolina:
Normalno, ako nam nisu potrebni podaci iz svih kolona mi navedemo umesto zvezdice kolone koje nas zanimaju. Obratite pažnju da se SQL razlikuje od PHP-a! Zato je u SQL znak jednakosti baš to znak jednakosti, pa se piše " = ". Pored znaka jednakosti u WHERE uslovu mogu da se nadju svi operatori poredjenja i regularnih izraza. One koji se najčešće koriste daćemo tabelarno. Napomenimo da nije ovo kompletan spisak ali sadrži najupotrebljavanije operatore.
Možete da proverite više kriterijuma i da ih povežete logičkim operaterima AND i / ili OR, na primer:
Ovim SELECT upitom smo definisali da želimo isčitati sve podatke iz redova 3, 4 i 5 tabele Korisnici. Varijante i mogućnosti SELECT iskaza u kombinaciji sa WHERE uslovima su jako velike zbog operatora poredjenja i regularnih izraza. Često puta su nam potrebni podaci iz više tabela da bi smo odgovorili na neka pitanja. Tako ako želimo da znamo koje knjige i količine je odredjeni kupac naručio u odredjenom periodu vremena moramo potražiti odredjene podatke iz tabela Korisnici i Narudzbine za tog konkretnog kupca. Dakle trebamo spojiti dve tabele u jednu nazovi fiktivnu tabelu ali tako da podaci odredjenog kupca iz jedne tabele odgovaraju podacima tog kupca u drugoj tabeli. Zato služe primarni i sekundarni ključevi. Zapravo kao uslov za spajanje dve tabele biće podudaranje vrednosti primarnog i sekundarnog ključa. Vratimo se sada našem primeru. Te podatke možemo pribaviti pojedinačno korišćenjem dva SQL upita ali je ekonomičnije, preglednije i duplo brže ako koristimo jedan SQL upit. Kolone koje nas interesuju iz tabele Korisnici je KorisnikID a iz tabele Narudzbine su Količina i Datum. Upit bi mogo da izgleda ovako:
Pošto u SELECT upitu koristimo dve tabele poželjno je gde god stoji ime neke kolone postaviti ispred imena te kolone spojeno tačkom i ime tabele u koju se nalazi ta kolona zbog preglednosti, a obavezno je kod kolona koje se nalaze u obe tabele. Sa uslovom Korisnici.Ime = 'Pera Mitic' mi smo odredili koji nam je redak u tabelama potreban. Obzirom da kolona Ime postoji samo u tabeli Korisnici moglismo napisati samo Ime = 'Pera Mitic' ali preglednije je kad stoji informacija i iz koje je tabele. Moglismo staviti i na primer Korisnici.KorisnikID = 3, ali sve zavisi koji podatak posedujemo. Uslovom Korisnici.KorisnikID = Narudzbine.KorisnikID upravo obezbedjujemo da se podaci za tačno odredjenog kupca iz jedne tabele podudare sa podacima za tog istog kupca i u drugoj tabeli da ne bi došlo do toga da spajamo redak kupca na primer "Milan" iz kolone Ime u tabeli Korisnici sa podacima redtka korisnika "Goran" vezano za naručene knjige. Pošto je kolina KorisnikID primaran ključ u tabeli Korisnici i sekundaran ključ u tabeli Narudzbine zato je ovo uslov spajanja ove dve tabele ! Spajanje više od dve tabele takodje nije mnogo složenije treba samo pratiti primarne i sekundarne ključeve od tabele do tabele. Primera radi ako želimo da znamo koji kupci su naručivali knjige o programskom jeziku "java" (na primer zato što je izašlo novo izdanje iz te oblasti pa želimo da ih obavestimo) treba da analiziramo odnose izmedju više tabela. Znači potrebno je naći iz tabele Kupci one sa bar jednom porudžbinom knjige iz tabele Narucene_Knjige iz oblasti "java". Da bi ste od tabele Korisnici stigli do tabele Narudzbine upotrebite ključ KorisniciID. Da bi ste od tabele Narudzbine stigli do tabele Naručene_Knjige upotrebićete ključ NarudzbineID. Da bi ste od Naručene knjige stigli do konkretne knjige u tabeli Knjige upotrebite ključ ISBN. Pošto uspostavite sve te veze, proverite da li se u naslovima nalazi reč java i sačuvajte imena u kojima se nalazi. Znači upit ima sledeći oblik:
Povezali smo podatke iz četri tabele pomoću tri ključa uslova spajanja. Najčešće je za spajanje dve tabele potreban jedan uslov i zato je ukupan minimalni broj uslova za jedan manji od ukupnog broja tabela. To pravilo može biti korisno pri nalaženju grešaka u upitima koji ne funkcionišu pravilno. Evo još jednog primera, trebamo naći kupce koji nikad nisu ništa naručili. Evo upita:
Često je potrebno, a po nekad i neizbežno, tabele nazivati drugim imenima. Ta druga imena su alijasi. Alijasi su neophodni kad trebamo spojiti tabelu sa samom sobom. Na primer želimo da nadjem parove korisnika koji žive u istim gradovima (na primer želimo da napravimo klubove čitalaca iz istih gradova). Znamo da se kolone Ime i Grad nalaze u istoj tabeli pod nazivom Korisnici. Upit bi izgledao na sledeći način:
Ovde zapravo stvaramo dve fiktivne tabele c1 i c2 od jedne "Korisnici" iskazom AS. Uslov za spajanje je da Gradovi budu isti a drugi uslov c1.Ime != c2.Ime obezbedjuje da ne sparujemo kupca sa samim sobom. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Copyright © 2010 BUbaj. Powered By bubaj.com |
PHP PHP sintaksa Fajl Niz String Funkcija Objektno programiranje MySQL Unos fajla Datum Forme Sesija Registracija |