Povezovanje tabel T heta stik na osnovi zunanjega povezovanja

21
1 Povezovanje tabel Povezovanje tabel T T heta stik na osnovi zunanjega heta stik na osnovi zunanjega povezovanja povezovanja 1. 1. Notranje povezovanje (INNER JOIN) Notranje povezovanje (INNER JOIN) poveže tiste vrstice prve in druge tabele, ki poveže tiste vrstice prve in druge tabele, ki ustrezajo pogoju (pri katerih je vrednost skupnega ustrezajo pogoju (pri katerih je vrednost skupnega atributa(ov) enaka) atributa(ov) enaka) 2. 2. Zunanje povezovanje omogoča povezovanje Zunanje povezovanje omogoča povezovanje Vseh vrstic prve tabele z ustreznimi vrsticami Vseh vrstic prve tabele z ustreznimi vrsticami druge tabele (LEFT OUTER JOIN) druge tabele (LEFT OUTER JOIN) če za nek zapis prve tabele ni ustreznega v drugi tabeli, so če za nek zapis prve tabele ni ustreznega v drugi tabeli, so vrednosti atributov druge tabele NULL (RIGHT OUTER JOIN) vrednosti atributov druge tabele NULL (RIGHT OUTER JOIN) Vseh vrstic druge tabele z ustreznimi vrsticami Vseh vrstic druge tabele z ustreznimi vrsticami prve tabele prve tabele če za nek zapis druge tabele ni ustreznega v prvi tabeli, so če za nek zapis druge tabele ni ustreznega v prvi tabeli, so vrednosti atributov prve tabele NULL vrednosti atributov prve tabele NULL Vseh vrstic prve in druge tabele (FULL OUTER JOIN) Vseh vrstic prve in druge tabele (FULL OUTER JOIN) pri zapisih, ki nimajo ustreznega v drugi tabeli so pri zapisih, ki nimajo ustreznega v drugi tabeli so vrednosti atributov le-teh NULL vrednosti atributov le-teh NULL

description

Povezovanje tabel T heta stik na osnovi zunanjega povezovanja. Notranje povezovanje (INNER JOIN) poveže tiste vrstice prve in druge tabele, ki ustrezajo pogoju (pri katerih je vrednost skupnega atributa(ov) enaka) Zunanje povezovanje omogoča povezovanje - PowerPoint PPT Presentation

Transcript of Povezovanje tabel T heta stik na osnovi zunanjega povezovanja

Page 1: Povezovanje tabel  T heta stik na osnovi zunanjega povezovanja

11

Povezovanje tabel Povezovanje tabel TTheta stik na osnovi zunanjega povezovanjaheta stik na osnovi zunanjega povezovanja

1.1. Notranje povezovanje (INNER JOIN)Notranje povezovanje (INNER JOIN) poveže tiste vrstice prve in druge tabele, ki ustrezajo pogoju poveže tiste vrstice prve in druge tabele, ki ustrezajo pogoju

(pri katerih je vrednost skupnega atributa(ov) enaka)(pri katerih je vrednost skupnega atributa(ov) enaka)

2.2. Zunanje povezovanje omogoča povezovanjeZunanje povezovanje omogoča povezovanje Vseh vrstic prve tabele z ustreznimi vrsticami druge tabele Vseh vrstic prve tabele z ustreznimi vrsticami druge tabele

(LEFT OUTER JOIN)(LEFT OUTER JOIN) če za nek zapis prve tabele ni ustreznega v drugi tabeli, so vrednosti če za nek zapis prve tabele ni ustreznega v drugi tabeli, so vrednosti

atributov druge tabele NULL (RIGHT OUTER JOIN)atributov druge tabele NULL (RIGHT OUTER JOIN) Vseh vrstic druge tabele z ustreznimi vrsticami prve tabeleVseh vrstic druge tabele z ustreznimi vrsticami prve tabele

če za nek zapis druge tabele ni ustreznega v prvi tabeli, so vrednosti če za nek zapis druge tabele ni ustreznega v prvi tabeli, so vrednosti atributov prve tabele NULLatributov prve tabele NULL

Vseh vrstic prve in druge tabele (FULL OUTER JOIN)Vseh vrstic prve in druge tabele (FULL OUTER JOIN) pri zapisih, ki nimajo ustreznega v drugi tabeli so vrednosti atributov le-teh pri zapisih, ki nimajo ustreznega v drugi tabeli so vrednosti atributov le-teh

NULLNULL

Page 2: Povezovanje tabel  T heta stik na osnovi zunanjega povezovanja

22

Povezovanje tabel Povezovanje tabel TTheta stik na osnovi zunanjega heta stik na osnovi zunanjega

povezovanja povezovanja (nad.)(nad.)

SintaksaSintaksaSELECT atributiSELECT atributiFROM tabela1 LEFT | RIGHT | FULL [OUTER] JOIN tabela2 ON pogoj;FROM tabela1 LEFT | RIGHT | FULL [OUTER] JOIN tabela2 ON pogoj;

