SQL podupiti i indexi

poruka: 4
|
čitano: 4.446
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
13 godina
odjavljen
offline
SQL podupiti i indexi

Imam neke probleme sa upitima-neki mi stalno bacaju error,a neki rade (ne znam jesu li dobri). Može li mi netko to pregledati i reći što treba promijeniti?

 

 

1. Potrebno je kreirati tablicu „racun“ koja izgleda kao u nastavku:

 

racun:

 

sifRacun INT

brRacun INT

datRacun DATE

iznosRacun DECIMAL(10,2)

sifKlijent INT

 

Tablica „racun“ ima primarni ključ na atributu „sifRacun“ s tim da ga baza podataka mora

sama slijedno dodjeljivati. Nad atributom „brRacun“ je potrebno kreirati indeks koji koristi

BTREE i dozvoljava duplikate, a nad atributom „sifKlijent“ potrebno je kreirati strani ključ koji

je vezan na „klijent.sifKlijent“ atribut na bazi podataka.

 

CREATE TABLE racun(

sifRacun INT NOT NULL AUTO_INCREMENT,

brRacun INT,

datRacun DATE,

iznosRacun DECIMAL(10,2),

sifKlijent INT,

PRIMARY KEY sifRacun,

FOREIGN KEY (brRacun) USING BTREE,

FOREIGN KEY (sifKlijent) REFERENCES klijent.sifKlijent

);

 

2. Ispisati ostvarene sate rada po nalozima i datume kada su ti nalozi zaprimljeni za sve naloge

    čiji je ostvareniSatRada veći od svih predviđenih satiKvara iz tablice kvar.

 

SELECT nalog.OstvareniSatiRada,nalog.datPrimitkaNalog FROM nalog,kvar WHERE nalog.OstvareniSatiRada > kvar.satiKvar;

 

3. Ispisati sva mjesta u kojima niti jedan klijent nije registrirao vozilo. Zadatak je potrebno

    riješiti pomoću podupita.

 

SELECT * FROM mjesto WHERE NOT EXISTS (SELECT * FROM klijent WHERE mjesto.pbrMjesto=klijent.pbrReg);

 

4. Ispisati sva mjesta u kojima ne živi niti jedan radnik. Zadatak je potrebno riješiti pomoću

    podupita.

 

SELECT * FROM mjesto WHERE NOT EXISTS (SELECT * FROM radnik WHERE mjesto.pbrMjesto=radnik.pbrStan);

 

5. Potrebno je obrisati sve radnike koji žive u županiji „Grad Zagreb“ i u prezimenu sadrže slovo

   „a“.

 

DELETE * FROM radnik WHERE pbrStan IN (SELECT pbrMjesto FROM mjesto JOIN zupanija ON zupanija.sifZupanija=mjesto.sifZupanija WHERE zupanija.nazivZupanija="Grad Zagreb") AND radnik.prezimeRadnik LIKE "%a%";

 

6. Potrebno je povećati iznos koefPlaca za 10% svim radnicima koji su radili na nalozima

    prioriteta većeg od 3.

 

UPDATE radnik SET KoefPlaca=(KoefPlaca+(KoefPlaca/10)) WHERE sifRadnik=(SELECT sifRadnik FROM nalog WHERE nalog.prioritetNalog >3);

 

7. Koristeći podupite potrebno je ispisati sve klijente u čijim mjestima stanovanja ne živi ni

    jedan radnik.

 

SELECT * FROM klijent WHERE NOT EXISTS (SELECT * FROM radnik WHERE radnik.pbrStan=klijent.pbrKlijent);

 

8. Potrebno je ispisati sve radnike s nadprosječnom plaćom.

 

SELECT * FROM radnik WHERE (KoefPlaca*IznosOsnovice) >(SELECT AVG(KoefPlaca*IznosOsnovice) FROM radnik);

 

Case and PC modder. Sponsored by: CoolerMaster,Inter-tech,ASBIS, LD Cooling, MG Vrbanus , iShop
Moj PC  
0 0 hvala 0
13 godina
odjavljen
offline
SQL podupiti i indexi

Zaboravio sam na bazu. Izgleda ovako:

 

 

Case and PC modder. Sponsored by: CoolerMaster,Inter-tech,ASBIS, LD Cooling, MG Vrbanus , iShop
Moj PC  
0 0 hvala 0
13 godina
neaktivan
offline
Re: SQL podupiti i indexi

Šta ti tačno ne funkcioniše?

13 godina
odjavljen
offline
SQL podupiti i indexi

1,5,6 a za ostale nisam siguran da su točni.

Case and PC modder. Sponsored by: CoolerMaster,Inter-tech,ASBIS, LD Cooling, MG Vrbanus , iShop
Moj PC  
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice