Upload
emil
View
63
Download
1
Embed Size (px)
DESCRIPTION
Osnove mySQL -a. Admir Džaferović. Uvod. - PowerPoint PPT Presentation
Citation preview
Osnove mySQL-a
ADMIR DŽAFEROVIĆ
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.
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.
MySQL WORKBENCH
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.
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
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’
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.
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;
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.
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.
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));
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));
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)
);
Tipovi podataka u kolonama
1. Cjelobrojni 2. Decimalni3. Znakovni4. Datumsko vremenski
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
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.
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.
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)
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');
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);
Primjer
insert into vještine_zaposlenog values(7513, 'C++'),(7513, 'Perl'),(7513, 'Java'),(9842, 'DB2'),(6651, 'VB'),(6651, 'Java'),(9006, 'NT'),(9006, 'Linux');
Primjer
insert into klijent values(NULL, 'Tele Optic', 'Šturlići', 'Pupan
Oždrljić',95551234 ),(NULL, 'ProCredit', '98 Mahmići', 'Meho
Majetić',95559876) ;
Primjer
insert into zadatak values(1, 7513, '2003-01-20',8.5);
Kraj