Povezovanje tabel T heta stik na osnovi zunanjega povezovanja
description
Transcript of 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
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
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
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
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!
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
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
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
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)));
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
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
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
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
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
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‘;;
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..
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;
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;
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
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;
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.