QUESTION 2
create table Patient
(
Mat_pat varchar(10)Not Null,
nom varchar(10),
prenom varcahr(15),
Date_naiss Date,
groupe_sanguin varchar(5),
poids Number(3,2),
taille Number(3,2),
Sexe Varchar(10)
);
create table Maladie
(
Code_Mal varcahar(10) Not Null,
Designation varchar(20)
);
create table consultation
(
N°consul Number(8) Not Null,
Mat_pat varchar(10)Not Null,
date_cons Date,
heure_cons Date,
type_cons varchar(15)
);
create table suivi
(
Mat_pat varchar(10)Not Null,
Code_Mal varcahar(10) Not Null
);
QUESTION 3
ALTER TABLE Patient
add adresse Varchar(10);
QUESTION 4
ALTER TABLE consultation
Modify type_cons varchar(30);
QUESTION 5
1.Ajouter aux tables
ALTER table Patient
ADD constraint cp_Mat_pat PRIMARY KEY (Mat_pat);
ALTER table Maladie
ADD constraint cp_Code_Mal PRIMARY KEY(Code_Mal);
ALTER table consultation
ADD constraint cp_N°consul PRIMARY KEY(N°consul),
ADD constraint fk_Mat_pat FOREIGN KEY(Mat_pat)
references Patient(Mat_pat)
);
ALTER table suivi
ADD constraint fk_Mat_pat FOREIGN KEY(Mat_pat)
references Patient(Mat_pat),
ADD constraint fk_code mal FOREIGN KEY(code mal)
references Maladie(code mal)
);
-.ALTER TABLE PATIENT
ADD PRIMARY KEY (Mat_Pat);
ALTER TABLE MALADIE
ADD PRIMARY KEY (code_Mal);
ALTER TABLE CONSULTATION
ADD PRIMARY KEY (N°Auto);
ALTER TABLE CONSULTATION
ADD FOREIGN KEY (Mat_pat) REFERENCES PATIENT (Mat_Pat);
-.ALTER TABLE PATIENT
ADD CHECK (Groupe_Sanguin IN ('O-', 'O+', 'A-', 'A+', 'B-', 'B+', 'AB-', 'AB+'));
-. ALTER TABLE PATIENT
ADD CHECK (Nom <> '' AND Prenom <> '');
-. ALTER TABLE PATIENT
ADD CHECK (Poids >= 3 AND Poids <= 200);
-. ALTER TABLE PATIENT
ADD CHECK (Sexe IN ('M', 'F'));
-.ALTER TABLE CONSULTATION
ADD CHECK (Type_Cons IN ('Normale', 'Contrôle', 'Domicile'));
QUESTION 7
A. select Nom from patient;
B.Select * from patient,
where Groupe_Sanguin='A+';
C.select* from patient,
where sexe='femme'AND Groupe_Sanguin IN (O+,O-) AND poids<=70KG;
D.select* from patient,
where taille>1.6 AND poids>62;
E.select* from patient,
where Date_naiss BETWEEN 1975 AND 1985;
F.select* from patient,
where nom like'%S';
G.select* from patient,
where nom like '_E%';
H.select* from patient,
where prenom NOT like'% S' and NOT like '%A' ;
I.select* from patient,
order by poids ASC;
J.select* from poids,taille ,
taille=poids+
,
where
K.select* from consultation,
where type_cons='domicile'AND heure_cons>12:00;
L.select nom , prenom,sexe,designation from patient,maladie;
M.select nom, prenom,N°consul from patient,consultaion
where patient.date_naiss NOT 1980;
N.select nom , from patient,consulation
where patient.Mat_pat=consultation.Mat_pat;
O.select AVG Groupe_sanguin
from patient;
P.select* from patient,
where patient.sexe
in (select distinct patient.poids from patient);
q.SELECT AVG(DISTINCT P.Mat_Pat) FROM PATIENT P
JOIN SUIVI S ON P.Mat_Pat = S.Mat_Pat
JOIN MALADIE M ON S.code_Mal = M.code_Mal
JOIN CONSULTATION C ON P.Mat_Pat = C.Mat_Pat
WHERE M.Designation = 'Asthme' AND C.Type_Cons = 'Domicile';
r.SELECT P.Nom, P.Prenom, COUNT(CASE WHEN C.Type_Cons = 'Normale' THEN 1 END) FROM
PATIENT P
JOIN CONSULTATION C ON P.Mat_Pat = C.Mat_Pat
GROUP BY P.Mat_Pat;
S.select nom, prenom from patient,maladie,
where designation='diabète',
order by (nom,prenom) ASC;
QUESTION 6
INSERT INTO PATIENT (Mat_Pat, Nom, Prenom, Date_Naiss, Groupe_Sanguin, Poids,
Taille, Sexe)
VALUES ('120001', 'ABDI', 'Sami', '1960-07-01', 'A+', 60, 1.6, 'M'),
('120002', 'BEN KHALED', 'Ahlem', '1980-04-24', 'B+', 50, 1.55, 'F'),
('120003', 'BEN SLIMANE', 'Abdelkerim', '1980-05-16', 'O-', 68, 1.7, 'M'),
('120004', 'GHARBI', 'Isam', '1975-06-03', 'O+', 88, 1.75, 'M'),
('120005', 'MELKI', 'Raoudha', '1968-12-15', 'A+', 54, 1.45, 'F'),
('120006', 'SELMI', 'Ali', '1952-11-13', 'A-', 60, 1.55, 'M');
INSERT INTO MALADIE (code_Mal, designation)
VALUES ('150001', 'Fièvre'),
('150002', 'Grippe'),
('150003', 'Asthme'),
('150004', 'Diabète');
INSERT INTO CONSULTATION (N°Auto, Mat_pat, Date_Cons, Heure_Cons, Type_Cons)
VALUES (1, '120003', '2004-04-12', '08:30', 'Normale'),
(2, '120003', '2004-05-12', '15:00', 'Contrôle'),
(3, '120002', '2004-04-12', '20:20', 'Domicile'),
(4, '120001', '2004-04-20', '15:30', 'Normale');
INSERT INTO SUIVI (Mat_Pat, code_Mal)
VALUES ('120003', '150002'),
('120002', '150003'),
('120005', '150003'),
('120001', '150004');