SQL upiti/ selekcija
Ponavljanje što je baza podataka, a što SUBP? što je entitet, a što atribut? kako izgleda relacijski model baze podataka? koje vrste veza postoje? koji su osnovni tipovi podataka u Accessu? što je SQL? kako glase naredbe za kreiranje baze i tablica u SQL-u?
SELECT naredba SELECT lista FROM tablice WHERE condition GROUP BY group_list HAVING condition ORDER BY column_name [ASC DESC] INTO TEMP table_name
kreirajmo tablicu prijatelj: CREATE TABLE prijatelj ( IDprijatelja INTEGER NOT NULL, ime VARCHAR(40) NOT NULL, prezime VARCHAR(40) NOT NULL, adresa VARCHAR(40), mobitel VARCHAR(10), prosjek INTEGER, email VARCHAR(50), rodjendan DATE, najdraza_pjesma VARCHAR(40), najdraza_boja VARCHAR(40), najdraze_jelo VARCHAR(40), najdrazi_film VARCHAR(40) PRIMARY KEY (IDprijatelja) );
selektiramo sve podatke iz tablice prijatelj čije ime je Frendić: SELECT * FROM prijatelj WHERE ime= Frendić ; selektiramo ime, adresu iz tablice prijatelj gdje ime počinje na slovo A ili B ili na Frend SELECT ime, adresa FROM prijatelj WHERE ime LIKE (A B)% OR ime LIKE Frend% ;
selektiramo ime, email iz tablice prijatelj za prijatelje mlañe od 31.09.2003 SELECT ime,email FROM prijatelj WHERE rodjendan > 2003-09-31 ; selektiramo sve podatke o prijateljima koji se zovu Ivan ili Marko ili Luka SELECT * FROM prijatelj WHERE ime IN ( Ivan, Marko, Luka );
GROUP BY grupiranje rezultata prema nekom svojstvu svojstvo prema kojem se grupira mora biti sadržano u ispisu rezultata tj. u SELECT djelu SELECT ime, adresa, rodjendan FROM prijatelj GROUP BY rodjendan
ORDER BY definira se poredak ispisa podataka. Struktura je: ORDER BY <atribut 1>, <atribut 2>,... uzlazno ASC, silazno DESC. ORDER BY ime; ORDER BY ime,godina DESC; ORDER BY godina DESC, ime ASC;
za vježbu: 1. ispišite sve prijatelje koji su roñeni nakon 1.1.1980, grupiraj prema imenu 2. ispiši ime,adresu i email prijatelja kojima je najdraža boja plava, crvena ili žuta, poredaj prema imenu uzlazno 3. ispiši ime prijatelja čija adresa sadržava Velika Gorica grupiraj i poredaj silazno
1. select * from prijatelj where rodjendan> 1980-1-1 group by ime; 2. select ime, adresa,email from prijatelj where najdraza boja IN ( crvena, plava, žuta ) order by ime ASC; 3. select ime from prijatelj where adresa LIKE %Velika Gorica% group by ime order by ime DESC;
Agregatne funkcije count(*) broj n-torki count (distinct x) broj n-torki s različitim vrijednostima x-a SUM (x) - suma vrijednosti od x-a AVG (x) prosječna vrijednost od x-a MAX (x) maksimum od x-a MIN (x) minimum od x-a u svim funkcijama DISTINCT označava različite vrijednosti x-a
Agregatne funkcije mogu se koristiti u SELECT dijelu, ali ne i u WHERE dijelu SELECT naredbe SELECT COUNT(*), COUNT (DISTINCT ime) FROM prijatelj
ZADATAK ispiši broj različitih rodjendana prijatelja ispiši sumu prosjeka prijatelja kojima je najdraži film Psycho ispiši prosjek različitih prosjeka prijatelja ispiši maksimalni prosjek prijatelja
Having postavljanje uvjeta nad grupom zapisa smiju se koristiti samo izrazi koji se nalaze u GROUP BY i agregatne funkcije select ime, count(*) from prijatelj where prosjek > 4.0 group by ime having count(*) > 2
Spajanje tablica ili JOIN podaci se iz više tablica izabiru tako da se u svakom upitu ili selekciji postavlja pravilo spajanja: tablica1.primarni ključ=tablica2.strani ključ
Zadatak: ispisati imena rase sa planeta Mars select rasa.naziv from rasa, planet where planet.naziv= Mars AND planet.planetid=rasa.planetid; ispisati imena planeta iz Sunčevog sustava select planet.naziv from planet,sustav where sustav.naziv= Sunčev sustav AND sustav.sustavid=planet.sustavid;
ispisati imena rasa sa svih planeta u Sunčevom sustavu select rasa.naziv from rasa, planet,sustav where sustav.naziv= Sunčev sustav AND rasa.planetid=planet.planetid AND planet.sustavid=sustav.sustavid;