Parc informatique - Modification d'une table
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 :
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
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
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
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
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.
UPDATE Imprimante
SET nom_ordi=NULL WHERE nom_ordi="Gen-133";
DELETE FROM Ordinateur WHERE nom_ordi="Gen-133";