STI
Systèmes & Technologies de l'Informatique
Classe : 4e Sciences de l'Informatique
S
Série : Gestion des données
Nom du prof : M Ladhari Tijani
STI
Anglais
Exercice 90 min
Soit la base de données "GestionHopitale", on donne ci-dessous les commandes SQL utili-
sée lors de la création des différentes tables dans cette base
-- Table Chambres--
CREATE TABLE Chambres (
Num_Chambre INT AUTO_INCREMENT PRIMARY KEY,
Disponibilite VARCHAR(20));
-- Table Patients--
CREATE TABLE Patients (
ID_Patient INT AUTO_INCREMENT PRIMARY KEY,
NomPrePat VARCHAR(50),
Date_de_naissance DATE,
Genre CHAR(1),
telephone VARCHAR(20),
Num_Chambre INT,
Constraint FK1 FOREIGN KEY (Num_Chambre) REFERENCES
Chambres(ID_Chambre));
-- Table Médecins--
CREATE TABLE Medecins (
Mat_Medecin VARCHAR(50) PRIMARY KEY,
NomPreMed VARCHAR(50),
telephone VARCHAR(20));
-- Table Specialites--
CREATE TABLE Specialites (
Code_Specialite INT PRIMARY KEY,
Nom_Specialite VARCHAR(100) NOT NULL
);
1
STI
Anglais
1. Soit la rège de gestion suivante :
R1 :Un médecin à une seule spécialité et une spécialité appartient à plusieurs médecins
a) Donner la nouvelle représentation textuelle de la table médecin et de la table
spécialité
b) Ecrire une requête SQL permettant de tenir compte de cette nouvelle règle.
2. Soit la règle de gestion suivante :
R2 : Pendant une période donnée, chaque patient peut être pris en charge par plusieurs
médecins, et chaque médecin peut suivre plusieurs patients.
Ecrire une requête SQL permettant de tenir compte de cette nouvelle règle.
3. Le nom et prénom du patient est obligatoire , écrire la commande SQL qui permet
d’ajouter cette contrainte
4. Le numéro de téléphone du médecin est unique , écrire la commande SQL , écrire la
commande SQL qui permet d’ajouter cette contrainte
5. La colonne "Disponibilite" de la table Chambre peut prendre seulement les valeurs
'N' ou 'O' sachant que N désigne que la chambre est non disponible et O qu'elle est
disponible. Ecrire la requête SQL qui permet d’ajouter cette contrainte
6. On veut insérer une nouvelle chambre dans la base de données :
Numéro_chambre Disponibilite
100 O
Cochez la requête SQL qui permet de réaliser cette opération :
Insert into chambres Values ( 100 , 'O' ) ;
Insert into chambres (Num_chambre, Disponibilite) Values ( 100 , 'O' ) ;
Insert into chambres Values ( NULL , 'O' ) ;
7. On veut décaler de deux jours les dates de sortie de toutes les prises en charge dont la date
d’entrée est aujourd’hui.
Ecrire la commande SQL pour insérer cet enregistrement
2
STI
Anglais
8. Soit la requête suivante :
DELETE FROM Chambres WHERE Num_Chambre = 100 ;
a) L’exécution de la requête a échoué. Expliquer ?
b) Proposer une solution SQL à cette anomalie.
9. Ecrire les requêtes SQL permettant d’afficher :
a) Les médecins dont le nom contient la lettre 'a' en deuxième position. on affiche le nom et
prénom du médecin
b) Les patients qui ont été suivis par le médecin dont la matricule est M150 pendant une
période supérieure ou égale à 3 jours , on affiche le nom et prénom du patient triés en
ordre décroissant.
c) Le nombre d'hospitalisations pour chaque mois de l'année 2026. On affichera le mois
ainsi que le nombre total d'hospitalisations.
d) Les médecins ayant pris en charge plus de 10 patients. On affichera le NOM et le
PRÉNOM du médecin ainsi que le nombre de patients concernés.
e) Les noms et prénoms des médecins qui ne suivent aucun patient.
f) Les noms et prénoms des patients qui sont suivis par les mêmes médecins que ceux qui
suivent le patient dont l’ID est 100.