Pod jezikom za manipulisanje podacima (Data Manipulation Language) podrazumevaju se naredbe za rad sa samim podacima u bazi. Pod manipulisanjem (rukovanjem) podacima se podrazumeva:

  • unos (dodavanje) podataka
  • pregled (korišćenje) podataka
  • izmena podataka
  • uklanjanje podataka


Unos podataka - INSERT

- koristi se za unos podataka u tabele baze podataka.

Postoje 3 načina korišćenja naredbe INSERT:

  • unoos vrednosti SVIH atributa (kolona)
  • unos vrednosti samo NEKIH atributa (kolona)
  • unos podataka iz jedne tabele u drugu

Unos vrednosti NEKIH atributa / kolona:

Ako želimo da unesemo vrednost za samo neke atribute (kolone), nazivi tih atributa se moraju eksplicitno navesti.

Pogledajte kako to izgleda:

INSERT INTO table_name (co1, co2, co3) 
VALUES (vrednost_co1, vrednost_co2, vrednost_co3);

Pomoću ovoga se ubacuju podaci u jedan red. Redosled pod kojim se podaci upisuju mora da odgovara redosledu navedenih kolona unutar prve zagrade.

Unos vrednosti SVIH atributa (kolona):

Ako se trebaju unositi podaci na sva mesta - sve kolone redom - ne moraju se navesti imena kolona:

INSERT INTO table_name VALUES (value_1, value_2, value_3);

Za svaki atribut MORA postojati vrednost, pri čemu je NULL dozvoljena opcija za svaki atribut koji nije NOT NULL.

*****

Da bi se popunilo više redova odjednom, koristi se zarez da bi se razdvojile vrednosti za pojedine redove, kao što je u nastavku:

INSERT INTO table_name 
VALUES
(value_1, value_2, value_3),
(value_21, value_22, value_23),
(value_31, value_32, value_33),

Ovo gore će da popuni 3 reda, pod pretpostavkom da su 3 kolone u svakom od redova.

Unos podataka iz jedne tabele u drugu:

Ukoliko obe tabele imaju isti broj atributa i ukoliko su atributi identično definisani, naredba INSERT je sledećeg oblika:

INSERT INTO Tabela1 SELECT * FROM Tabela2;

inače:

INSERT INTO tabela1 (atribut1, atribut2, ...)
SELECT atribut1, atribut2
FROM tabela2
WHERE kriterijum selekcije;


Uklanjanje podataka - DELETE

Ovde se misli na uklanjanje podataka iz neke (jedne ili više) od tabela u bazi podataka. moguće je ukloniti samo kompletne redove tabela. (Uklanjanje vrednosti parametara zapisa se vrši pomoću naredbe UPDATE).

Uklanjanje podataka se u SQL-u vrši naredbom DELETE.

DELETE FROM ime_tabele
[WHERE where_condition]
[ORDER BY ... ]
[LIMIT broj_redova]

Osnovni oblik komande DELETE kojom će da se uklone svi zapisi iz tabele Ucenici:

DELETE FROM Ucenici;

Ukoliko treba da se uklanjanje vrši samo za neke određene zapiise (redove), neophodno je koristiti ključnu reč WHERE:

DELETE FROM Ucenici
WHERE Ime="Pera";

Parametar LIMIT služi za ograničavanje broja redova na koje će da se primeni uklanjanje:

DELETE FROM Ucenici
LIMIT 3;

U poslednjem slučaju, izbrisaće se 3 reda iz tabele Ucenici.


Izmena podataka - UPDATE

Ovde se misli na izmenu podataka u nekoj (jednoj ili više) od tabela u bazi podataka. Moguće je izmeniti jedan ili više parametara (kolona) jednog ili više zapisa (redova).

Izmena podataka se u SQL-u vrši naredbom UPDATE

UPDATE tbl_name
SET col_name1=expr1 [, col_name2=expr2 ...]
[WHERE where_condition]
[ ORDER BY ...]
[ LIMIT row_count]

Recimo da imamo tabelu Proiyvodi, i u njoj kolone Naziv_proizvoda, Cena, Jedinica_mere, Zemlja_porekla. Ako bismo hteli da svim proizvodima u tabeli postavimo istu cenu (na primer 100) :

UPDATE Proizvod
SET Cena=100;

Ukoliko je potrebno da se izmena primeni samo na određene zapise (redove), koristi se ključna reč WHERE :

UPDATE Proizvod
SET Cena=200
WHERE Zemlja_porekla='Srbija';

Ukoliko je potrebno više parametara (kolona) izmeniti pomoću jednog upita, potrebno je navesti više kolona i vrednosti odvojenih zarezom:

UPDATE Proizvod
SET Cena=300, Jedinica_mere='cm'
WHERE Zemlja_porekla='Srbija';

Ako treba da se koristi već postojeća vrednost iz neke od drugih kolona , onda se za vrednost navodi naziv kolone zapisa čija se vrednost koristi:

UPDATE Proizvod
SET Cena=Sifra
WHERE Zemlja_porekla='Srbija';
Ako treba da se za vrednost koristi već postojeća vrednost uz primenu neke matematičke operacije:

UPDATE Proizvod
SET Cena=Cena*1.15;

Ako se koristi parametar LIMIT, to će da izvrši ograničavanje broja zapisa na koje će da se primeni izmena.


Last modified: Wednesday, 5 February 2020, 11:00 PM