![Page 1: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/1.jpg)
Baze podataka (vježbe)SQL - kreiranje i modificiranje tablica
Sveucilište u ZagrebuPMF – Matematicki odsjek
![Page 2: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/2.jpg)
Brisanje tablica
Za ove vježbe umjesto demo baze koristit cete svoju bazuciji naziv je jednak Vašem korisnickom imenu za rad sbazom.Ako Vaša baza nije prazna (provjerite sa SHOW TABLES;),obrišite sve postojece tablice pomocu naredbe
DROP TABLE naziv_tablice;
![Page 3: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/3.jpg)
Kreiranje tablica
Tablice istovjetne onima iz demo baze kreiramo pomocusljedecih naredbi:
CREATE TABLE STUDENT(JMBAG NUMERIC(10) UNSIGNED NOT NULL,PREZIMES CHAR(20),IMES CHAR(20),DATR DATE,GODINA ENUM(’1’,’2’,’3’,’4’,’5’),PRIMARY KEY(JMBAG));
CREATE TABLE NASTAVNIK(OIB NUMERIC(11) UNSIGNED NOT NULL,PREZIMEN CHAR(20),IMEN CHAR(20),BRSOBE NUMERIC(3) UNSIGNED,PLACA NUMERIC(5) UNSIGNED,PRIMARY KEY(OIB));
![Page 4: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/4.jpg)
Kreiranje tablica
CREATE TABLE PREDMET(SIFRA NUMERIC(5) UNSIGNED NOT NULL,NASLOV CHAR(80),OIB NUMERIC(11) UNSIGNED,SEMESTAR ENUM(’Z’,’L’),ECTS NUMERIC(2) UNSIGNED,PRIMARY KEY(SIFRA));
CREATE TABLE UPISAO(JMBAG NUMERIC(10) UNSIGNED NOT NULL,SIFRA NUMERIC(5) UNSIGNED NOT NULL,DATU DATE,OCJENA ENUM(’1’,’2’,’3’,’4’,’5’),PRIMARY KEY(JMBAG,SIFRA));
Detaljna dokumentacija o CREATE TABLE naredbi.
![Page 5: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/5.jpg)
Numericki tipovi podatakaCjelobrojni tipovi (eng. integer types)
Tip Velicina (byte)TINYINT 1SMALLINT 2MEDIUMINT 3
INT 4BIGINT 8
Svi cjelobrojni tipovi mogu biti s predznakom (eng. signed) ilibez predznaka (eng. unsigned). Cjelobrojni tip velicine n bitovaima raspon vrijednosti od −2n−1 do 2n−1 − 1 u varijanti spredznakom, a od 0 do 2n − 1 u varijanti bez predznaka.
![Page 6: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/6.jpg)
Numericki tipovi podatakaFloating point tipovi
Tip Velicina (byte)FLOAT 4DOUBLE 8
Ovo su standardni IEEE floating point tipovi (predznak,eksponent, mantisa).
![Page 7: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/7.jpg)
Numericki tipovi podatakaFixed point tipovi
DECIMAL(m, n)
Numericki tip cije su dopuštene vrijednosti brojevi sa neviše od m dekadskih znamenaka, od cega je n decimala.m – preciznost (eng. precision)n – promjena velicine (eng. scale)Ogranicenje: m 6 65
![Page 8: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/8.jpg)
Numericki tipovi podatakaPolje bitova (eng. bit value type)
BIT(m)
Klasicno polje bitova duljine m.Jedino ogranicenje je 1 6 m 6 64.
![Page 9: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/9.jpg)
Datumsko-vremenski tipovi
Tip DATEOblik vrijednosti: YYYY-MM-DDRaspon vrijednosti: od 1000-01-01 do 9999-12-31
Tip TIMEOblik vrijednosti: HHH:MM:SSRaspon vrijednosti: od -838:59:59 do 838:59:59
Tip DATETIMEOblik vrijednosti: YYYY-MM-DD HH:MM:SSRaspon vrijednosti: od 1000-01-01 00:00:00 do9999-12-31 23:59:59
Tip TIMESTAMP32-bitni zapis broja sekundi od epohe.Raspon vrijednosti: od 1970-01-01 00:00:01 do2038-01-19 03:14:07
Tip YEARTip za zapis godine velicine 1 byte.Raspon vrijednosti: od 1901 do 2155
![Page 10: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/10.jpg)
Datumsko-vremenski tipovi
Tip DATEOblik vrijednosti: YYYY-MM-DDRaspon vrijednosti: od 1000-01-01 do 9999-12-31
Tip TIMEOblik vrijednosti: HHH:MM:SSRaspon vrijednosti: od -838:59:59 do 838:59:59
Tip DATETIMEOblik vrijednosti: YYYY-MM-DD HH:MM:SSRaspon vrijednosti: od 1000-01-01 00:00:00 do9999-12-31 23:59:59
Tip TIMESTAMP32-bitni zapis broja sekundi od epohe.Raspon vrijednosti: od 1970-01-01 00:00:01 do2038-01-19 03:14:07
Tip YEARTip za zapis godine velicine 1 byte.Raspon vrijednosti: od 1901 do 2155
![Page 11: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/11.jpg)
Datumsko-vremenski tipovi
Tip DATEOblik vrijednosti: YYYY-MM-DDRaspon vrijednosti: od 1000-01-01 do 9999-12-31
Tip TIMEOblik vrijednosti: HHH:MM:SSRaspon vrijednosti: od -838:59:59 do 838:59:59
Tip DATETIMEOblik vrijednosti: YYYY-MM-DD HH:MM:SSRaspon vrijednosti: od 1000-01-01 00:00:00 do9999-12-31 23:59:59
Tip TIMESTAMP32-bitni zapis broja sekundi od epohe.Raspon vrijednosti: od 1970-01-01 00:00:01 do2038-01-19 03:14:07
Tip YEARTip za zapis godine velicine 1 byte.Raspon vrijednosti: od 1901 do 2155
![Page 12: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/12.jpg)
Datumsko-vremenski tipovi
Tip DATEOblik vrijednosti: YYYY-MM-DDRaspon vrijednosti: od 1000-01-01 do 9999-12-31
Tip TIMEOblik vrijednosti: HHH:MM:SSRaspon vrijednosti: od -838:59:59 do 838:59:59
Tip DATETIMEOblik vrijednosti: YYYY-MM-DD HH:MM:SSRaspon vrijednosti: od 1000-01-01 00:00:00 do9999-12-31 23:59:59
Tip TIMESTAMP32-bitni zapis broja sekundi od epohe.Raspon vrijednosti: od 1970-01-01 00:00:01 do2038-01-19 03:14:07
Tip YEARTip za zapis godine velicine 1 byte.Raspon vrijednosti: od 1901 do 2155
![Page 13: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/13.jpg)
Datumsko-vremenski tipovi
Tip DATEOblik vrijednosti: YYYY-MM-DDRaspon vrijednosti: od 1000-01-01 do 9999-12-31
Tip TIMEOblik vrijednosti: HHH:MM:SSRaspon vrijednosti: od -838:59:59 do 838:59:59
Tip DATETIMEOblik vrijednosti: YYYY-MM-DD HH:MM:SSRaspon vrijednosti: od 1000-01-01 00:00:00 do9999-12-31 23:59:59
Tip TIMESTAMP32-bitni zapis broja sekundi od epohe.Raspon vrijednosti: od 1970-01-01 00:00:01 do2038-01-19 03:14:07
Tip YEARTip za zapis godine velicine 1 byte.Raspon vrijednosti: od 1901 do 2155
![Page 14: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/14.jpg)
Znakovni tipovitipovi za krace stringove
CHAR(n), ogranicenje: n 6 255String duljine n, po potrebi nadopunjen razmacima donavedene duljine.Pri dohvacanju vrijednosti razmaci na kraju stringa seignoriraju.
VARCHAR(n), ogranicenje: n 6 255String duljine ne više od n.Zapisuje se pomocu prefiksa u koji je zapisana duljinastringa nakon koje slijede podaci.
BINARY(n) i VARBINARY(n)Kao CHAR i VARCHAR samo što se podaci tretiraju kaonizovi byteova, pa se npr. sortiranje se vrši iskljucivo ponumerickoj vrijednosti.
![Page 15: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/15.jpg)
Znakovni tipovitipovi za krace stringove
CHAR(n), ogranicenje: n 6 255String duljine n, po potrebi nadopunjen razmacima donavedene duljine.Pri dohvacanju vrijednosti razmaci na kraju stringa seignoriraju.
VARCHAR(n), ogranicenje: n 6 255String duljine ne više od n.Zapisuje se pomocu prefiksa u koji je zapisana duljinastringa nakon koje slijede podaci.
BINARY(n) i VARBINARY(n)Kao CHAR i VARCHAR samo što se podaci tretiraju kaonizovi byteova, pa se npr. sortiranje se vrši iskljucivo ponumerickoj vrijednosti.
![Page 16: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/16.jpg)
Znakovni tipovitipovi za krace stringove
CHAR(n), ogranicenje: n 6 255String duljine n, po potrebi nadopunjen razmacima donavedene duljine.Pri dohvacanju vrijednosti razmaci na kraju stringa seignoriraju.
VARCHAR(n), ogranicenje: n 6 255String duljine ne više od n.Zapisuje se pomocu prefiksa u koji je zapisana duljinastringa nakon koje slijede podaci.
BINARY(n) i VARBINARY(n)Kao CHAR i VARCHAR samo što se podaci tretiraju kaonizovi byteova, pa se npr. sortiranje se vrši iskljucivo ponumerickoj vrijednosti.
![Page 17: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/17.jpg)
Znakovni tipovitipovi za dulje stringove
Tip (tekstualni) Tip (binarni) Maksimalna duljinaTINYTEXT TINYBLOB 28
TEXT BLOB 216
MEDIUMTEXT MEDIUMBLOB 224
LONGTEXT LONGBLOB 232
![Page 18: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/18.jpg)
Znakovni tipovienumeracije i skupovi
ENUM(v1,...,vn), ogranicenje: n 6 65535 = 216 − 1Enumeracija (gotovo) analogna enumeraciji u C-u.
SET(v1,...,vn), ogranicenje: n 6 64Atributi ovog tipa za vrijednost mogu poprimiti bilo kojipodskup skupa {v1, . . . , vn}.
![Page 19: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/19.jpg)
Znakovni tipovienumeracije i skupovi
ENUM(v1,...,vn), ogranicenje: n 6 65535 = 216 − 1Enumeracija (gotovo) analogna enumeraciji u C-u.
SET(v1,...,vn), ogranicenje: n 6 64Atributi ovog tipa za vrijednost mogu poprimiti bilo kojipodskup skupa {v1, . . . , vn}.
![Page 20: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/20.jpg)
Ucitavanje vecih kolicina podataka u tablicu
Iz datoteke:
LOAD DATA INFILE ’datoteka’ INTO TABLE tablica[CHARACTER SET encoding][FIELDS [TERMINATED BY ’znakovi’]
[ENCLOSED BY ’znak’]][LINES [STARTING BY ’znakovi’]
[TERMINATED BY ’znakovi’]]
Iz drugih tablica:
INSERT INTO tablica SELECT ...
![Page 21: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/21.jpg)
Ucitavanje vecih kolicina podataka u tablicu
Iz datoteke:
LOAD DATA INFILE ’datoteka’ INTO TABLE tablica[CHARACTER SET encoding][FIELDS [TERMINATED BY ’znakovi’]
[ENCLOSED BY ’znak’]][LINES [STARTING BY ’znakovi’]
[TERMINATED BY ’znakovi’]]
Iz drugih tablica:
INSERT INTO tablica SELECT ...
![Page 22: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/22.jpg)
Dodavanje manjeg broja redaka u tablicu
Samo jedan redak:
INSERT INTO tablica SET atr1={izraz | DEFAULT}, ...
Jedan ili više redaka:INSERT INTO tablica [(atr,...)]{VALUE|VALUES} ({izraz | DEFAULT},...), (...), ...
![Page 23: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/23.jpg)
Dodavanje manjeg broja redaka u tablicu
Samo jedan redak:
INSERT INTO tablica SET atr1={izraz | DEFAULT}, ...
Jedan ili više redaka:INSERT INTO tablica [(atr,...)]{VALUE|VALUES} ({izraz | DEFAULT},...), (...), ...
![Page 24: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/24.jpg)
Brisanje redaka iz tablice
DELETE FROM tablica [WHERE ...]
WHERE dio je isti kao kod SELECT naredbe.
![Page 25: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/25.jpg)
Modificiranje redaka u tablici
UPDATE tablicaSET atr1={expr1|DEFAULT} [,atr2={expr2|DEFAULT}]...[WHERE ...]
WHERE dio je isti kao kod SELECT naredbe.
![Page 26: Baze podataka (vježbe) SQL - kreiranje i modificiranje …goranc/SQL_vj2.pdfBrisanje tablica Za ove vježbe umjesto demo baze koristit cete svoju bazu´ ciji naziv je jednak Vašem](https://reader030.vdocuments.mx/reader030/viewer/2022020204/5ad50ff47f8b9a177c8c7d93/html5/thumbnails/26.jpg)
Indeksi
Indeksi služe za ubrzavanje pretraživanja unutar bazepodataka. Buduci da indeksi zauzimaju dosta (prostornih)resursa treba ih koristiti samo na atributima po kojima sepretrage cesto vrše.
CREATE [UNIQUE] INDEX naziv_indexaON tablica (atr,...)