U radu sa bazama podataka često se javlja potreba da se već postojeći podaci izmene. Na primer, ako se: promenila cena proizvoda, ili je student promenio broj telefona, ili je zaposlenima povećana plata ili su svi proizvodi poskupeli za određeni procenat, .....

U takvim situacijama nije potrebno brisati stare podatke i ponovo unositi nove. Umesto toga koristi se SQL naredba UPDATE, koja omogućava izmenu postojećih redova u tabeli.

Drugim rečima, UPDATE služi za ažuriranje (promenu) podataka koji su već upisani u tabelu.


Osnovna sintaksa naredbe UPDATE

Opšti oblik naredbe je:

UPDATE naziv_tabele
SET kolona = nova_vrednost

Ova naredba menja vrednost određene kolone. Ovde:

  • UPDATE označava da želimo da menjamo podatke

  • naziv_tabele je tabela u kojoj se nalaze podaci

  • SET označava koju kolonu menjamo i na koju vrednost

Ako se ne navede uslov, SQL će promeniti sve redove u tabeli.


-- Tabela Proizvodi

-- Kreiranje tabele
CREATE TABLE Proizvodi
(
    ID INT PRIMARY KEY,
    Naziv VARCHAR(50),
    Cena DECIMAL(10,2)
)
-- Unos podataka
INSERT INTO Proizvodi VALUES (1,'Hleb',60)
INSERT INTO Proizvodi VALUES (2,'Mleko',120)
INSERT INTO Proizvodi VALUES (3,'Jogurt',110)
INSERT INTO Proizvodi VALUES (4,'Sir',500)
INSERT INTO Proizvodi VALUES (5,'Maslac',250)
INSERT INTO Proizvodi VALUES (6,'Pavlaka',150)

-- Tabela Zaposleni

-- Kreiranje
CREATE TABLE Zaposleni
(
    IDZaposlenog INT PRIMARY KEY,
    Ime VARCHAR(50),
    Plata INT
)
-- Unos podataka
INSERT INTO Zaposleni VALUES (1,'Marko',50000)
INSERT INTO Zaposleni VALUES (2,'Ana',52000)
INSERT INTO Zaposleni VALUES (3,'Ivan',48000)
INSERT INTO Zaposleni VALUES (4,'Jelena',47000)
INSERT INTO Zaposleni VALUES (5,'Nikola',60000)

-- Tabela Studenti

-- Kreiranje
CREATE TABLE Studenti
(
    IDStudenta INT PRIMARY KEY,
    Ime VARCHAR(50),
    Grad VARCHAR(50)
)
-- Unos podataka
INSERT INTO Studenti VALUES (1,'Nikola','Novi Sad')
INSERT INTO Studenti VALUES (2,'Jelena','Beograd')
INSERT INTO Studenti VALUES (3,'Marko','Novi Sad')
INSERT INTO Studenti VALUES (4,'Ana','Subotica')
INSERT INTO Studenti VALUES (5,'Petar','Novi Sad')

Primer 1 – Ažuriranje svih redova

Ako želimo da promenimo cenu svih proizvoda na 100, možemo napisati:

UPDATE Proizvodi
SET Cena = 100

Nakon izvršavanja naredbe tabela će izgledati ovako:

IDProizvoda Naziv Cena
1 Hleb 100
2 Mleko 100
3 Jogurt 100

SQL je promenio svaki red u tabeli.


Primer 2 – Ažuriranje više kolona

UPDATE može menjati više kolona istovremeno.

Primer:

UPDATE Proizvodi
SET Naziv = 'Proizvod', Cena = 50

Rezultat:

IDProizvoda Naziv Cena
1 Proizvod 50
2 Proizvod 50
3 Proizvod 50

Primer 3 – Ažuriranje pomoću izraza

 Nova vrednost može biti i rezultat izračunavanja.

Primer: povećanje svih cena za 10.

UPDATE Proizvodi
SET Cena = Cena + 10

Ovde SQL uzima postojeću vrednost cene i dodaje 10.


Napomene

Ako se koristi UPDATE bez WHERE uslova, menjaju se svi redovi.

Zbog toga je potrebno biti pažljiv, jer se može desiti da se slučajno promeni veliki broj podataka.


Zadaci za učenike

Zadatak 1:  U tabeli Proizvodi postaviti cenu svih proizvoda na 200.


Zadatak 2: U tabeli Proizvodi povećati cenu svih proizvoda za 20.


Zadatak 3: U tabeli Proizvodi promeniti:

  • naziv proizvoda na Nepoznat proizvod

  • cenu na 0


Rešenje 1

UPDATE Proizvodi
SET Cena = 200

Rešenje 2

UPDATE Proizvodi
SET Cena = Cena + 20

Rešenje 3

