TP4
1)
a- Créer la table patient :
CREATE TABLE Patient (
Num_patient NUMERIC(4, 0) PRIMARY KEY,
Nom_patient VARCHAR(10) NOT NULL,
Prenom_patient VARCHAR(10) NOT NULL,
Adr_patient VARCHAR(20) DEFAULT 'Tunis',
Age NUMERIC(2, 0) CHECK (Age > 0));
b-Créer la table traite
CREATE TABLE Traite (
Num_patient NUMERIC(4, 0),
Code_med VARCHAR(10),
Date_deb_trait DATE,
PRIMARY KEY (Num_patient, Code_med, Date_deb_trait),
FOREIGN KEY (Num_patient) REFERENCES Patient(Num_patient),
FOREIGN KEY (Code_med) REFERENCES Medecin(Code_med));
c-
CREATE TABLE Medecin (
Code_med VARCHAR(10) PRIMARY KEY,
Nom_med VARCHAR(10) NOT NULL,
Prenom_med VARCHAR(10) NOT NULL,
Tel_med VARCHAR(20),
Specialite VARCHAR(50));
d-
CREATE TABLE Sejour (
Num_sej NUMERIC(4, 0) PRIMARY KEY,
Num_chambre VARCHAR(10),
Date_deb DATE,
Date_fin DATE,
Num_patient NUMERIC(4, 0),
FOREIGN KEY (Num_patient) REFERENCES Patient(Num_patient));
2)
D’ insérer les données suivantes à notre base:
Table Patient
INSERT INTO Patient (num_patient, nom_patient, prenom_patient, adr_patient,
age)
VALUES
(133, 'Tounsi', 'Ahmed', 'Béjà', 47),
(6754, 'Souissi', 'Asma', 'Bizerte',50);
Table Sejour
INSERT INTO Sejour (num_chambre, date_deb, date_fin, num_patient, Num_sej)
VALUES
('13', '2007-12-12', '2007-01-10', 133, 1001),
('56', '2007-01-01', '2007-01-23', 6754, 1300);3)
3) Ajouter 2 ans à l’âge du patient ayant le numéro "133".
UPDATE Patient
SET age = age + 2
WHERE num_patient = 133;
4) Attribuer la nouvelle adresse "Nabeul" aux patients qui avaient comme adresse "Tunis"
UPDATE Patient
SET adr_patient = 'Nabeul'
WHERE adr_patient = 'Tunis';
5) Supprimer tous les séjours ayant pour numéro de chambre "5" ou une date_deb entre " 01-01-2007"
et "18-02-2007".
DELETE FROM Sejour
WHERE num_chambre = '5'
OR (date_deb BETWEEN '2007-01-01' AND '2007-02-18');
6) Ajouter 20 jours à la date_fin de séjour du patient ayant le numéro "6754"
UPDATE Sejour
SET date_fin = DATE_ADD(date_fin, INTERVAL 20 DAY)
WHERE num_patient = 6754;
7) Supprimer tous les enregistrements de la table Sejour.
DELETE FROM Sejour;
8) Afficher tous les patients
SELECT *
FROM Patient;
9) Afficher les noms , les prénoms et le numéro de tel des médecins de spécialité « pédiatrie »
SELECT nom_med, prenom_med, tel_med
FROM Medecin
WHERE specialite = 'pédiatrie';