Primer: Primer: izpišite seznam vseh dijakov, in šifre krožkov, ki jih obiskujejo:izpišite seznam vseh dijakov, in šifre krožkov, ki jih obiskujejo:SELECT Dijak.Priimek, Dijak.Ime, Obiskuje.IDKrozekSELECT Dijak.Priimek, Dijak.Ime, Obiskuje.IDKrozekFROM Dijak LEFT JOIN Obiskuje ON FROM Dijak LEFT JOIN Obiskuje ON Dijak.IDDijak=Obiskuje.IDDijak;Dijak.IDDijak=Obiskuje.IDDijak;

Priimek Ime IDKrozek

ŠTUPAR Andrej G01

MLINAR Mateja

DOLENC Mitja R01

DOLENC Mitja G02

VERK Maria G01

ŽAVBI Jana R01

ŽAVBI Jana R02

Dijak, ki ne obiskuje nobenega krožka

Page 3: Povezovanje tabel  T heta stik na osnovi zunanjega povezovanja

33

Povezovanje tabel - zunanje povezovanjPovezovanje tabel - zunanje povezovanje e (2. primer)(2. primer) Student (Student (sifrassifras,imes,priimeks,letnik),imes,priimeks,letnik) Izpit (Izpit (sifras,predmet,datumsifras,predmet,datum,ocena),ocena)

StudentStudent IzpitIzpit

sifrassifras imesimes priimekspriimeks letnikletnik sifrassifras predmetpredmet datumdatum ocenaocena

100100 JureJure NovakNovak 22 100100 MATMAT 13.1.0513.1.05 99

200200 JanJan NovakNovak 11 100100 FIZFIZ 20.2.0620.2.06 99

300300 FranciFranci LumpLump 11 300300 MATMAT 20.1.0520.1.05 77

400400 MickaMicka ŽolnaŽolna 11 500500 MATMAT 20.1.0520.1.05 1010

500500 LeaLea KraljKralj 11 500500 FIZFIZ 18.1.0518.1.05 1010

SELECT s.imes,i.predmetFROM student s LEFT OUTER JOIN izpit i ON s.sifras=i.sifrasaliSELECT s.imes,i.predmetFROM izpit i RIGHT OUTER JOIN student s ON i.sifras=s.sifras

imesimes predmetpredmet

JureJure MATMAT

JureJure FIZFIZ

JanJan

FranciFranci MATMAT

MickaMicka

LeaLea MATMAT

LeaLea FIZFIZ

Page 4: Povezovanje tabel  T heta stik na osnovi zunanjega povezovanja

44

SQL – vgrajene funkcijeSQL – vgrajene funkcije

(opomba: odvisne od SUPB-ja oz. implementacije SQL-a)(opomba: odvisne od SUPB-ja oz. implementacije SQL-a) 1. agregirane funkcije1. agregirane funkcije

1.1. MIN, MAX // najmanjša, največja vrednostMIN, MAX // najmanjša, največja vrednost2.2. COUNT // PREštejeCOUNT // PREšteje3.3. SUM // SEštejeSUM // SEšteje4.4. AVG // računa povprečjeAVG // računa povprečje

2. funkcije za delo z nizi znakov2. funkcije za delo z nizi znakov1.1. konkatenacijakonkatenacija2.2. male/velike črkemale/velike črke3.3. podniz nizapodniz niza

3. funkcije za konverzijo3. funkcije za konverzijo– pretvorbe med tipipretvorbe med tipi– izločanje dela datumske vrednostiizločanje dela datumske vrednosti

Page 5: Povezovanje tabel  T heta stik na osnovi zunanjega povezovanja

55

Uporaba agregiranih funkcijUporaba agregiranih funkcij

SamostojnaSamostojna agregirana funkcija se izvede agregirana funkcija se izvede

nad vsemi vrsticami tabelenad vsemi vrsticami tabele

SELECT AGR_FUNKCIJA(atribut)SELECT AGR_FUNKCIJA(atribut)

FROM tabela;FROM tabela;

Z združevanjemZ združevanjem Pred izvedbo agregirane funkcije Pred izvedbo agregirane funkcije

se vrstice tabele združijo glede na se vrstice tabele združijo glede na pogojpogoj

Agregirana funkcija se za vsako Agregirana funkcija se za vsako skupino vrstic izvede posebejskupino vrstic izvede posebej

SELECT AGR_FUNKCIJA(atribut) [,atrx]SELECT AGR_FUNKCIJA(atribut) [,atrx]

FROM tabelaFROM tabela

GROUP BY atrx;GROUP BY atrx;

Agregirane funkcije ignorirajo vrednost NULL!

Page 6: Povezovanje tabel  T heta stik na osnovi zunanjega povezovanja

66

Agregirane funkcijeAgregirane funkcije1.1. min, max1.1. min, max

