osnove mysql -a

25
Osnove mySQL-a ADMIR DŽAFEROVIĆ

Upload: emil

Post on 05-Feb-2016

63 views

Category:

Documents


1 download

DESCRIPTION

Osnove mySQL -a. Admir Džaferović. Uvod. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Osnove  mySQL -a

Osnove mySQL-a

ADMIR DŽAFEROVIĆ

Page 2: Osnove  mySQL -a

Uvod

MySQL je besplatan, open source sustav za upravljanje bazom podataka. MySQL je čest izbor baze za projekte otvorenog koda, te se distribuira kao sastavni dio serverskih Linux distribucija, no također postoje inačice i za ostale operacijske sustave poput Mac OS-a, Windowse itd.

MySQL baza je slobodna za većinu uporaba. Ranije u svom razvoju, MySQL baza podataka suočila se s raznim protivnicima MySQL sustava organiziranja podataka jer su joj nedostajale neke osnovne funkcije definirane SQL standardom. Naime, MySQL baza je optimizirana kako bi bila brza nauštrb funkcionalnosti. Nasuprot tome, vrlo je stabilna i ima dobro dokumentirane module i ekstenzije te podršku od brojnih programskih jezika: PHP, Java , Perl, Python...

MySQL baze su relacijskog tipa, koji se pokazao kao najbolji način skladištenja i pretraživanja velikih količina podataka i u suštini predstavljaju osnovu svakog informacijskog sustava, tj. temelj svakog poslovnog subjekta koji svoje poslovanje bazira na dostupnosti kvalitetnih i brzih informacija.

MySQL i PHP su osvojili veliki dio tržišta jer su open source, dakle, mogu se besplatno koristiti.

Page 3: Osnove  mySQL -a

MySQL WORKBENCH

MySQL Workbench je jedan od takvih besplatnih alata koji ima puno više mogućnosti nego će vam za početak trebati, ali upravo zato je odličan, jer kako vi budete više znali o bazama podataka, tako će vas MySQL Workbench pratiti i pružiti vam da napravite ono što ste zamislili.

Dok dođemo do koraka modeliranja baze podataka već imamo ideju o aplikaciji i što bi ona trebala sadržavati, bez obzira koliko je jednostavna ili kompleksna.

Page 4: Osnove  mySQL -a

MySQL WORKBENCH

Page 5: Osnove  mySQL -a

Pravila pisanja côda

SQL ne pravi razliku između malih i velikih slova (tj. nije casesensitive) što znači da su slijedeće dvije naredbe iz primjera jednake:

primjer 1: select prezime from osoba where ime = ‘John’primjer 2: SELECT prezime FROM osoba WHERE ime = ‘John’

Radi lakšeg prepoznavanja koda preporučljivo je da se naredbe pišu velikim slovima, kao u primjeru 2., a sve ostalo malim slovima.

U nekim bazama niz znakova (string) mora biti napisan kao što je u bazi. Znači, u gornjim naredbama nije isto ako piše John ili JOHN ali isto to ne mora vrijediti i za Microsoft SQL.

Page 6: Osnove  mySQL -a

Komentari

Komentari su tekst koji se piše kao podsjetnik i oni nemaju nikakvu vezu sa kodom osim što daju određenu informaciju programeru koji čita kod, tj. oni se ne izvršavaju.

Postoje dvije vrste komentara:-- ovo je komentar tj. oznaka za komentar je -- a iza slijedi tekst komentara

/* komentar */ ovo je također komentar koji se proteže kroz više redova

Page 7: Osnove  mySQL -a

Imena objekata

Imena objekata u SQL (imena tabela, kolona, pogleda) prave se tako da prvi znak mora biti slovo (a-z, A-Z) ili podvučeno (underline) _, te u nekim slučajevima, @ i #.Razmak i ostali specijalni znakovi se mogu koristiti ali nije preporučljivo.

select prezime from osoba where ime_prezime = ‘John Smith’

Page 8: Osnove  mySQL -a

Brisanje baze podataka

Prilikom korištenja nekog DBMS-a (MircrosoftSQL), potrebno je izabrati bazu sa kojom ćemo da radimo. Prvo ćemo pogledati spisak baza na serveru. Da bismo to uradili koristimo slijedeću komandu (OBAVEZNO je “;” na kraju svake komande).

Iskoristit ću bazu BZB, koju sam kreirao da bih pokazao upotrebu naredbe DROP koja služi za brisanje baze.

drop database zaposleni; Nakon ove naredbe baza je obrisana. Važno je napomenuti da neće biti

nikakvog upozorenja tj. pitanja tipa "Da li ste sigurni?", tako da sa koričenjem naredbe DROP u bilo kakvom smislu treba biti veoma oprezan. Jednom obrisani podaci više se ne mogu vratiti.

Page 9: Osnove  mySQL -a

Kreiranje baze podataka

Kreiranje baze je veoma jednostavno (kao i njeno brisanje). Baza se kreira uz pomoć ključne riječi CREATE:

create database zaposeni;

Page 10: Osnove  mySQL -a

Biranje baze podataka

Prije nego što u bazi podataka zaposleni napravimo novu tabelu ili uradimo bilo šta drugo u njoj, moramo obavijestiti MySQL da želimo da radimo u našoj novoj bazipodataka. To se radi pomoću komande use, na sledeći način:

use zaposleni; Sada je izabrana (otvorena) baza podataka employee;

za sve akcije koje izvršimo od sad pa nadalje, podrazumevaće se da se odnose na tu bazu podataka.

Page 11: Osnove  mySQL -a

Pravljenje tabela

Tabele u bazi podataka zaposleni napravit ćemo pomoću SQL-ove komande CREATE TABLE. Uobičajen oblik te komande je sledeći:

