Documente Academic
Documente Profesional
Documente Cultură
3.ERD:
4.
creare:
CREATE TABLE pacienti (
id int(11) NOT NULL AUTO_INCREMENT,
nume varchar(255) NOT NULL,
telefon int(10) NOT NULL,
adresa varchar(255) NOT NULL,
varsta int(3) NOT NULL,
sex varchar(10) NOT NULL,
alergii varchar(255) NOT NULL,
numeutiliz varchar(255) NOT NULL,
PRIMARY KEY (id)
);
);
CREATE TABLE programari (
id_programare int(11) NOT NULL AUTO_INCREMENT,
pacient_id int(11) ,
nume_pacient varchar(100) ,
data varchar(100) ,
oramin varchar(100) ,
tip varchar(100) ,
camera varchar(255) ,
numeutiliz varchar(255) NOT NULL,
PRIMARY KEY (id_programare),
INDEX(pacient_id) ,
FOREIGN KEY (pacient_id) REFERENCES pacienti(id)
);
S-au creat cu succes tabelele:
Modificarea structurii:
ALTER TABLE servicii
Trunchiere:
TRUNCATE TABLE programari;
Stergere:
Drop table servicii
Redenumire
RENAME TABLE servicii TO servicii_oferite;
5.
datelor:
SELECT
TABLE_NAME
FROM
INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'bazedate';
Descrierea tabelelor
UTILIZATORI:
PACIENTI:
SERVICII:
DIAGNOSTIC:
PROGRAMARI:
Constrangeri :
SELECT
CONSTRAINT_NAME,
COLUMN_NAME,
REFERENCED_TABLE_NAME,
REFERENCED_COLUMN_NAME
FROM
information_schema.KEY_COLUMN_USAGE
WHERE
TABLE_SCHEMA =’bazedate’;
7. Prelucrare asupra datelor
Adaugare:
INSERT INTO pacienti (nume, telefon, adresa, varsta, sex, alergii, numeutiliz)
VALUES ('Maria Ionescu', 0722333444, 'Strada Molarului 56', 28, 'Feminin', 'Niciuna',
'dentist_1');
Modificare
UPDATE programari
WHERE id_programare = 1;
Imbinare
FROM pacienti
Selectie
FROM servicii
6.
Vedere:
creare:
SELECT
p.id AS pacient_id,
p.nume AS nume_pacient,
p.telefon,
p.adresa,
p.varsta,
p.sex,
p.alergii,
d.id_diagnostic,
d.afectiune,
d.simptome,
d.tratament
FROM
pacienti p
JOIN
SELECT table_name
FROM information_schema.views
Interogare vedere:
SELECT * FROM pacienti_diagnostic_view
WHERE afectiune = Parodontita;
Modificare vedere :
SELECT
p.id AS pacient_id,
p.nume AS nume_pacient,
p.telefon,
p.adresa,
p.varsta,
p.sex,
p.alergii,
d.id_diagnostic,
d.afectiune,
d.simptome,
d.tratament
FROM
pacienti p
JOIN
WHERE
Stergere:
Confirmare:
Sergere:
8. Interogari complexe
1.
vederea ofera informații despre pacienții care fie nu au programări , fie au avut
programări în trecut
2.
Interogare returnează numele pacienților al căror cost total al serviciilor depășește 1000,
luând în considerare programările și serviciile asociate acestora.
SELECT pacienti.nume, SUM(servicii.cost) AS total_cost
FROM pacienti
JOIN programari ON pacienti.id = programari.pacient_id
JOIN servicii ON programari.tip = servicii.denumire
GROUP BY pacienti.id
HAVING total_cost > 1000;
3.
vederea ofera informatii despre ultima programare, serviciul cel mai recent, costul total
al serviciilor, și, dacă există, ultimul diagnostic al fiecărui pacient.
5.
Vederea combină informații detaliate despre pacienți, diagnostic, servicii și programări
într-un singur set de rezultate, ușor de utilizat pentru a obține o imagine de ansamblu a
datelor în legătură cu pacienții și serviciile medicale asociate lor.
SELECT
pr.id_programare,
pa.nume AS nume_pacient,
pr.data,
pr.oramin,
pr.tip,
di.afectiune,
di.simptome,
di.tratament,
se.denumire AS nume_serviciu,
se.durata AS durata_serviciu,
se.cost AS cost_serviciu
FROM
programari pr
JOIN
pacienti pa ON pr.pacient_id = pa.id
JOIN
diagnostic di ON pr.pacient_id = di.id_pacient
LEFT JOIN
servicii se ON pr.numeutiliz = se.numeutiliz
WHERE
di.afectiune = 'AfecțiuneCautată';