IDDijak Priimek Ime Razred Rojen

10191 ŠTUPAR Andrej G2A 15.10.1980

10205 MLINAR Mateja G2A 15.11.1985

10301 DOLENC Mitja G2A 15.12.1990

10305 VERK Maria G2C 15.12.1987

10309 ŽAVBI Jana G2B 15.10.1987

10310 JUH Polona G2C 15.10.1980

10320 DOLHAR Andrej G2A 15.10.1980

10330 AMBROŽIČ Jure G2A 15.3.1980

10432 DOLINAR Janez G2B 15.4.1980

10435 MAZI Jernej G2C 15.5.1980

10444 KOŽELJ Jure G2B 13.10.1980

10455 NOVAK Miha G2B 15.10.1980

10666 GREGORIČ Gregor G2B 15.10.1980

10777 POŽAR Anže G2C 10.4.1980

10873 LAVRIH Žiga G2C 15.1.1980

10920 ARHAR Jure G2B 15.2.1980

Izpišite priimek dijaka, ki je prvi po abecedi:SELECT MIN(Priimek)FROM Dijak;

Za vsak razred izpišite priimek dijaka, ki je prvi po abecedi:SELECT Razred, MIN(Priimek)FROM DijakGROUP BY Razred;

prvi

Ambrožič

Razred MinodPriimek

G2A Ambrožič

G2B Arhar

G2C Juh

Page 7: Povezovanje tabel  T heta stik na osnovi zunanjega povezovanja

77

Agregirane funkcijeAgregirane funkcije1.2. count1.2. count

IDDijak Priimek Ime Razred Rojen

10191 ŠTUPAR Andrej G2A 15.10.1980

10205 MLINAR Mateja G2A 15.11.1985

10301 DOLENC Mitja G2A 15.12.1990

10305 VERK Maria G2C 15.12.1987

10309 ŽAVBI Jana G2B 15.10.1987

10310 JUH Polona G2C 15.10.1980

10320 DOLHAR Andrej G2A 15.10.1980

10330 AMBROŽIČ Jure G2A 15.3.1980

10432 DOLINAR Janez G2B 15.4.1980

10435 MAZI Jernej G2C 15.5.1980

10444 KOŽELJ Jure G2B 13.10.1980

10455 NOVAK Miha G2B 15.10.1980

10666 GREGORIČ Gregor G2B 15.10.1980

10777 POŽAR Anže G2C 10.4.1980

10873 LAVRIH Žiga G2C 15.1.1980

10920 ARHAR Jure G2B 15.2.1980

Izpišite koliko dijakov je v tabeli DijakSELECT COUNT(IDDIjak)FROM Dijak;aliSELECT COUNT(*)FROM Dijak;

Izpišite število dijakov po razredih:SELECT Razred, COUNT(IDDijak)FROM DijakGROUP BY Razred;

Izr1

16

Razred ŠtetjeodIDDijak

G2A 5

G2B 6

G2C 5

Page 8: Povezovanje tabel  T heta stik na osnovi zunanjega povezovanja

88

Agregirane funkcijeAgregirane funkcije1.3. sum in 1.4. avg1.3. sum in 1.4. avg

Izpišite povprečno ceno knjigSELECT Avg(Book.Price) AS PovpCenaFROM Book;

Izpišite vrednost knjig po kategorijah (type):SELECT Book.Type, Sum(Book.Price) AS VsotaodPriceFROM BookGROUP BY Book.Type;

BookCode Title PublisherCode Type Price Paperback

0180 A Deepness in the Sky TB SFI 7,19 Da

0189 Magic Terror FA HOR 7,99 Da

0200 The Stranger VB FIC 8,00 Da

0378 Venice SS ART 24,50 Ne

079X Second Wind PU MYS 24,95 Ne

0808 The Edge JP MYS 6,99 Da

1351 Dreamcatcher: A Novel SC HOR 19,60 Ne

1382 Treasure Chests TA ART 24,46 Ne

138X Beloved PL FIC 12,95 Da

2226 Harry Potter and the Prisoner of Azkaban

ST SFI 13,96 Ne

2281 Van Gogh and Gauguin WP ART 21,00 Ne

2766 Of Mice and Men PE FIC 6,95 Da

2908 Electric Light FS POE 14,00 Ne

3350 Group: Six People in Search of a Life

BP PSY 10,40 Da

3743 Nine Stories LB FIC 5,99 Da

PovpCena

13,928666667

Type VsotaodPrice

ART 69,96

FIC 33,89

HOR 27,59

MYS 31,94

POE 14

PSY 10,4

SFI 21,15

// dela le za numerične podatke

Page 9: Povezovanje tabel  T heta stik na osnovi zunanjega povezovanja

99

Pogoji, ki se nanašajo na Pogoji, ki se nanašajo na vrednosti agregiranih funkcijvrednosti agregiranih funkcij

