26
Baze podataka (vježbe) SQL - kreiranje i modificiranje tablica Sveuˇ cilište u Zagrebu PMF – Matematiˇ cki odsjek

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

  • Upload
    lyquynh

  • View
    235

  • Download
    6

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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,...)