Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

Baze podataka

Mladen Vidovi¢
mvidovic@singidunum.ac.rs

Univerzitet Singidunum
Centar Novi Sad

16. april 2020.

Mladen Vidovi¢ (Singidunum) Baze podataka 16. april 2020. 1 / 12


Sadrºaj

1 Instalacija

Mladen Vidovi¢ (Singidunum) Baze podataka 16. april 2020. 2 / 12


Instalacija MySQL servera

• https://www.mysql.com/products/community/
• Preuzeti community verziju mysql servera, odabrati mysql installer.
• Pri instalaciji odabrati custom opciju, i uklju£iti samo MySQL server
(najnoviji) i MySQL Workbench.
• Zahteva¢e lozinku za root korisnika, obavezno upamtite nju.

Mladen Vidovi¢ (Singidunum) Baze podataka 16. april 2020. 3 / 12


MySQL

• U workbench-u otvoriti konekciju (root ili kreirati novu).


• Ako radimo kao root korisnik, imamo neograni£en pristup svim
²emama i tabelama u njima.
• Ukoliko ºelimo da kreiramo korisnike sa nekim dodatnim
ograni£enjima, koristimo CREATE USER komandu u SQL-u.
• CREATE USER 'username'@'host' IDENTIFIED BY 'password'
• umesto username moºemo staviti bilo koje korisni£ko ime, umesto
password bilo koju lozinku
• Za host koristimo 'localhost', ²to ozna£ava da je host lokalna ma²ina.

Mladen Vidovi¢ (Singidunum) Baze podataka 16. april 2020. 4 / 12


MySQL - rad sa korisnicima

• Kada kreiramo novog korisnika, on nema nikakve privilegije.


• Da bismo dodali privilegije korisniku, koristimo GRANT komandu.
• GRANT ALL PRIVILEGES ON *.* TO 'korisnik'@'localhost'
• ALL PRIVILEGES ¢e korisniku dati sve privilegije. Ukoliko ºelimo da
odaberemo odrežene privilegije, imamo opcije:
• CREATE - kreiranje tabela ili baza
• DROP - brisanje tabela ili baza
• DELETE - brisanje redova iz tabela
• INSERT - ubacivanje redova u tabele
• SELECT - £itanje podataka iz baza podataka
• UPDATE - aºuriranje redova
• GRANT OPTION - privilegija da dodaje ili oduzima privilegije drugim
korisnicima

• Privilegije moºemo oduzeti koriste¢i REVOKE komandu na isti na£in.

Mladen Vidovi¢ (Singidunum) Baze podataka 16. april 2020. 5 / 12


MySQL - rad sa ²emom

• ’ema baze podataka je skup objekata (poput tabela ili view-ova) koji
pripadaju jednoj bazi podataka.
• CREATE SCHEMA [IF NOT EXISTS] ime_²eme
• Ova komanda ¢e da kreira ²emu sa imenom ime_²eme. IF NOT
EXISTS je opciono, i ozna£ava da ne kreira ²emu ukoliko ve¢ postoji.
Ukoliko ne dodamo ovu opciju, i poku²amo da kreiramo ²emu sa
postoje¢im imenom, dobi¢emo gre²ku.
• Moºemo takože dodati specikacije za ²emu, poput charset-a,
collation-a (poreženja elemenata) ili enkripcije.
• Ove specikacije moºemo i menjati koriste¢i ALTER SCHEMA ime
• ’ema se moºe pobrisati koriste¢i DROP SCHEMA ime

Mladen Vidovi¢ (Singidunum) Baze podataka 16. april 2020. 6 / 12


MySQL - rad sa tabelama

• Podaci u bazi podataka su organizovani u tabele.


• Da bismo kreirali tabelu, koristimo CREATE TABLE komandu.
• CREATE TABLE naziv_tabele (kolona TIP(VELICINA), kolona...)
• Pre toga biramo ²emu, odnosno bazu u kojoj ¢e biti kreirana tabela
koriste¢i komandu USE naziv_²eme
• CREATE TABLE student (ime VARCHAR(20), prezime
VARCHAR(20))
• Pri kreiranju tabele moºemo da odredimo i koja kolona nam predstavlja
primarni klju£, tako ²to navedemo PRIMARY KEY iza tipa kolone.
• Primarni klju£ jedinstveno odrežuje jedan red, mora da bude
jedinstven i razli£it od null.
• Moºemo da pregledamo sve tabele koriste¢i SHOW TABLES komandu.
• Ako ºelimo da vidimo detalje o jednoj tabeli, odnosno sve kolone,
koristimo DESCRIBE ime_tabele.