Stavek SELECT ima 2 tipa pogojev:Stavek SELECT ima 2 tipa pogojev:– Pogoji, ki se nanašajo na vrednosti atributov – zapišemo jih Pogoji, ki se nanašajo na vrednosti atributov – zapišemo jih

za WHEREza WHERE– Pogoji, ki se nanašajo na vrednosti agregiranih funkcij – Pogoji, ki se nanašajo na vrednosti agregiranih funkcij –

zapišemo jih za HAVINGzapišemo jih za HAVING– Razlika med WHERE in HAVING: Razlika med WHERE in HAVING:

WHERE filtrira podatke, ki bodo agregirani in ne stolpec, ki ga dobimo kot rezultat WHERE filtrira podatke, ki bodo agregirani in ne stolpec, ki ga dobimo kot rezultat agregiranje funkcije; agregiranje funkcije;

HAVING filtrira vrstice po izvedbi agregirane funkcije in se sklicuje ravno na HAVING filtrira vrstice po izvedbi agregirane funkcije in se sklicuje ravno na stolpec, ki je rezultat funkcije. stolpec, ki je rezultat funkcije.

Primer: izpišite kategorije knjig, ki imajo nadpovprečno cenoPrimer: izpišite kategorije knjig, ki imajo nadpovprečno cenoSELECT Book.Type, Avg(Book.Price) AS PovprečjeodPriceSELECT Book.Type, Avg(Book.Price) AS PovprečjeodPriceFROM BookFROM BookGROUP BY Book.TypeGROUP BY Book.TypeHAVINGHAVING (((Avg(Book.Price))>(select avg(Book.price) From Book))); (((Avg(Book.Price))>(select avg(Book.price) From Book)));

Page 10: Povezovanje tabel  T heta stik na osnovi zunanjega povezovanja

1010

Osnovne funkcije za delo z niziOsnovne funkcije za delo z nizi2.1. združevanje nizov (konkatenacija)2.1. združevanje nizov (konkatenacija)

SQL92 – operator ||SQL92 – operator || MS Access – operator &MS Access – operator & mySQL – funkcija CONCATmySQL – funkcija CONCAT

Izpišite priimke in imena dijakov, ločene z vejicoSQL92SELECT Dijak.Priimek || ‘, ‘ || Dijak.Ime AS KandidatFROM Dijak;

AccessSELECT Dijak.Priimek & ‘, ‘ & Dijak.Ime AS KandidatFROM Dijak;

mySQLSELECT CONCAT(Dijak.Priimek,’, ‘,Dijak.Ime) AS KandidatFROM Dijak;

Kandidat

Štupar, Andrej

Mlinar, Mateja

Dolenc, Mitja

Dolhar, Andrej

Ambrožič, Jure

Page 11: Povezovanje tabel  T heta stik na osnovi zunanjega povezovanja

1111

Osnovne funkcije za delo z niziOsnovne funkcije za delo z nizi2.2. male/velike črke2.2. male/velike črke

SQL92 – funkcija LOWER(atr) | UPPER(atr) SQL92 – funkcija LOWER(atr) | UPPER(atr) MS Access – funkcija LCase(atr) | UCase(atr)MS Access – funkcija LCase(atr) | UCase(atr) mySQL – dela oboje: LOWER(atr) / LCase(atr) | mySQL – dela oboje: LOWER(atr) / LCase(atr) |

UPPER(atr) / UCase(atr)UPPER(atr) / UCase(atr)Izpišite razrede za malimi črkami in priimke dijakov z velikimi.SQL92SELECT LOWER(Dijak.Razred) AS Razred, UPPER(Dijak.Priimek) As Priimek FROM Dijak;AccessSELECT LCase(Dijak.Razred) AS Razred, UCase(Dijak.Priimek) AS PriimekFROM Dijak;

Razred Priimek

g2a ŠTUPAR

g2c MAZI

g2a MLINAR

g2c VERK

g2b ŽAVBI

Page 12: Povezovanje tabel  T heta stik na osnovi zunanjega povezovanja

1212

Osnovne funkcije za delo z niziOsnovne funkcije za delo z nizi2.3. podniz niza2.3. podniz niza

SQL92 – funkcija SUBSTR (atr FROM pozicija FOR SQL92 – funkcija SUBSTR (atr FROM pozicija FOR dolžina) dolžina)

MS Access – Left(atr,dolžina) | Right(atr,dolžina) | MS Access – Left(atr,dolžina) | Right(atr,dolžina) | Mid(atr,začetek,dolžina)Mid(atr,začetek,dolžina)

mySQL – upošteva standard SQL92mySQL – upošteva standard SQL92Izpišite začetnico imena, piko in priimek dijaka kot en niz.SQL92SELECT SUBSTR(Dijak.Ime FROM 1 FOR 1) || ‘. ‘ || Dijak.Priimek As KandidatFROM Dijak;

AccessSELECT Left(Dijak.Ime,1) & ‘. ‘ & Dijak.Priimek AS KandidatFROM Dijak;

