Parc informatique - Modification d'une table

Série d'exercices

Cet exercice fait partie d'une série :

On souhaite gérer le matériel informatique (ordinateurs, vidéoprojecteurs, imprimantes) présent dans un lycée.
Chaque ordinateur dispose d'un nom et est affecté à une salle. Chaque salle dispose d'un ordinateur professeur.
Les vidéoprojecteurs sont affectés à une salle.
Les imprimantes sont le plus souvent reliĂ©es Ă  un ordinateur. Il se peut cependant qu’elles en soient dĂ©connectĂ©es. Le champ nom_ordi vaut NULL dans ce cas-lĂ .

On a enregistré en mémoire une base de données dont la structure est présentée par le schéma ci-dessous :

sql

Le champ prof vaut \(1\) si l'ordinateur est situĂ© au bureau professeur de la salle, et \(0\) sinon. De la mĂȘme façon, le champ tni de la table Videoprojecteur vaut \(1\) s'il s'agit d'un tableau numĂ©rique et \(0\) sinon.

L'exercice utilise les mots DELETE, FROM, INSERT, INTO, UPDATE, VALUES et WHERE.

On demande de complĂ©ter le code proposĂ© pour rĂ©aliser les requĂȘtes SQL suivantes :



Question 1

CrĂ©er la requĂȘte pour modifier la capacitĂ© de la salle "012" et la porter Ă  \(23\) :



Vérifications

La console ci-dessous permet de vérifier que la table a été correctement modifiée :



Solution
SQL
UPDATE Salle
SET capacite = 23
WHERE numero = "012";
Question 2

CrĂ©er la requĂȘte pour supprimer les vidĂ©oprojecteurs qui ne sont pas tni :



Vérifications

La console ci-dessous permet de vérifier que la table a été correctement modifiée :



Solution
SQL
DELETE FROM Videoprojecteur
WHERE tni = 0;
Question 3

CrĂ©er la requĂȘte pour ajouter l'ordinateur Ă©lĂšve "Gen-106" de marque "Dell" et de modĂšle "Insipiron Compact", et installĂ© en \(2025\) en salle "223" :

Ordre des champs

Lors de l'insertion d'un nouvel enregistrement, il est impĂ©ratif de renseigner les valeurs des champs dans le mĂȘme ordre que dans la dĂ©finition de la table.



Vérifications

La console ci-dessous permet de vérifier que la table a été correctement modifiée :



Solution
SQL
INSERT INTO Ordinateur
VALUES ("Gen-106", "223", "Dell", "Insipiron Compact", 2025, 0)
Question 4

CrĂ©er les requĂȘtes pour ajouter la salle "222" de \(32\) places et y transfĂ©rer l'ordinateur "Gen-102" pour qu'il soit l'ordinateur professeur de cette salle :





Vérifications

La console ci-dessous permet de vérifier que les tables ont été correctement modifiées :



Solution
SQL
INSERT INTO Salle
VALUES ("222", 32);
UPDATE Ordinateur
SET salle = "222", prof = 1
WHERE nom_ordi = "Gen-102";
Question 5

CrĂ©er les requĂȘtes qui permettent de supprimer l’ordinateur dont le nom est « Gen-133 » de la table Ordinateur :

Aide

nom_ordi est une clé étrangÚre de la table Imprimante faisant référence à la clé primaire nom_ordi de la table Ordinateur. Penser à une contrainte de clé étrangÚre.





Vérifications

La console ci-dessous permet de vérifier que les tables ont été correctement modifiées :



Solution

nom_ordi est une clĂ© Ă©trangĂšre de la table Imprimante faisant rĂ©fĂ©rence Ă  la clĂ© primaire nom_ordi de la table Ordinateur. On ne peut donc pas supprimer l’ordinateur dont le nom est « Gen-133 » de la table Ordinateur si une imprimante lui est connectĂ©e (contrainte de clĂ© Ă©trangĂšre pour l’intĂ©gritĂ© rĂ©fĂ©rentielle). Il faut commencer par mettre Ă  jour la table Imprimante en mettant Ă  NULL les champs des imprimantes connectĂ©es Ă  cet ordinateur.

SQL
UPDATE Imprimante
SET nom_ordi=NULL WHERE nom_ordi="Gen-133";
DELETE FROM Ordinateur WHERE nom_ordi="Gen-133";