'

Kreirati bazu DR i u njoj tabele doktor(DoktorID, ime, tip) i pacijent(PacijentID, ime, DoktorID).

  1. kreirati samo tabele - prvo tabelu pacijent, a onda doktor
  2. uraditi sa ALTER TABLE dodavanje foreign key
CREATE DATABASE DR;
USE DR;

CREATE TABLE Pacijent (PacijentID INT PRIMARY KEY, Ime VARCHAR(255), DoktorID INT);
CREATE TABLE Doktor(DoktorID INT PRIMARY KEY, Ime VARCHAR(255), tip VARCHAR(100) );

ALTER TABLE Pacijent
ADD FOREIGN KEY (DoktorID) REFERENCES Doktor(DoktorID);

Zatim uneti par doktora:

INSERT INTO Doktor(DoktorID, Ime, Tip) 
VALUES (1, 'Pera Pap', 'kardiolog'), (2, 'Ana Marija', 'pedijatar'), (3, 'Paja Simovski', 'stomatolog');

par pacijenata

INSERT INTO Pacijent(PacijentID, Ime, DoktorID) VALUES (1, 'Aco',  1), (2, 'Paja', 3);

Sada, ako ne znamo koji je DoktorID za pedijatra, unposimo sledećeg pacijenta tako da na mestu unosa DoktorID koristimo podupit sa podacima koje znamo (a to je u ovom slučaju tip doktora - želimo da je u pitanju pedijatar)

INSERT INTO Pacijent(PacijentID, Ime, DoktorID) 
VALUES (3, 'Aleksandar',  (SELECT DoktorID FROM Doktor WHERE Tip='pedijatar' ));

Šta će se desiti ako se kuca:

INSERT INTO Pacijent(PacijentID, Ime, DoktorID) VALUES (4, 'Aca', 1);
  ---- uneće se novi pacijent, bez greške ...

Šta će se desiti ako se kuca:

INSERT INTO Pacijent(PacijentID, Ime, DoktorID) VALUES (4, 'Aca', 4);

.   Dolazi do greške REFERENCIJALNOG INTEGRITETA - ne može se uneti DoktorID za doktora koji je postoji !!!
.

- A kako da se obrišu pacijenti koji dolaze kod stomatologa (ukinuta služba)

DELETE FROM Pacijent 
  WHERE DoktorID=3;

Sada  želimo da Pacijent ima i kolonu za Prezime:

  ALTER TABLE Pacijent 
    ADD Prezime VARCHAR(255);

Sada prikažite sve iz tabele

  SELECT * FROM Pacijent;

Sada ćemo svim pacijentima da damo u polje za prezime "Nepoznato prezime"

   UPDATE Pacijent
  SET Prezime='Nepoynato prezime';

I opet prikažite sve iz tabele

  SELECT * FROM Pacijent;

Unesite još dva pacijenta

INSERT INTO Pacijent(PacijentID, Ime, Prezime, DoktorID) 
VALUES (55, 'Sima', 'Simovski',1), (66, 'Ana', 'Marija', 1);
I opet prikažite sve iz tabele ....

Napravite kopiju tabele Pacijent - NoviPacijent koja ima sve iste kolone kao i u tabeli Pacijent i sve iste podatke da se u njoj nalaze:

   CREATE TABLE NoviPacijent AS SELECT * FROM Pacijent;

Sada prikažite sve iz tabele NoviPacijent ....

Slede'e je da se napravi kopija -  tabela koja ima iste kolone kao i tabela Pacijent, ali ne i podatke:

 CREATE TABLE Bolesnik LIKE Pacijent;
Sada prikažite sve iz tabele Bolesnik (vidite da je prazna)....

U tabelu Bolesnik 'emo ubaciti samo srčane bolesnike (koji imaju DoktorID=1)

  
   INSERT  INTO Bolesnik SELECT * FROM Pacijent WHERE DoktorID=1;

Sada prikažite sve iz tabele Bolesnik ....

Last modified: Friday, 26 January 2024, 11:05 AM