Kandidat

A.Štupar

J.Mazi

M.Mlinar

M.Verk

J.Žavbi

Page 13: Povezovanje tabel  T heta stik na osnovi zunanjega povezovanja

1313

Funkcije za konverzijoFunkcije za konverzijo3.1. pretvorbe med tipi3.1. pretvorbe med tipi

SQL92 – funkcija CAST (atr AS tip) SQL92 – funkcija CAST (atr AS tip) MS Access – za vsak tip ena funkcija: MS Access – za vsak tip ena funkcija: CBool(atr), CBool(atr),

CByte(atr)CByte(atr) CCur(CCur(atratr), CDate(atr),CDbl(atr),CDec(atr),CInt(atr),CLng(atr),CStr(atr), ), CDate(atr),CDbl(atr),CDec(atr),CInt(atr),CLng(atr),CStr(atr),

……

mySQL – upošteva standard SQL92mySQL – upošteva standard SQL92Izpišite priimek in datum rojstva dijaka kot en niz znakov.SQL92SELECT Dijak.Priimek || ‘ ‘ || CAST(Dijak.Rojen AS CHAR(10)) As KandidatFROM Dijak;

AccessSELECT Dijak.Primek & ‘ ‘ & CStr(Dijak.Rojen) AS KandidatFROM Dijak;

Kandidat

Štupar 15.10.1980

Mazi 15.5.1980

Mlinar 15.11.1985

Verk 15.12.1987

Žavbi 15.10.1987

Page 14: Povezovanje tabel  T heta stik na osnovi zunanjega povezovanja

1414

Funkcije za konverzijoFunkcije za konverzijo3.2. izločanje dela datumske vrednosti3.2. izločanje dela datumske vrednosti

SQL92 – funkcija EXTRACT (polje FROM atr); polje = SQL92 – funkcija EXTRACT (polje FROM atr); polje = Year | Month | Day | Hour | …Year | Month | Day | Hour | …

MS Access – MS Access – DatePart(polje,atribut); polje = "yyyy“ |DatePart(polje,atribut); polje = "yyyy“ | "m“ | "m“ | "d“ ali Day(atr), Month(atr), Year(atr)"d“ ali Day(atr), Month(atr), Year(atr)

mySQL – upošteva standard SQL92mySQL – upošteva standard SQL92Izpišite priimke in imena dijakov, rojenih oktobra.SQL92SELECT Dijak.Priimek,Dijak.Ime, EXTRACT(MONTH FROM Dijak.Rojen)AS Mesec_R FROM Dijak WHERE EXTRACT(MONTH FROM Dijak.Rojen)=10;

AccessSELECT Dijak.Priimek, Dijak.Ime, MONTH(Dijak.Rojen) AS Mesec_RFROM DijakWHERE MONTH(Dijak.Rojen)=10;

Priimek Ime Mesec_R

ŠTUPAR Andrej 10

ŽAVBI Jana 10

JUH Polona 10

DOLHAR Andrej 10

KOŽELJ Jure 10

NOVAK Miha 10

GREGORIČ Gregor 10

Page 15: Povezovanje tabel  T heta stik na osnovi zunanjega povezovanja

1515

Naloge – prvi delNaloge – prvi delBazo sestavljajo tabele Knjiga,Bazo sestavljajo tabele Knjiga, JePrebrala in Oseba.JePrebrala in Oseba. Strukture tabel opisujejo Strukture tabel opisujejo relacijske shemerelacijske sheme

– Knjiga(Knjiga(ISBN:NISBN:N, Ime_knjige:A40), Ime_knjige:A40)– JePrebrala(JePrebrala(EMSO:A13, ISBN:N, Datum:DEMSO:A13, ISBN:N, Datum:D))– Oseba(Oseba(EMSO:A13EMSO:A13, Priimek:A20, Ime:A10, Naslov:A30, Kraj:A20), Priimek:A20, Ime:A10, Naslov:A30, Kraj:A20)

Napišite SQL ukaz, kiNapišite SQL ukaz, ki::- - v tabelo JePrebrala.db doda zapis EMSOv tabelo JePrebrala.db doda zapis EMSO==0101988112112, ISBN=2, Datum=5.4.20000101988112112, ISBN=2, Datum=5.4.2000;;- - v tabeli Knjigaimena vseh knjig spremeni v velike črkev tabeli Knjigaimena vseh knjig spremeni v velike črke;;- izpiše - izpiše priimek in imena oseb, ki so prebrale vsaj eno knjigo februarja lpriimek in imena oseb, ki so prebrale vsaj eno knjigo februarja l.. 2000 2000;;- - izpiše imena knjig, ki vsebujejo besedo vojna (denimo 'Druga svetovna vojna', 'Vojna izpiše imena knjig, ki vsebujejo besedo vojna (denimo 'Druga svetovna vojna', 'Vojna in mir', …)in mir', …);;- - izbriše podatke o osebah, ki so prebrale knjigo 'Vojna in mir‘izbriše podatke o osebah, ki so prebrale knjigo 'Vojna in mir‘;;- - izpiše priimek osebe, ki je prva po abecediizpiše priimek osebe, ki je prva po abecedi;;- - za vsako osebo izpiše priimek, ime in koliko knjig je prebrala ta osebaza vsako osebo izpiše priimek, ime in koliko knjig je prebrala ta oseba;;- - za vsako osebo izpiše priimek, ime in koliko različnih knjig je prebrala ta osebaza vsako osebo izpiše priimek, ime in koliko različnih knjig je prebrala ta oseba;;- - izpiše priimke oseb, ki niso prebrale knjige 'Vojna in mir‘izpiše priimke oseb, ki niso prebrale knjige 'Vojna in mir‘;;

