20
II kolokvijum REZIME Neđeljko Lekić Irena Orović www. etf.ac.me www.elektronika.t- com.me BAZE PODATAKA

II kolokvijum REZIME

  • 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

Page 1: II kolokvijum REZIME

II kolokvijum REZIME

Neđeljko LekićIrena Orovićwww.etf.ac.me www.elektronika.t-com.me

BAZE PODATAKA

Page 2: II kolokvijum REZIME

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

Page 3: II kolokvijum REZIME

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

Page 4: II kolokvijum REZIME

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

Page 5: II kolokvijum REZIME

Dodavanje ograničenja:

ALTER TABLE <table>

ADD CONSTRAINT

<definition>

Examples

ALTER TABLE Predmet

ADD CONSTRAINT

ck UNIQUE (predNaziv)

DODAVANJE OGRANIČENJA

Page 6: II kolokvijum REZIME

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

Page 7: II kolokvijum REZIME

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

Page 8: II kolokvijum REZIME

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

Page 9: II kolokvijum REZIME

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)

Page 10: II kolokvijum REZIME

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

Page 11: II kolokvijum REZIME

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

Page 12: II kolokvijum REZIME

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

Page 13: II kolokvijum REZIME

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

Page 14: II kolokvijum REZIME

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

... ... ... ... ... ...

Page 15: II kolokvijum REZIME

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

Page 16: II kolokvijum REZIME

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

Page 17: II kolokvijum REZIME

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

Page 18: II kolokvijum REZIME

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

Page 19: II kolokvijum REZIME

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:

Page 20: II kolokvijum REZIME

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