31.mart / 01.april
Ko nema aplikaciju kod kuće, koristi https://sqliteonline.com
treba da birate MariaDB i Connect ...
1. Ponavljamo kako se kreira tabela - CREATE TABLE:
prvo kreiremo tabelu:
CREATE TABLE RAZRED (
ID int PRIMARY KEY,
Ime VARCHAR(25) NOT NULL
);
Zatim radimo ovako:
drop table if exists RAZRED;
CREATE TABLE if not exists RAZRED (
ID int PRIMARY KEY,
Ime VARCHAR(25) NOT NULL,
Prezime VARCHAR(25)
);
Ovde će da se ukloni tabela, ali samo ako postoji, a ako ne postoji ovo se neće izvršiti. Zatim se kreira nova tabela, ali samo ako već ne postoji (ako
postoji, ovaj red neće biti izvršen). Ovo je način kako je sigurnije da se radi u skriptovima.
Napomena: EXISTS se koristi kada želimo da proverimo da li nešto postoji, a NOT EXISTS ako želimo da proverimo da li nešto ne postoji.
2. Unosimo neke podatke u tabelu pomoću INSERT
(prvi od tri načina - unosimo podatke za svaku kolonu)
INSERT INTO RAZRED
VALUES (1, 'Simin', 'Sima'),
(2, 'Pap', 'Pavle');
(drugi način - unosimo samo u neke kolone)
INSERT INTO RAZRED(id, ime)
VALUES (3, 'Simin'),
(4, 'Pap');
SELECT * FROM RAZRED;
Primetićete da je tamo gde nisu uneti podaci oznaka NULL.
Ako pokušate da ne unesete podatke u kolone koje su označene sa NOT NULL, dobićete GREŠKU i to neće biti izvršeno.
3. Vršimo izmene nad podacima u tabeli pomoću UPDATE
UPDATE RAZRED
SET prezime = 'Nepoznato prezime'
WHERE prezime is NULL;
UPDATE RAZRED
SET prezime = 'Djokic'
WHERE Id = 4;
UPDATE RAZRED
SET prezime = 'Matic'
WHERE Id in (SELECT id FROM RAZRED WHERE prezime is NULL);
SELECT * FROM RAZRED;
Međutim, ako ne navedete WHERE, tada će se izvršiti UPDATE za celu tabelu !!!
kao na primer:
UPDATE RAZREDA sada još par primera istog:
SET prezime = 'Papuga'
WHERE Id = 4;
- još unosa podataka:
INSERT INTO RAZRED(Id, ime)
VALUES (5, 'Siminic'), (6, 'Pvlovic'), (7, 'Tutnjvic');
da vidimo šta ima unutra:
SELECT * FROM RAZRED;
- zatim da nešto izmenimo:
UPDATE RAZRED
set ime='Aleksa', prezime='Tutnjevic'
WHERE id=7;
i da ponovo vidimo šta ima unutra:
SELECT * FROM RAZRED;još malo izmena:
UPDATE RAZRED
set ime = 'Andrija', prezime='Maric'
WHERE ime LIKE '%vic'
UPDATE RAZRED
SET prezime = 'Stranac'
WHERE id IN (SELECT id from RAZRED WHERE prezime LIKE 'N%' AND ime is NOT NULL);
SELECT * FROM RAZRED;
UPDATE RAZRED
SET prezime = 'nepoznato'
WHERE prezime IS NULL;
Iz svakog je upita očigledno za šta služi.
4. Brišemo podatke iz tabele - pomoću DELETE
u sledećem upitu ćemo da izbrišemo sve redove u kojima je ime koej se ne završava na slovo "a":
DELETE FROM RAZRED
WHERE ime NOT LIKE '%a';
SELECT * FROM RAZRED;
Ali, ako se ne navede WHERE, kao u sledećem upitu:
DELETE FROM RAZRED;
SELECT * FROM RAZRED;
tada će se izbrisati svi redovi u tabeli. Budite veoma pažljivi kada radite sa DELETE !
****
U nastavku su još neki od upita:
INSERT INTO RAZRED
VALUES (1, 'S.', 'Sima'), (2, 'A.', 'Aleksa'), (3, 'B.', 'Boris'), (4, 'M.','Puvaca');
SELECT * FROM RAZRED;
UPDATE RAZRED
set Ime = 'Sima', prezime = 'S.' WHERE Id = 1;
UPDATE RAZRED
set Ime = 'Aleksa', prezime = 'A.' WHERE Id = 2;
UPDATE RAZRED
set Ime = 'Boris', prezime = 'B.' WHERE Id = 3;
SELECT * FROM RAZRED;
5. Kreiramo još jednu tabelu u koju ćemo kopirati redove iz prve tabele:
(prvo kreiramo drugu tabelu koja ima isti broj kolona istog tipa)
create table ucenici(
Id int PRIMARY KEY,
Ime Varchar(25),
prezime Varchar(25)
);
(kopiramo sadržaj prve tabele u drugu)
INSERT INTO ucenici
select * from RAZRED;
(pogledajte šta je u drugoj tabeli)
select * from ucenici;
(pogledajte šta je u onoj prvoj tabeli)
SELECT * FROM RAZRED;
6. Umetanje redova u tabelu se može vršiti i pomoću podupita:
INSERT INTO ucenici
VALUES (10, (select ime from RAZRED where ID=1), (SELECT prezime FROM RAZRED WHERE ID=2));
Za učenike koji žele da pročitaju lekcije iz knjige:
Ubacivanje podataka - INSERT - strana 95 (opciono za pogledati, posle toga ide par strana sa primerima )
Brisanje podataka - DELETE - druga polovina strane 100 (opciono za pogledati, posle toga ide par strana sa primerima )
Menjanje podataka - UPDATE - strana 102 (opciono za pogledati, posle toga ide par strana sa primerima )