Sunteți pe pagina 1din 4

Revenind la proiectul din laboratorul precedent,

1) creati o baza goala cu numele clinica_NUMELE_DVS_l2 iar apoi scrieti interogari


pentru crearea tuturor
tabelelor din proiectul clinica dupa sablonul de mai jos:

TABELELE CLIENTI MEDICI CABINETE

create table clienti


( id_client autoincrement primary key,
nume char(50) not null,
adresa_str char(100) not null,
oras char(100) not null,
telefon char(10) not null,
data DateTime not null
);

(am decis sa adaug id_client pentru a usura anumite cautari/sortari,


dar tabelul clienti e corect si fara id_client, dar cu cnp fixat ca si cheie
primara.
am adaugat de asemenea data inregistrarii clientului in bd.
)

create table medici


( id_medic autoincrement primary key,
nume char(50) not null,
telefon char(10) not null
);

create table servicii


( id_serviciu autoincrement primary key,
nume char(50) not null,
pret double not null
);

create table cabinete


( id_cabinet autoincrement primary key,
nume char(50) not null,
adresa_str char(50) not null
);

==================================================
TABELUL PROGRAMARI

create table programari


( id_programare autoincrement primary key,
id_client int not null,
data_p DateTime not null,
valoare double not null
);

de aceasta data id_client este id_ul clientului din tabelul clienti, nu cnp-ul lui.
de asemenea, am introdus si o variabila, data_p care contine data cand a fost
creata(introdusa
in baza) programarea respectiva.

====================================================

TABELUL SERVICII_PRESTATE

create table servicii_prestate


( id autoincrement primary key,
id_serviciu int not null,
id_programare int not null,
id_medic int not null,
ora int not null,
data DateTime not null,
id_cabinet int not null
);

in acest tabel se listeaza serviciile prestate in cadrul fiecarei programari


facute.
nu exista conceptul de cantitate, servicii cu acelasi id in cadrul unei programari
difera pt ca vor fi
prestate la date diferite, etc. serviciile sunt listate unul cate unul.

in acest tabel rostul lui id este de a avea o cheie primara de tip integer care se
autoincrementeaza,
ceea ce usureaza proiectarea anumitor interogari(sortari, ordonari,
cele mai multe in urmatorul laborator).

Tabelul servicii_prestate mai poate fi proiectat si sub forma


(daca specificul clinicii e ca un client nu poate programa acelasi serviciu de 2
ori
in cadrul aceleiasi programari, campurile id_serviciu si id_programare formeaza o
cheie primara
compusa)

create table servicii_prestate


( id_serviciu int not null,
id_programare int not null,
id_medic int not null,
ora int not null,
data DateTime not null,
id_cabinet int not null,
primary key (id_programare, id_serviciu)
);

sau sub forma (in cazul f. general in care doua servicii nu pot fi prestate
in acelasi timp si in acelasi cabinet, campurile ora, data si id_cabinet pot fi
folosite ca
cheie primara compusa)

create table servicii_prestate1


( id_serviciu int not null,
id_programare int not null,
id_medic int not null,
ora int not null,
data DateTime not null,
id_cabinet int not null,
primary key (ora,data, id_cabinet)
);

dar pt acest laborator(si urmatoarele) prefer prima varianta din aceste 3 expuse
aici,
e mai simplu sa faci anumite cautari sau sortari.

2) scrieti instructiuni pentru popularea tabelelor cu 7 clienti, 3 medici, 3


cabinete, 5 servicii,
8 programari pt diferite servicii.

In general, pentru fiecare intrebare de mai jos va rog sa populati tabelele pentru
ca rezultatul
interogarii sa aiba sens.

iata un sablon pentru inserare,

insert into clienti (nume,adresa_str,oras,,telefon,data) values


('Ion','Str1','Sibiu','1234','11/1/2015');

======================================
Pentru fiecare din intrebarile 3-.. proiectati o interogare numita query 3, query4,
....

La final salvati baza si trimiteti-o la adresa adunca@mathem.pub.ro

3)Listati toti clientii(id,nume, adresa_str) cu id >3

4)Listati toti clientii(id,nume, adresa_str) cu id intre 2 si 4

5)Listati toti clientii(id,nume, adresa_str) inregistrati ieri

6)Listati toti clientii(id,nume, adresa_str) inregistrati in ultimele 3 zile.

7)Listati toti clientii(id,nume, adresa_str) cu numele Ion sau Maria

8)Listati toti clientii(id,nume, adresa_str) cu id 1 sau 3

9)Listati toate programarile(id, nume client, valoare) inregistrate azi.

10) Listati toate programarile (id, nume client, valoare).

11) Listati toate programarile(id, nume client, valoare) de valoare mai mare decat
4.
12) Listati toate serviciile( nume serviciu, data programarii serviciului
respectiv, numele medicului, numele clientului)
solicitate de clientul cu id 2.

13) Afisati orarul ( nume cabinet, ora, nume medic, nume serviciu) pentru
cabinetul cu id 2 in ziua de 11/18/2016 (luna/ziua/an)

14) Afisati orarul ( id cabinet, nume cabinet, ora, nume medic, nume serviciu)
pentru medicul cu id 2 in ziua de 11/18/2016 (luna/ziua/an)

15) Selectati toti clientii care sunt programati in ziua de 11/17/2015. Afisati id-
ul clientului,
numele serviciului pt care sunt programati, ora si numele cabinetului, numele
medicului.

16) Afisati toata lista de id-uri de clienti din tabelul programari (id-urile pot
aparea de mai multe ori).

17) Afisati toti clientii(id, nume) care au cel putin o programare facuta (adica al
caror id e in lista de la intrebarea 17).
Clientii trebuie sa apara cel mult o data.

18) Afisati toti clientii(id, nume) care nu au nicio programare facuta.

19) Listati toti medicii(id, nume) care nu au fost solicitati in ziua de ....

S-ar putea să vă placă și