Page 16: Povezovanje tabel  T heta stik na osnovi zunanjega povezovanja

1616

Naloge – prvi del (nad.)Naloge – prvi del (nad.)- - izpiše abecedno urejen seznam vseh knjig. Oblika izpisa: (ISBN) Ime_knjigeizpiše abecedno urejen seznam vseh knjig. Oblika izpisa: (ISBN) Ime_knjige

BAZA_KNJIGBAZA_KNJIG(123) NAVIHANČKI(123) NAVIHANČKI

(492) VOJNA IN MIR(492) VOJNA IN MIR……..

- - izpiše imena knjig, ki jih je prebralo vsaj 10 osebizpiše imena knjig, ki jih je prebralo vsaj 10 oseb;;- - izpiše imena knjig, ki so jih prebrale vse osebeizpiše imena knjig, ki so jih prebrale vse osebe;;- - izpiše priimke oseb, ki niso prebrale nobene knjigeizpiše priimke oseb, ki niso prebrale nobene knjige;;- - izpiše koliko oseb je prebralo knjig 'Vojna in mir‘izpiše koliko oseb je prebralo knjig 'Vojna in mir‘;;- - v tabeli Knjiga zmanjša ISBN knjige 'MATEMATIKA 4' za 3v tabeli Knjiga zmanjša ISBN knjige 'MATEMATIKA 4' za 3;;- - izpiše imena knjig, katerih ISBN je manjši od 100izpiše imena knjig, katerih ISBN je manjši od 100;;- - v tabelo Oseba.dbv tabelo Oseba.db doda zapis EMSO=0101980111111, Priimek=Mlinar, Ime=Miha, doda zapis EMSO=0101980111111, Priimek=Mlinar, Ime=Miha, Naslov=Vegova 1, Kraj=LjubljanaNaslov=Vegova 1, Kraj=Ljubljana;;- - izpiše imena knjig, ki jih je prebral 'Mlinar Miha‘izpiše imena knjig, ki jih je prebral 'Mlinar Miha‘;;- - izbriše vse podatke o osebah iz Ljubljaneizbriše vse podatke o osebah iz Ljubljane;;- - izpiše imena knjig, ki jih ni prebral 'Mlinar Miha‘izpiše imena knjig, ki jih ni prebral 'Mlinar Miha‘;;- - izpiše imena knjig, ki jih je prebral le 'Mlinar Miha‘izpiše imena knjig, ki jih je prebral le 'Mlinar Miha‘;;- - izpiše imena knjig, ki so jih prebrale vse osebe razen 'Mlinar Miha‘izpiše imena knjig, ki so jih prebrale vse osebe razen 'Mlinar Miha‘;;- - izpiše koliko knjig je prebral 'Mlinar Miha' v letih od 1995 do 1998izpiše koliko knjig je prebral 'Mlinar Miha' v letih od 1995 do 1998;;- - izpiše ime nazadnje prebrane knjigeizpiše ime nazadnje prebrane knjige..

Page 17: Povezovanje tabel  T heta stik na osnovi zunanjega povezovanja

1717

Naloge – drugi delNaloge – drugi delBazo sestavljajo tabele Bazo sestavljajo tabele Stranka, Hotel, Počitnice, Cenik. Stranka, Hotel, Počitnice, Cenik. Strukture tabel Strukture tabel opisujejo relacijske shemeopisujejo relacijske sheme::

– Stranka(Stranka(Sifra_stranke:NSifra_stranke:N, Priimek_stranke:A20, Ime_stranke:A10, , Priimek_stranke:A20, Ime_stranke:A10, Kraj_stranke:A20)Kraj_stranke:A20)

– Hotel(Hotel(Sifra_hotela:NSifra_hotela:N, Ime_hotela:A20, Št_zvezdic:N, Kraj_hotela:A20), Ime_hotela:A20, Št_zvezdic:N, Kraj_hotela:A20)– Počitnice(Počitnice(Sifra_stranke:N, Sifra_hotela:N, Datum_od:D, Datum_do:DSifra_stranke:N, Sifra_hotela:N, Datum_od:D, Datum_do:D))– Cenik(Cenik(Sifra_hotela:N, Oznaka_storitve:A3Sifra_hotela:N, Oznaka_storitve:A3, Cena:N), Cena:N)

