Upload
pahana
View
59
Download
0
Embed Size (px)
DESCRIPTION
BAZE PODATAKA. II kolokvijum REZIME. Neđeljko Lekić Irena Orovi ć www. etf.ac.me www.elektronika.t-com.me. Ponekad je potrebno izmijeniti strukturu postojećih tabela. Jedan način je izbrisati je (DROP) i ponovo kreirati. To se ne preporučuje , već umjesto toga postoji komanda - PowerPoint PPT Presentation
Citation preview
II kolokvijum REZIME
Neđeljko LekićIrena Orovićwww.etf.ac.me www.elektronika.t-com.me
BAZE PODATAKA
Ponekad je potrebno izmijeniti strukturu postojećih tabela. Jedan način je izbrisati
je (DROP) i ponovo kreirati.
To se ne preporučuje, već umjesto toga postoji komanda
ALTER TABLE.
ALTER TABLE može Dodati novu kolonu. Ukloniti postojeću
kolonu. Dodati novo
ograničenje. Ukloniti postojeće
ograničenje. Iznijeniti osobine
postojeće kolone.
IZMJENE U STRUKTURI TABELA
Za dodavanje i brisanje kolone koristi se:
ALTER TABLE <table>
ADD COLUMN <col>
ALTER TABLE <table>
DROP COLUMN <name>
Primjeri:
ALTER TABLE Student
ADD COLUMN
Stepen VARCHAR(50)
ALTER TABLE Student
DROP COLUMN Stepen
BRISANJE I DODAVANJE KOLONA
Promjena imena i definicije:
ALTER TABLE <table> CHANGE COLUMN <old col-name> <new col-name> <type>
Promjena samo definicije:
ALTER TABLE <table> MODIFY <col-name> <type>
PRIMJERI:
ALTER TABLE Student CHANGE COLUMN studIme sPIME VARCHAR(50) NOT NULL
ALTER TABLE Student MODIFY sPIME VARCHAR(40) NOT NULL
IZMJENA OSOBINA KOLONA
Dodavanje ograničenja:
ALTER TABLE <table>
ADD CONSTRAINT
<definition>
Examples
ALTER TABLE Predmet
ADD CONSTRAINT
ck UNIQUE (predNaziv)
DODAVANJE OGRANIČENJA
U MySQL-u prilikom brisanja ograničenje mora se navesti tip ograničenja: PRIMARY KEY za
primarne ključeve; FOREIGN KEY za
spoljnje ključeve; INDEX za UNIQUE
ograničenje.
PRIMJER:
ALTER TABLE Predmet
DROP INDEX ck
ALTER TABLE Predmet
DROP PRIMARY KEY
ALTER TABLE upis DROP FOREIGN KEYfkStud
BRISANJE OGRANIČENJA
UPDATE <table>
SET col1 = val1
[,col2 = val2…]
[WHERE
<condition>]
U svim vrstama kod kojih je uslov zadovoljen postavljaju se zadate vrijednosti kolonama.
Ako nije zadat uslov svi zapisi će biti promijenjeni, te BUDITE PAŽLJIVI
Vrijednosti su konstante ili algebarski izrazi.
UPDATE
DELETE
DELETE FROM Studentor TRUNCATE TABLE Student
DELETE FROM StudentWHERE studGodina = 2Student ID studIme studAdresa studGodina
2 Marko Matić Pobjede 12 4
4 Mrina Šoć Cetinjski put bb 3
ID studIme studAdresa studGodinaStudent
SQL SELECT - PREGLED
SELECT
[DISTINCT | ALL] <column-list>
FROM <table-names>
[WHERE <condition>]
[ORDER BY <column-list>]
[GROUP BY <column-list>]
[HAVING <condition>] ([]- optional, | - or)
SELECT IZ VIŠE TABELA
SELECT
Ime, Prezime, Bodovi
FROM Student, Rezultati
WHERE
(Student.ID = Rezultati.ID)
AND
(Bodovi >= 40)
ID Ime Prezime
103 Jovan Simić
104 Marina Jokić
105 Jana Brkić
106 Marko Jokić
107 Jovan Brkić
Student
Rezultati ID Kod Bodovi
103 BPD 72
103 RHD 58
104 PR1 68
104 RHD 65
106 PR2 43
107 PR1 76
107 PR2 60
107 RHD 35
PSEUDONIMI (LAŽNA IMENA)
Pseudonimi preimenuju kolone ili tabele: Čine imena
značajnijim Čine imana kraćim i
lakšim za kucanje. Otklanjaju
dvosmislenost
Dva oblika: Psudonim kolone
SELECT kolona
AS novoIme... Pseudonim tabele
SELECT ...
FROM tabela
AS novoIme
U MySQL DBMS-u AS je opciono i ne mora se navoditi
PSEUDONIMI I ′SPAJANJE SA SOBOM′
Pseudonimi se mogu upotrijebiti za udruživanje tabele sa samom sobom.
Primjer: Iz tabele sa slike prikazati ime radnika i ime njegovog rukovodioca.
SELECT A.ime Radnik, B.ime Rukovidioc
FROM Radnik A, Radnik B
WHERE A.SRUK=B.SIFRAD
SIFRAD IME SRUK
5 Mirić 3
4 Božić 1
3 Cankar 4
2 Savić 4
1 Kesić
6 Trivić 7
7 Agić 1
8 Jusić 7
Radnik
PSEUDONIMI I ′SPAJANJE SA SOBOM′
SIFRAD IME SRUK
5 Mirić 3
4 Božić 1
3 Cankar 4
2 Savić 4
1 Kesić
6 Trivić 7
7 Agić 1
8 Jusić 7
Radnik B
SIFRAD IME SRUK
5 Mirić 3
4 Božić 1
3 Cankar 4
2 Savić 4
1 Kesić
6 Trivić 7
7 Agić 1
8 Jusić 7
Radnik A
SIFRAD IME SRUK
5 Mirić 3
4 Božić 1
3 Cankar 4
2 Savić 4
1 Kesić
6 Trivić 7
7 Agić 1
8 Jusić 7
PSEUDONIMI I ′SPAJANJE SA SOBOM′
SELECT … FROM Radnik A, R adnik B …
A.SIFRAD A.IME A,SRUK B.SIFRAD B.IME B.SRUK
1 Kesić 1 Kesić
2 Savić 4 1 Kesić
3 Cankar 4 1 Kesić
4 Božić 1 1 Kesić
5 Mirić 3 1 Kesić
6 Trivić 7 1 Kesić
7 Agić 1 1 Kesić
8 Jusić 7 1 Kesić
1 Kesić 2 Savić 4
2 Savić 4 2 Savić 4
3 Cankar 4 2 Savić 4
4 Božić 1 2 Savić 4
... ... ... ... ... ...
PSEUDONIMI I ′SPAJANJE SA SOBOM′
SELECT ... FROM Radnik A, Radnik B WHERE A.SRUK=B.SIFRAD
A.SIFRAD A.IME A.SRUK B.SIFRAD B.IME B.SRUK
2 Savić 4 4 Božić 1
3 Cankar 4 4 Božić 1
4 Božić 1 1 Kesić
5 Mirić 3 3 Cankar 4
6 Trivić 7 7 Agić 1
7 Agić 1 1 Kesić
8 Jusić 7 7 Agić 1
ORDER BY: PRIMJER
Rezultati
Ime Kod Bod
Jovan BPD 56Jovan ARC 72Marija BPD 60Marko PR1 43Marko PR2 35Jana ARC 54
Ime Kod Bod
Marko PR2 35Marko PR1 43 Jana ARC 54Jovan BPD 56Marija BPD 60Jovan ARC 72
SELECT * FROM RezultatiORDER BY Bod
Agregatne funkcije vrše izračunavanja nad podacima grupe zapisa.
Agregatne funkcije (sve osim COUNT) obično djeluju na jednu kolonu numeričkih podataka.
Upotrebljavati alias za imenovanje rezultata.
AGREGATNE FUNKCIJE
FUNKCIJA REZULTAT
AVG(izraz) Vraća srednju vrijednost od izraz
COUNT(*)Daje broj zapisa koji zadovoljavaju uslov selekcije
COUNT(izraz)Daje broj poznatih (ne-NULL) vrijednosti izraza
MAX(izraz), MIN(izraz)Vraća najveću i najmanju vrijednost koju poprimi izraz
SUM(izraz) Vraća ukupan zbir svih vrijednosti izraza
SELECT COUNT(*) AS Count FROM Radnik
SELECT SUM(Plata) AS Total FROM Radnik
SELECT MAX(Plata) AS Glavni FROM Radnik
Count
14
Total
28025
Glavni
4000
AGREGATNE FUNKCIJE
SELECT COUNT(Stimul) AS Stimulisanih FROM Radnik
Stimulisanih
4
SELECT AVG(Plata) FROM Radnik, OdjelWHERE Radnik.sifodj=Odjel.sifodj AND Odjel.ImeOdj = 'Prodaja';
AGREGATNE FUNKCIJE: PRIMJER
Izračunati srednju vrijednost plate zaposlenih u odjelu prodaje.
Rješenje:
GROUP BY
SELECT ImeOdj, RadMj, SUM(Plata) AS Ukupno FROM Radnik, Odjel WHERE Radnik.SifOdj=Odjel.Sifodj GROUP BY ImeOdj, RadMj
SELECT ImeOdj, RadMj, SUM(Plata) AS Ukupno FROM Radnik, Odjel WHERE Radnik.SifOdj=Odjel.Sifodj GROUP BY RadMj, ImeOdj
ImeOdj RadMj Ukupno
Istraživanje analitičar 6000
Istraživanje slubenik 1900
Istraživanje upravnik 2975
Prodaja prodavač 5600
Prodaja slubenik 950
Prodaja upravnik 2850
Racunovodstvo direktor 4000
Racunovodstvo slubenik 1300
Racunovodstvo upravnik 2450
ImeOdj RadMj Ukupno
Istraživanje analitičar 6000
Racunovodstvo direktor 4000
Prodaja prodavač 5600
Istraživanje slubenik 1900
Prodaja slubenik 950
Racunovodstvo slubenik 1300
Istraživanje upravnik 2975
Prodaja upravnik 2850
Racunovodstvo upravnik 2450