create table ime_tabele ( definicije kolona tabele ) [type=tip_tabele];

Kao što vidite, komanda počinje riječima create table, iza kojih slijedi ime tabele koju bismo željeli da napravimo, a zatim dolazi grupa definicija svih kolona tabele. Na kraju komande možete po potrebi zadati tip mašine baze podataka koji biste željeli da se koristi.

Page 12: Osnove  mySQL -a

Primjer tabele sektor i zaposlenik

create table sektor(sektorID int not null auto_increment primary key,ime varchar(30)

);create table zaposlenik(zaposlenik int not null auto_increment primary key,ime varchar(30),posao varchar (30),sektorID int not null references sektor(sektorID));

Page 13: Osnove  mySQL -a

Primjer tabele

create table vještine_zaposlenog (zaposlenik int not null references zaposlenik(zaposlenik),vjestina varchar(15) not null,primary key (zaposlenik, vjestina));

create table klijent (klijentID int not null auto_increment primary key,ime varchar(40),adresa varchar(100),kontakt_osoba varchar ( 80) ,broj_kontakt_osobe char(12));

Page 14: Osnove  mySQL -a

Primjer tabele

create table zadatak( klijentID int not null references klijent(klijentID),zaposlenik int not null references

zaposlenik(zaposlenik),datum_pocetka date not null,sati float,primary key (klijentID, zaposlenik, datum_pocetka)

);

Page 15: Osnove  mySQL -a

Tipovi podataka u kolonama

1. Cjelobrojni 2. Decimalni3. Znakovni4. Datumsko vremenski

Page 16: Osnove  mySQL -a

Cjelobrojni

BIGINT – zauzima 8 bajtova memorije i može se koristiti za rad sa vrijednostima u opsegu od -263 do 263 -1.

INT – zauzima 4 bajta memorije i može se koristiti za rad sa vrijednostima u opsegu od -231 do 231 -1.

SMALLINT – zauzima 2 bajta memorije i može se koristiti za rad sa vrijednostima u opsegu od -215 do 215 -1.

TINYINT- zauzima jedan bajt memorije i može se koristiti za rad sa vrijednostima u opsegu od 0 do 255.

MONEY-zauzima 8 bajtova memorije. SMALLMONEY – zauzima 4 bajta memorije

Page 17: Osnove  mySQL -a

Decimalni

REAL- zauzima 4 bajta memorije, a preciznost mu je 7 cifara.

FLOAT- zauzima 8 bajtova memorije, a preciznost mu je 15 cifara.

DECIMAL-zauzima od 2 bajta do 17 bajtova memorije, u zavisnosti od preciznosti koja se zadaje.

Page 18: Osnove  mySQL -a

Znakovni

Tip podataka CHAR(n) - jednobajtni znakovni nizovi fiksne veličine koji se mogu koristiti za čuvanje podataka veličine najviše 8000 bajtova. Tip CHAR koristiti kada je veličina kolone poznata i nepromjenljiva.

Tip podataka VARCHAR(n) - znakovni nizovi koji se sastoje od promjenljivog broja jednobajtnih znakova, koji može biti najviše 8000. Ako je podatak manji od definiranih n bajtova, on će se na disku zauzeti samo onoliko bajtova kolika mu je stvarna veličina.

Tip podataka TEXT - namijenjen je znakovnim nizovima koji se sastoje od promjenljivog broja jednobajtnih znakova, veličina premašuje 8000 bajtova.

Tip podataka NCHAR(n) - znakovni nizovi fiksne dužine sastavljeni od znakova u Unicode formatu.

Tip podataka NVARCHAR(n) - znakovni nizovi promjenljive dužine sastavljeni od znakova u Unicode formatu.

Page 19: Osnove  mySQL -a

Datumsko vremenski

Smalldatetime – (4 bajta za datum i vreme do 6.juna 2079) DATETIME – (8 bajtova za datum i vreme do 31.DEC.9999) DATETIME2 – (ekvivalentno sa datetime sa većom tačnošću

od 100 nanosekundi) DATE - (3 bajta, koji sadrže samo datum) TIME – (5 bajtova, koji sadrže vreme sa tačnošću) DATETIMEOFFset - (ekvivalentno je sa datetime2, uz

dodataku vremenske zone)

Page 20: Osnove  mySQL -a

Komanda INSERT

MySQL-ova komanda INSERT služi za umetanje novih redova u tabele. Pogledat ćemo najprije jedan primjer:

insert into sektor values(42, 'Financije'),(128, 'Istraživanje i razvoj'),(null, 'Ljudsko istraživanje'),(null, 'Marketing');

Page 21: Osnove  mySQL -a

Primjer

insert into zaposlenik values(7513, 'Elmin Pečenković', 'Programer',128),(9842, 'Sanadin Majetić', 'Stručnjak za BP', 42),(6651, 'Alma Mukelafić', 'Programer', 128),(9006, 'Mukelafa Poturak', 'Sistem Admin', 128);

Page 22: Osnove  mySQL -a

Primjer

insert into vještine_zaposlenog values(7513, 'C++'),(7513, 'Perl'),(7513, 'Java'),(9842, 'DB2'),(6651, 'VB'),(6651, 'Java'),(9006, 'NT'),(9006, 'Linux');

Page 23: Osnove  mySQL -a

Primjer

insert into klijent values(NULL, 'Tele Optic', 'Šturlići', 'Pupan

Oždrljić',95551234 ),(NULL, 'ProCredit', '98 Mahmići', 'Meho

Majetić',95559876) ;

Page 24: Osnove  mySQL -a

Primjer

insert into zadatak values(1, 7513, '2003-01-20',8.5);

Page 25: Osnove  mySQL -a

Kraj