Napišite izraz relacijske algebreNapišite izraz relacijske algebre/SQL/SQL, ki vrne:, ki vrne:- - priimke in imena strank, ki so bile na počitnicah v Portorožu;priimke in imena strank, ki so bile na počitnicah v Portorožu;- - imena hotelov, ki so bili (vsaj delno) zasedeni aprila 1998;imena hotelov, ki so bili (vsaj delno) zasedeni aprila 1998;- - imena hotelov, v katerih so vse storitve dražje od 20000;imena hotelov, v katerih so vse storitve dražje od 20000;- - priimke in imena strank, ki so bile na počitnicah le v hotelih s petimi zvezdicami;priimke in imena strank, ki so bile na počitnicah le v hotelih s petimi zvezdicami;- - imena in priimke strank, ki so bile na počitnicah v hotelu, ki je v istem kraju kakor imena in priimke strank, ki so bile na počitnicah v hotelu, ki je v istem kraju kakor stranka;stranka;- - priimke in imena strank, ki so vedno letovale v Portorožu;priimke in imena strank, ki so vedno letovale v Portorožu;- - imena hotelov, v katerih so letovale vse stranke iz Ljubljane;imena hotelov, v katerih so letovale vse stranke iz Ljubljane;

Page 18: Povezovanje tabel  T heta stik na osnovi zunanjega povezovanja

1818

Naloge – drugi del (nad.)Naloge – drugi del (nad.)

- - imena hotelimena hoteloov, v katerih so letovale le stranke iz Ljubljane;v, v katerih so letovale le stranke iz Ljubljane;- - imena hotelov, ki niso bili zasedeni januarja 1999;imena hotelov, ki niso bili zasedeni januarja 1999;- - priimke in imena strank, ki so bile na počitnicah na Bledu in na Rogli ( v obeh krajih);priimke in imena strank, ki so bile na počitnicah na Bledu in na Rogli ( v obeh krajih);- - priimke in imena strank, ki so bile na počitnicah bodisi na Bledu ali na Rogli ( vsaj v priimke in imena strank, ki so bile na počitnicah bodisi na Bledu ali na Rogli ( vsaj v enem kraju).enem kraju).Napišite SQL ukaz , ki:Napišite SQL ukaz , ki:- - vrne priimke in imena strank, ki so bile na počitnicah v Portorožuvrne priimke in imena strank, ki so bile na počitnicah v Portorožu; i; izpis naj bo urejen zpis naj bo urejen po priimkih strank.;po priimkih strank.;- - vrne imena hotelov, ki so bili (vsaj delno) zasedeni aprila 1998;vrne imena hotelov, ki so bili (vsaj delno) zasedeni aprila 1998;- - vrne koliko oseb je letovalo v posameznem hotelu. vrne koliko oseb je letovalo v posameznem hotelu. iizpis naj bo urejen po imenih zpis naj bo urejen po imenih hotelov;hotelov;- - vrne povprečno ceno storitev hotelov;vrne povprečno ceno storitev hotelov;- - hotelom s petimi zvezdicami poveča cene za 10%;hotelom s petimi zvezdicami poveča cene za 10%;- - vrne koliko strank iz Ljubljane je letovalo v Bernardinu;vrne koliko strank iz Ljubljane je letovalo v Bernardinu;- - vrne imena in priimke Ljubljančanov, ki so letovali le v Brenardinu;vrne imena in priimke Ljubljančanov, ki so letovali le v Brenardinu;- - izbriše podatke o počitnicah za leto 1980;izbriše podatke o počitnicah za leto 1980;

Page 19: Povezovanje tabel  T heta stik na osnovi zunanjega povezovanja

1919

Naloge – prvi delNaloge – prvi delPodane so relacije: obiskuje, prodaja in najraje. Podane so relacije: obiskuje, prodaja in najraje. Sh(obiskuje)=Obiskuje(Otrok:A10,Slaščičarna:A20) Sh(obiskuje)=Obiskuje(Otrok:A10,Slaščičarna:A20) Sh(prodaja)=Prodaja(Slaščičarna:A20,Sladoled:A20) Sh(prodaja)=Prodaja(Slaščičarna:A20,Sladoled:A20) Sh(najraje)=Najraje(Otrok:A10,Sladoled:A20) Sh(najraje)=Najraje(Otrok:A10,Sladoled:A20) Podatki v relacijah so:Podatki v relacijah so:

obiskujeobiskuje OtrokOtrok SlascicarnaSlascicarna

TineTine ZmajčekZmajček

TineTine SlonSlon

JanaJana ZmajčekZmajček

JanaJana PetričekPetriček

JanaJana SlonSlon

JureJure SlonSlon

AnaAna ZmajčekZmajček