Mladen Vidovi¢ (Singidunum) Baze podataka 16. april 2020. 7 / 12


MySQL - rad sa tabelama

• Moºemo da menjamo tabelu koriste¢i ALTER TABLE


• ALTER TABLE student ADD COLUMN datum_rodjenja DATE;
• ALTER TABLE student DROP COLUMN datum_rodjenja;
• ALTER TABLE student CHANGE COLUMN ime ime VARCHAR(30);
• Moºemo i pobrisati tabelu koriste¢i DROP TABLE [IF EXISTS].

Mladen Vidovi¢ (Singidunum) Baze podataka 16. april 2020. 8 / 12


MySQL - rad sa slogovima

• Da bismo ubacili slog, odnosno red u tabelu, koristimo INSERT


komandu.
• INSERT INTO student (broj_indeksa, ime, prezime) VALUES ('123',
'pera', 'peric')
• Kada navedemo tabelu, u zagradi navodimo i kolone. Redosledom
kojim smo naveli kolone, navodimo i vrednosti nakon VALUES (ili
VALUE).
• Ukoliko unosimo sve vrednosti, ne moramo da nakon imena tabele
navodimo kolone, ali moramo da pazimo na redosled unosa podataka.
• INSERT INTO student VALUES('456', 'Steva', 'Stevic');
• INSERT INTO student VALUES ('Steva'); bi bilo neispravno, jer
nismo popunili sve kolone
• Moºemo istovremeno vi²e slogova da ubacimo
• INSERT INTO student VALUES ('123', 'pera', 'peric'), ('456', 'steva',
'stevic');
Mladen Vidovi¢ (Singidunum) Baze podataka 16. april 2020. 9 / 12
MySQL - rad sa slogovima

• ƒitanje iz tabele se vr²i koriste¢i SELECT.


• SELECT * FROM student - dobavlja sve kolone iz tabele student, ako
ho¢emo samo imena, koristimo SELECT ime FROM student.
• Postoje i opcije za sortiranje, grupisanje, dobavljanje odreženog broja,
ltriranje itd...
• Dobavljanje svih studenata koji se zovu pera:
SELECT * FROM student WHERE ime='pera';

Mladen Vidovi¢ (Singidunum) Baze podataka 16. april 2020. 10 / 12


MySQL - rad sa slogovima

• Izmenu slogova moºemo da vr²imo koriste¢i komandu UPDATE


• UPDATE student SET ime='Nenad' WHERE broj_indeksa = '123';
• Ova komanda bi u tabeli student postavila ime Nenad za sve redove
koji imaju broj indeksa 123.
• Brisanje slogova vr²imo koriste¢i komandu DELETE
• DELETE FROM student WHERE broj_indeksa='4546';
• Ukoliko u workbench-u poku²amo da uradimo update ili delete preko
neke kolone koja nije klju£, recimo: DELETE FROM student WHERE
prezime ='Markovic'; dobi¢emo gre²ku ukoliko je uklju£en safe update.
• Da bismo isklju£ili safe update, u opcijama Edit->Preferences->SQL
Editor-> Other otka£imo safe update.
• Ili moºemo da koristimo komandu SET SQL_SAFE_UPDATES = 0;

Mladen Vidovi¢ (Singidunum) Baze podataka 16. april 2020. 11 / 12


Zadatak

• Potrebno je kreirati tabele za studente, nastavnike i predmete.


• Student ima broj indeksa, ime, prezime, prose£nu ocenu i datum
roženja.
• Nastavnik ima ²ifru zaposlenog, ime, prezime, podatak o tome da li je
asistent ili profesor i datum roženja.
• Predmet ima ²ifru predmeta, naziv, broj £asova nedeljno i broj ESPB.
• U svaku tabelu uneti po 5 slogova.
• Izmeniti sve asistente tako da im ime bude Marko.
• Pobrisati sve studente sa prosekom manjim od 7.0.
• Dobaviti imena i prezimena svih studenata koji imaju prosek ve¢i od 8.
• Dobaviti ²ifre zaposlenih koji su profesori roženi nakon 1980. godine.

Mladen Vidovi¢ (Singidunum) Baze podataka 16. april 2020. 12 / 12

You might also like