Koristimo bazu i tabele iz prethodne lekcije.

Ako nemate bazu i tabele iz prethodne lekcije, kreirajte ih pomoću upita iza sledećeg dugmenceta:  

  

  

CREATE DATABASE SkolaDB;
GO

USE SkolaDB;
GO

CREATE TABLE Ucenik (
    UcenikID INT PRIMARY KEY,
    Ime NVARCHAR(50),
    Prezime NVARCHAR(50),
    Odeljenje NVARCHAR(10)
);

CREATE TABLE Ocena (
    OcenaID INT PRIMARY KEY,
    UcenikID INT,
    Predmet NVARCHAR(50),
    Ocena INT,
    FOREIGN KEY (UcenikID) REFERENCES Ucenik(UcenikID)
);

  

INSERT INTO Ucenik VALUES (1, 'Marko', 'Markovic', 'III-1');
INSERT INTO Ucenik VALUES (2, 'Ana', 'Petrovic', 'III-1');
INSERT INTO Ucenik VALUES (3, 'Jovan', 'Ilic', 'III-2');

INSERT INTO Ocena VALUES (1, 1, 'Matematika', 5);
INSERT INTO Ocena VALUES (2, 1, 'Informatika', 4);
INSERT INTO Ocena VALUES (3, 2, 'Matematika', 3);

Dodati još 3 učenika u tabelu Ucenik:

INSERT INTO Ucenik VALUES 
  (4, 'Marko', 'Popov', 'III-2'),
  (5, 'Ana', 'Vasic', 'III-2'),
  (6, 'Jovan', 'Arsic', 'III-3');

U SQL-u možemo tretirati rezultate upita kao matematičke skupove.

1. UNION – Unija

Spaja rezultate dva upita i uklanja duplikate.

Primer:

SELECT Ime FROM Ucenik
WHERE Odeljenje = 'III-1'

UNION

SELECT Ime FROM Ucenik
WHERE Odeljenje = 'III-2';

Dobijamo sve učenike iz odeljenja III-1 i III-2, ali bez duplikata - ne ponavljaju se imena.


2. UNION ALL

Ne uklanja duplikate.

SELECT Predmet FROM Ocena
UNION ALL
SELECT Predmet FROM Ocena;

3. INTERSECT – Presek

Vraća zajedničke rezultate.

Primer: Učenici koji imaju ocenu i iz Matematike i iz Informatike.

SELECT UcenikID
FROM Ocena
WHERE Predmet = 'Matematika'

INTERSECT

SELECT UcenikID
FROM Ocena
WHERE Predmet = 'Informatika';

Rezultat: samo Marko.


4. EXCEPT – Razlika

Vraća rezultate prvog upita koji ne postoje u drugom.

Primer:

SELECT UcenikID
FROM Ocena
WHERE Predmet = 'Matematika'

EXCEPT

SELECT UcenikID
FROM Ocena
WHERE Predmet = 'Informatika';

Rezultat: Ana.


Zadatak 1: Prikazati imena učenika iz oba odeljenja koristeći UNION.

  

SELECT Ime FROM Ucenik WHERE Odeljenje = 'III-1'
UNION
SELECT Ime FROM Ucenik WHERE Odeljenje = 'III-2';

Zadatak 2:  Pronaći učenike koji imaju ocenu iz Matematike, ali nemaju iz Informatike.

  

SELECT UcenikID
FROM Ocena
WHERE Predmet = 'Matematika'

EXCEPT

SELECT UcenikID
FROM Ocena
WHERE Predmet = 'Informatika';
Last modified: Wednesday, 18 February 2026, 4:13 PM