UPDATE Proizvodi
SET Naziv = 'Nepoznat proizvod',
    Cena = 0

Zaključak

Naredba UPDATE omogućava promenu postojećih podataka u tabeli.

Ako se ne koristi uslov, SQL menja sve redove u tabeli. Zbog toga je u većini praktičnih situacija potrebno koristiti WHERE uslov, koji omogućava da se promene samo određeni redovi.


2. čas: Ažuriranje određenih redova u tabeli (WHERE uslov)

Uvod

U realnim bazama podataka retko je potrebno menjati sve redove u tabeli. Mnogo češće je potrebno promeniti samo određene podatke.

Neki primeri potrebnih promena:

  • povećati platu zaposlenom sa ID brojem 5
  • promeniti cenu samo jednog proizvoda
  • ažurirati adresu određenog studenta
  • povećati cenu samo proizvoda iz određene kategorije

Da bi se to uradilo koristi se WHERE uslov.


UPDATE sa WHERE uslovom

Opšta sintaksa:

UPDATE naziv_tabele
SET kolona = nova_vrednost
WHERE uslov

WHERE određuje koji redovi će biti promenjeni.


Primer tabele

Tabela Zaposleni:

IDZaposlenog Ime Plata
1 Marko 50000
2 Ana 52000
3 Ivan 48000

Primer 1 – Ažuriranje jednog reda

Povećanje plate zaposlenom sa ID = 3.

UPDATE Zaposleni
SET Plata = 55000
WHERE IDZaposlenog = 3

Rezultat:

IDZaposlenog Ime Plata
1 Marko 50000
2 Ana 52000
3 Ivan 55000

Promenjen je samo jedan red.


Primer 2 – Ažuriranje više redova

Ako želimo da povećamo platu svim zaposlenima koji imaju platu manju od 50000:

UPDATE Zaposleni
SET Plata = Plata + 5000
WHERE Plata < 50000

SQL će pronaći sve redove koji ispunjavaju uslov i promeniti ih.


Primer 3 – Ažuriranje pomoću teksta

Tabela Studenti

IDStudenta Ime Grad
1 Nikola Novi Sad
2 Jelena Beograd
3 Marko Novi Sad

Promena grada za studenta Marka:

UPDATE Studenti
SET Grad = 'Niš'
WHERE Ime = 'Marko'

Kombinovanje uslova

Moguće je koristiti više uslova:

UPDATE Zaposleni
SET Plata = Plata + 3000
WHERE Plata < 50000 AND Ime = 'Ivan'

Napomena:

Kao korisna navika, pre UPDATE bi bilo dobro da se prvo proveri koje redove treba menjati. To se radi pomoću SELECT:

SELECT *
FROM Zaposleni
WHERE Plata < 50000

Tek nakon provere izvršava se UPDATE.


Zadaci za učenike

Pretpostavimo tabelu Proizvodi:

ID Naziv Cena
1 Hleb 60
2 Mleko 120
3 Jogurt 110
4 Sir 500

Zadatak 1: Promeniti cenu proizvoda Hleb na 70.


Zadatak 2: Povećati cenu proizvoda Jogurt za 20.


Zadatak 3: Smanjiti cenu svih proizvoda čija je cena veća od 200 za 50.


Zadatak 4: Promeniti naziv proizvoda sa ID = 2 u Mleko 1L.


Rešenje 1

UPDATE Proizvodi
SET Cena = 70
WHERE Naziv = 'Hleb'

Rešenje 2

UPDATE Proizvodi
SET Cena = Cena + 20
WHERE Naziv = 'Jogurt'

Rešenje 3

UPDATE Proizvodi
SET Cena = Cena - 50
WHERE Cena > 200

Rešenje 4

UPDATE Proizvodi
SET Naziv = 'Mleko 1L'
WHERE ID = 2

Završni zadatak (za vežbu u učionici ili kod kuće)

Za tabelu Zaposleni

Napisati SQL naredbe za:

  1. povećanje plate zaposlenom Ivan za 3000

  2. povećanje plate svim zaposlenima čija je plata manja od 50000 za 2000

  3. promenu imena zaposlenog sa ID = 1 u Marko Petrović


Pitanja za proveru znanja
  • Čemu služi naredba UPDATE u SQL-u?
  • Čemu služi klauzula SET?
  • Navesti primer UPDATE naredbe.
  • Koja klauzula određuje koji redovi će biti izmenjeni?
  • Šta se dešava ako se UPDATE izvrši bez WHERE uslova?
  • Da li UPDATE može menjati više kolona istovremeno?
  • Napisati opšti oblik UPDATE naredbe.
  • Da li UPDATE može koristiti matematičke operacije?
Last modified: Wednesday, 11 March 2026, 11:07 AM