TineTine PetričekPetriček

prodajaprodaja SlascicarnaSlascicarna SladoledSladoled

ZmajčekZmajček jagodajagoda

ZmajčekZmajček vanilijvanilij

ZmajčekZmajček čokoladačokolada

PetričekPetriček čokoladačokolada

PetričekPetriček vanilijvanilij

SlonSlon jagodajagoda

SlonSlon čokoladačokolada

najrajenajraje OtrokOtrok SladoledSladoled

TineTine čokoladačokolada

JanaJana jagodajagoda

JureJure vanilijvanilij

AnaAna čokoladačokolada

JureJure čokoladačokolada

Page 20: Povezovanje tabel  T heta stik na osnovi zunanjega povezovanja

2020

Vprašanja:Vprašanja:Napišite izraz relacijske algebre, ki vrne:Napišite izraz relacijske algebre, ki vrne:1.1. imena otrok, ki zahajajo v slaščičarno Zmajček; imena otrok, ki zahajajo v slaščičarno Zmajček; 2.2. s katerim sladoledom lahko postrežejo v slaščičarni Slon;s katerim sladoledom lahko postrežejo v slaščičarni Slon;3.3. s katerim sladoledom se lahko posladka Jana;s katerim sladoledom se lahko posladka Jana;4.4. imena otrok, ki obiskujejo slaščičarni Zmajček in Slon (imena otrok, ki obiskujejo slaščičarni Zmajček in Slon (obeobe))5.5. imena otrok, ki zahajajo imena otrok, ki zahajajo samosamo v slaščičarno Zmajček; v slaščičarno Zmajček;6.6. v katerih slaščičarnah prodajajo Juretov najljubši sladoled;v katerih slaščičarnah prodajajo Juretov najljubši sladoled;7.7. imena otrok, ki obiskujejo imena otrok, ki obiskujejo lele slaščičarno Slon; slaščičarno Slon;8.8. v katero slaščičarno zahajajo v katero slaščičarno zahajajo vsi vsi otroci;otroci;9.9. v kateri slaščičarni ponujajo v kateri slaščičarni ponujajo vsevse sladolede; sladolede;10.10. kateri otrok zahaja v kateri otrok zahaja v vsevse slaščičarne; slaščičarne;11.11. kateri otrok kateri otrok ne hodi ne hodi v slaščičarno Slon;v slaščičarno Slon;12.12. katere sladolede katere sladolede nene strežejo pri Slonu; strežejo pri Slonu;

Page 21: Povezovanje tabel  T heta stik na osnovi zunanjega povezovanja

2121

Naloge – drugi delNaloge – drugi delPodane so relacije: izdelek, dobavitelj, račun, stranka in vrstica_računa. Podane so relacije: izdelek, dobavitelj, račun, stranka in vrstica_računa. Sh(izdelek)=Izdelek(Sh(izdelek)=Izdelek(Sifra_i:NSifra_i:N, Ime_i:A20,Cena:N, Sifra_d:N) , Ime_i:A20,Cena:N, Sifra_d:N) Sh(dobavitelj)=Dobavitelj(Sh(dobavitelj)=Dobavitelj(Sifra_d:NSifra_d:N, Ime_d:A20, Kraj_d:A20) , Ime_d:A20, Kraj_d:A20) Sh(račun)=Račun(Sh(račun)=Račun(Stev_r:NStev_r:N, Sifra_s:N, Datum:D) , Sifra_s:N, Datum:D) Sh(stranka)=Stranka(Sh(stranka)=Stranka(Sifra_s:NSifra_s:N, Ime_s:A20, Naslov:A30, Kraj_s:A20) , Ime_s:A20, Naslov:A30, Kraj_s:A20) Sh(vrstica_računa)=Vrstica_računa(Sh(vrstica_računa)=Vrstica_računa(Stev_r:N,Zap_st_vrstice:NStev_r:N,Zap_st_vrstice:N, Sifra_i:N, , Sifra_i:N, St_kos:N) St_kos:N)    

Vprašanja Napišite izraz relacijske algebre, ki vrne:1. številke računov, ki so bili izstavljeni leta 1998; 2. imena strank, s katerimi smo poslovali leta 1998;3. imena izdelkov, ki jih je naročila stranka 'SSER‘;4. imena strank, s katerimi smo poslovali samo leta 1998;5. imena strank, ki so vedno naročale vsaj 5 kosov nekega izdelka;6. imena izdelkov dobaviteljev iz Ljubljane;7. imena strank, ki so naročile izdelke cenejše od 10000;8. imena strank, ki so vedno naročale izdelke cenejše od 10000;9. imena strank, ki nikoli niso naročile izdelke cenejše od 10000;10. imena strank, ko so januarja ali marca l. 1998 kupovale izdelke JUB-a; 11. imena strank, ko so januarja in marca l. 1998 kupovale izdelke JUB-a; 12. imena izdelkov, ki niso bili nikoli prodani.