Ispisati imena studenata (svako ime samo jednom) koja sadrže malo slovo “i” i dugačka su 8 znakova (npr. Krešimir). Uzeti u obzir samo studente rođene radnim danom (pon-pet).
SELECT DISTINCT imestudent
FROM student
WHERE CHAR_LENGTH(imestudent) = 8 AND TRIM(imestudent) LIKE '%i%'AND (EXTRACT(DOW FROM datumrod)) NOT IN (6,0);
Ispisati oznaku i kapacitet svih dvorana kojima oznaka počinje slovom “A”. Za one dvorane u kojima se izvodila nastava za grupe kojima oznaka grupe počinje slovom “C”, ispisati uz podatke o dvorani i akademsku godinu kada se ta nastava odvijala, u suprotnom ispisati NULL vrijednost. Dodatno, ispisati i naziv predmeta iz kojeg se odvijala takva nastava, ako je predmet nosio 5 ECTS bodova, inače ispisati NULL vrijednost. Iz ispisa izbaciti duplikate.
Primjer rezultata:
SELECT DISTINCT dvorana.*, pom.akgodina, pom.nazpredmet
FROM dvorana LEFT JOIN
(SELECT *
FROM predmetgrupa LEFT JOIN predmet
ON predmetgrupa.sifpredmet = predmet.sifpredmet AND predmet.ectsbod = 5) AS pom
ON dvorana.ozndvorana = pom.ozndvorana AND dvorana.ozndvorana LIKE 'A%' AND pom.ozngrupa LIKE 'C%'
WHERE dvorana.ozndvorana LIKE 'A%'
Ispisati JMBAG, ime i prezime studenta, te dodatno prosječnu vrijednost ECTS bodova (nazovite stupac prosjek_ects) predmeta koje je student položio. Ispisati samo one studente koji su položili više od 15 predmeta.
SELECT student.jmbag, imestudent, prezimestudent,
(SELECT AVG(predmet.ectsbod)
FROM predmet JOIN upisanpredmet
ON upisanpredmet.sifpredmet = predmet.sifpredmet AND upisanpredmet.jmbag = student.jmbag
WHERE ocjena > 1) AS prosjek_ects
FROM student JOIN upisanpredmet
ON student.jmbag = upisanpredmet.jmbag AND
(SELECT COUNT(upisanpredmet.sifpredmet)
FROM upisanpredmet
WHERE jmbag = student.jmbag AND ocjena > 1) > 15
JOIN predmet
ON predmet.sifpredmet = upisanpredmet.sifpredmet
GROUP BY student.jmbag, imestudent, prezimestudent
Potrebno je dodati novu organizacijsku jedinicu “Republika Hrvatska” sa šifrom 1 (nema nadređenu organizacijsku jedinicu). Zatim postaviti Republiku Hrvatsku kao nadređenu svim organizacijskim jedinicama koje dosad nisu imale nadređenu organizacijsku jedinicu (osim same Republike Hrvatske).
INSERT INTO orgjed VALUES(1, 'Republika Hrvatska', NULL);
UPDATE orgjed SET sifnadorgjed = 1
WHERE sifnadorgjed IS NULL and siforgjed <> 1;
Za zadanu relacijsku shemu STUDSTIP={ime, prezime, jmbag, ukEcts} napisati naredbu kojom će se napraviti relacija studStip(STUDSTIP). Tipovi podataka neka budu sljedeći:
ime, prezime - VARCHAR(25)
jmbag - VARCHAR(10)
ukEcts (ukupan broj ECTS bodova koji je student ostvario polaganjem predmeta) - NUMERIC(4, 1)
U relaciju studStip upisati studente čiji je ukupan broj ECTS bodova ostvaren polaganjem ispita bio veći ili jednak od 80 (u sumu ulaze, naravno, samo položeni ispiti).
CREATE TABLE studStip(
ime VARCHAR(25),
prezime VARCHAR(25),
jmbag VARCHAR(10),
ukEcts NUMERIC(4,1)
);
INSERT INTO studStip
SELECT student.imestudent, student.prezimestudent, student.jmbag, SUM(predmet.ectsbod)
FROM student NATURAL JOIN upisanpredmet NATURAL JOIN predmet
WHERE ocjena > 1
GROUP BY student.imestudent, student.prezimestudent, student.jmbag
HAVING SUM(predmet.ectsbod) >= 80;```