0. Ponavljanje (treba nam za ostatak lekcije):

-- Kreiranje tabele Proizvodi
CREATE TABLE Proizvodi (
    ProizvodID INT PRIMARY KEY,
    Naziv VARCHAR(50),
    Cena DECIMAL(10,2)
);

-- Popunjavanje tabele Proizvodi
INSERT INTO Proizvodi (ProizvodID, Naziv, Cena) VALUES
(1, 'Hleb', 60.00),
(2, 'Mleko', 120.00),
(3, 'Sir', 450.00),
(4, 'Sok', 150.00),
(5, 'Kafa', 500.00);

-- Kreiranje tabele Ucenici
CREATE TABLE Ucenici (
    UcenikID INT PRIMARY KEY,
    Ime VARCHAR(30),
    Prezime VARCHAR(30),
    Razred INT
);

-- Popunjavanje tabele Ucenici
INSERT INTO Ucenici (UcenikID, Ime, Prezime, Razred) VALUES
(1, 'Marko', 'Markovic', 3),
(2, 'Ana', 'Jovanovic', 4),
(3, 'Nikola', 'Petrovic', 2),
(4, 'Ivana', 'Stojanovic', 1),
(5, 'Petar', 'Milosavljevic', 3),
(6, 'Milica', 'Ilic', 2),
(7, 'Jovan', 'Savic', 4),
(8, 'Katarina', 'Zoric', 1);

1. Pravljenje izvedenih kolona

U bazama podataka ne radimo uvek samo sa postojećim kolonama iz tabela. Ponekad je potrebno da prikažemo dodatne vrednosti koje se dobijaju izračunavanjem na osnovu postojećih podataka. Takve kolone se nazivaju izvedene kolone.

Te kolone se ne čuvaju u bazi, već se izračunavaju „u letu“ kada se upit izvrši.

Primer 1:
Ako u tabeli Proizvodi postoji kolona Cena, možemo izračunati cenu sa porezom (20%):

SELECT Naziv, Cena, Cena * 1.2 AS CenaSaPorezom FROM Proizvodi;

-- > U ovom primeru, Cena * 1.2 je izračunata kolona, a AS CenaSaPorezom joj daje ime.

*************

Primer 2: Izračunavanje PDV-a (20%) na cenu proizvoda (drugi način)

SELECT 
    ProizvodID,
    Naziv,
    Cena,
    Cena * 0.20 AS PDV,
    Cena * 1.20 AS CenaSaPDV
FROM Proizvodi;

-- > U ovom primeru su PDV i CenaSaPDV izvedene kolone.


DODATAK: Spajanje imena i prezimena u jedinstvenu kolonu (postavljeno posle časa u učionici)

Ako u tabeli postoje kolone Ime i Prezime (pretpostavimo da postoje):

SELECT 
    Ime,
    Prezime,
    Ime + ' ' + Prezime AS PunoIme   -- MS SQL Server
FROM Korisnici;

2. Ograničavanje broja prikazanih podataka

U praksi nije uvek potrebno prikazati sve redove iz baze podataka. Kada tabela ima mnogo zapisa, može biti dovoljno da prikažemo samo određeni broj redova ili procenat od svih podataka.

U SQL Server-u se za to koristi ključna reč TOP.

(Napomena: Za MySQL se koristi ključna reč LIMIT, a za druge DBMS је drugačije! )

Primeri:

  • Prikaz prvih 5 učenika iz tabele Ucenici:

SELECT TOP 5 * FROM Ucenici;
  • Prikaz 10% učenika:

SELECT TOP 10 PERCENT * FROM Ucenici;
Poslednja izmena: среда, 8. октобар 2025, 10:55