Vous êtes sur la page 1sur 9

Leçon 

Manipulation des données

Objectifs d’apprentissage
Les stagiaires vont apprendre à :
 Utiliser des requêtes pour sélectionner des données
 Utiliser des requêtes pour insérer des données
 Mettre à jour des données et des bases de données
 Supprimer des données

Compétences ODN
 Sélectionner des données. 3.1
 Insérer des données. 3.2
 Mettre à jour des données. 3.3
 Supprimer des données. 3.4

Résumé de la leçon — Notes sur le cours


Cette leçon fournit des instructions quant à l’utilisation des bases de données pour
accéder aux données dont vous avez besoin en vous concentrant sur les requêtes.
Par conséquent, la leçon commence par la commande SELECT. La discussion se
poursuit avec l’association des conditions à l’aide des clauses BETWEEN, NOT,
UNION, EXCEPT, INTERSECT et JOIN. La meilleure façon d’enseigner cette section
consiste à présenter des exemples sur une base de données active afin que les stagiaires
puissent voir les résultats renvoyés.
En parallèle à l’affichage des données de la base de données, vous devrez également
saisir des données. Ainsi, la partie suivante de la leçon utilise des requêtes pour insérer
des données, suivi de la procédure pour utiliser l’instruction UPDATE.
La dernière partie de la leçon portera sur la suppression des données à l’aide des
commandes DELETE, TRUNCATE et DROP. Les stagiaires doivent faire la différence
entre les trois commandes et le moment opportun pour utiliser chacune d’entre elles.

3-1
Termes clés
cross join : clause qui retourne toutes les lignes d’une table avec toutes les lignes
de l’autre table.
delete : instruction utilisée pour supprimer les lignes d’une table ou d’une vue.
intégrité référentielle : mesure de basculement qui ne permet pas la suppression
des tables, sauf si elles étaient éventuellement en fin de relation.
intersect : clause retournant toute valeur distincte non retournée à la fois par la requête
à gauche et par la requête à droite de cette opérande.
join : clause vous permettant de combiner des données associées à partir de plusieurs
sources de table.
select : instruction utilisée pour récupérer ou extraire des données d’une table.
transaction : méthode qui ajoute, supprime ou modifie les données d'un lot. Lorsque tout
est exécuté correctement, une instruction COMMIT est émise. Si une des instructions
contenait une erreur, une restauration pourrait être émise depuis SQL.
union : clause qui vous permet de combiner les résultats de deux, voire de plusieurs
requêtes, en un ensemble unique qui comprendra toutes les lignes appartenant à la requête
de cette union.
update : instruction utilisée pour modifier les données d’une table ou d’une vue.

3-2
Leçon 3
Manipulation des données
Évaluation des connaissances
Vrai ou faux
Entourez V si l’affirmation est vraie ou F si elle est fausse.
V F 1. L’instruction SELECT est limitée aux données de requête à partir
d’une table unique.
V F 2. L’instruction INSERT peut être utilisée pour insérer plusieurs
lignes à la fois.
V F 3. L’instruction TRUNCATE est utilisée pour supprimer une table.
V F 4. Une condition INNER JOIN est identique à une condition
CROSS JOIN et WHERE.
V F 5. L’ordre des colonnes dans l’instruction SELECT doit correspondre
à l’ordre dans lequel elles ont été créées lorsque la table a été
créée.
Compléter l’espace vide
Complétez les phrases suivantes en écrivant le ou les mots corrects dans
l’espace fourni.
1. L’instruction SELECT est utilisée pour interroger et combiner des données
à partir d’une, voire de plusieurs tables ou vues.
2. La clause WHERE d’une instruction SELECT contient un ou plusieurs
conditions ou prédicats pour filtrer les données interrogées.
3. L’utilisation de l’instruction truncate est la façon la plus efficace de
supprimer toutes les lignes d’une table.
4. Pour combiner les résultats de deux requêtes, utilisez l’opérateur union.
5. Utilisez l’instruction update pour modifier une, voire plusieurs lignes
d’une table.
6. En utilisant l’instruction begin tran et les instructions commit ou rollback
tout en exécutant des tâches de maintenance, vous intercepterez la plupart des
accidents avant qu’ils ne surviennent.
7. La suppression d’une table toute entière est possible à l’aide de la syntaxe
DROP TABLE et <table_name>.
8. Si vous souhaitez sélectionner une unique colonne pour votre requête,
identifiez le nom de la colonne en la saisissant entre le mot Select et from
dans l’instruction de la requête.

3-3
9. Vous pouvez combiner plusieurs conditions en une instruction de requête
pour répondre à vos besoins.
10. La clause union vous permet d’associer les résultats de deux, voire de
plusieurs questions dans un unique ensemble cible qui inclura toutes les
lignes qui appartiennent à la requête.
QCM
Entourez la lettre correspondant à la bonne réponse.
1. Parmi les conditions suivantes, laquelle n’est pas valide ?
a. salary <> 50000
b. salary != 50000
c. salary NOT EQUAL 50000
d NOT salary = 50000
2. Parmi les opérateurs suivants, lequel n’est pas pris en charge lors
de l’association des résultats entre les instructions SELECT ?
a. UNION
b. EXCEPT
c. INTERSECT
d. AND
3. Laquelle des conditions de plage suivantes est susceptible de générer
une erreur de syntaxe ?
a. salary <= 50000 and salary >= 10000
b. salary between (10000 and 50000) and (60000 and 90000)
c. salary >= 10000 and salary <= 50000
d. salary between 10000 and 50000
4. Laquelle des propositions suivantes combinera les résultats de deux, voire
de plusieurs requêtes en un ensemble unique incluant toutes les lignes
appartenant à la requête ?
a. UNION
b. EXCEPT
c. INTERSECT
d. AND
5. Parmi les propositions suivantes, laquelle est utilisée pour empêcher
la suppression accidentelle des données d’une table ?
a. Transactions
b. Valeurs nulles
c. Jointures internes
d. Intégrité référentielle

3-4
Évaluation des compétences
Scénario 3-1 : Utilisation de la commande SELECT
Vous venez d’être recruté au poste de DBA au sein d’AdventureWorks Corporations. Un
administrateur réseau vient vers vous et souhaite savoir comment extraire des
informations à partir des bases de données AdventureWorks. Par conséquent, vous devez
répondre aux questions suivantes :
1. Quelle commande pouvez-vous utiliser pour afficher des enregistrements
d’une table ?
SELECT
2. Quelle commande pouvez-vous utiliser pour afficher le prénom (FirstName)
et le nom (LastName) à partir de la table Users ?
SELECT FirstName, LastName FROM Users
3. Quelle commande pouvez-vous utiliser pour afficher tous les
enregistrements de la base de données Member et pour la trier par colonne
Name ?
SELECT * FROM Member ORDER BY Name
4. Quelle commande pouvez-vous utiliser pour afficher tous les
enregistrements de la table Suppliers pour les fournisseurs de Sacramento ?
SELECT * FROM Suppliers WHERE City= ‘Sacramento’;
5. Quelle commande pouvez-vous pour afficher les données CompanyName,
ContactName et PhoneNumber de la table Suppliers pour les fournisseurs
ayant un ID de fournisseur (Supplier ID) supérieur à 1 000 ?
SELECT CompanyName, ContactName, PhoneNumber FROM suppliers
WHERE Supplier_ID>1000
6. Quelle commande pouvez-vous utiliser pour afficher les données
CompanyName, Contact et PhoneNumber de la table Clients pour les
sociétés ayant plus de 100 employés résidant dans l’état de Californie.
SELECT CompanyName, Contact, PhoneNumber FROM Customers
WHERE Employees > 100
UNION
SELECT CompanyName, Contact, PhoneNumber FROM Customers
WHERE State=CA
Scénario 3-2 : Suppression des données des tables
Une fois qu’un administrateur réseau et vous-même avez examiné certains
enregistrements dans la base de données AdventureWorks, vous décidez d’un commun
accord de supprimer certains anciens enregistrements. Par conséquent, vous devrez
répondre aux questions suivantes.
1. Quelle commande pouvez-vous utiliser pour supprimer tous
les enregistrements à partir de la table Customer, où l’attribut Age
est inférieur à 18 ?

3-5
DELETE FROM Customer WHERE Age<18

3-6
2. Quelle commande pouvez-vous utiliser pour supprimer tous les
enregistrements de la table Schools où Enrollment est inférieur à 500 ?
DELETE FROM Schools WHERE Enrollment < 50
3. Quelle commande pouvez-vous utiliser pour supprimer tous les
enregistrements de la table Contact pour les contacts ne provenant pas des
États-Unis, libérant ainsi l’espace utilisé par ces enregistrements ?
TRUNCATE FROM Contact WHERE NOT Country = ’USA’
4. Quelle commande pouvez-vous utiliser pour supprimer la table Temp ?
Drop Temp

Évaluation de la maîtrise
Scénario 3-3 : Manipulation des données à l’aide des instructions SELECT
et JOIN
Vous occupez le poste de DBA au sein d’AdventureWorks Corporation. Nous observons
une certaine confusion avec les bons de commande stockés dans les deux tables. Par
conséquent, vous devez écrire une requête qui, dans notre exemple de base de données,
AdventureWorks, joindra la table PurchaseOrderHeader à elle-même pour fournir une
liste des bons de commande associés. Chaque ligne inclut deux bons de commande avec
des fournisseurs et des méthodes d’expédition identiques.
1. Après avoir ouvert SSMS et accédé à la base de données AdventureWorks,
quelle requête pouvez-vous utiliser par rapport à la base de données
AdventureWorks qui affichera ProductSubcategoryID et
ProductCategoryID de la table Production.ProductSub et contenant le mot
Bike ? Vous souhaitez également effectuer un tri par nom de sous-catégorie
(Subcategory Name).
2. Quelle requête souhaitez-vous utiliser pour joindre la table
ProductCategory à la table ProductSubcategory afin de récupérer la
colonne Name depuis la table ProductCategory ?
Au cours de cet exercice, les stagiaires écriront une requête pour joindre, dans notre exemple de base
de données, AdventureWorks, la table PurchaseOrderHeader à elle-même pour fournir une liste des
bons de commande associés. Chaque ligne inclut deux bons de commande avec des fournisseurs et
des méthodes d’expédition identiques.
Avant de commencer : Avant de commencer cet exercice, les éléments suivants doivent être installés
sur leurs ordinateurs :

 SQL Server 2008 (si vous n’avez pas de copie, vous pouvez télécharger une copie gratuite)
 L’exemple de base de données AdventureWorks que vous devrez télécharger gratuitement
sur le site Web de Microsoft SQL Server à l’adresse
http://msftdbprodsamples.codeplex.com/releases/view/24854
1. Si SQL Server Management Studio n’est pas déjà ouvert, vous pouvez le faire en cliquant sur
Démarrer | Tous les programmes | Microsoft SQL Server 2008 | SQL Server Management
Studio.

3-7
2. Créez une nouvelle requête par rapport à la base de données AdventureWorks qui affichera
ProductSubcategoryID et ProductCategoryID à partir de la table Production.ProductSub
et contenant le mot « Bike ». Triez par nom de sous-catégorie (Subcategory Name).
USE AdventureWorks
SELECT ProductSubcategoryID, ProductCategoryID
, Name AS ‘Subcategory Name’
FROM Production.ProductSubcategory
WHERE Name LIKE ‘%Bike%’
ORDER BY [Subcategory Name];
Notez que depuis cette instruction, le résultat comprend un numéro de catégorie de produit, mais pas
un nom de catégorie.
3. Maintenant, modifiez la requête qui joint la table ProductCategory à la table
ProductSubcategory afin de récupérer la colonne Name à partir de la table ProductCategory.
SELECT ProductSubcategoryID, Production.ProductCategory.ProductCategoryID
, Production.ProductSubcategory.Name AS ‘Subcategory Name’
, Production.ProductCategory.Name AS ‘Category Name’
FROM Production.ProductSubcategory
INNER JOIN Production.ProductCategory
ON Production.ProductCategory.ProductCategoryID =
Production.ProductSubcategory.ProductCategoryID
WHERE Production.ProductSubcategory.Name LIKE ‘%Bike%’
ORDER BY [Subcategory Name];
Scénario 3-4 : Manipulation des données à l’aide des instructions INSERT
et UPDATE
En tant que DBA au sein d’AdventureWorks, vous devez insérer des données dans la
table Credit dans la base de données Sales à l’aide d’une variété de données en parallèle
à la mise à jour et à la suppression de données de la même table Credit.
Au cours de l’exercice suivant, les stagiaires insèreront des données dans la table Credit dans la base
de données Sales à l’aide de plusieurs instructions de données en parallèle à la mise à jour et à la
suppression des données de la même table Credit.
1. Après avoir ouvert SSMS, quelles commandes pouvez-vous taper et exécuter dans la base de données
AdventureWorks pour examiner les colonnes dans la table Sales ?
USE AdventureWorks
GO
USE Sales;
GO
SELECT * FROM Credit;
2. Dans la fenêtre Requête existante, quelles commandes pouvez-vous taper, surligner et exécuter pour
ajouter la ligne suivante à la table Credit en spécifiant les valeurs pour chaque colonne basée sur son
emplacement relatif dans le schéma de table, à l’aide de l’instruction suivante ?
Patrick, Roberts, 6000, Roberts@telecome.usa
Patrick, Roberts, 6000, Roberts@telecome.usa
INSERT INTO Credit
VALUES (‘Patrick’, ‘Roberts, 6000, ‘roberts@telecom.usa’);

3-8
3. Dans la fenêtre Requête existante, quelles commandes pouvez-vous taper, surligner et exécuter pour
ajouter les lignes suivantes à la table Credit pour le prénom (firstname), le nom (lastname) et la limite
de crédit (credit limit) ?
INSERT INTO Credit
(firstname, lastname, creditlimit)
VALUES (‘Alex’, ‘Hall’, 5000)
INSERT INTO Credit
(firstname, lastname, creditlimit)
VALUES (‘Annie’, ‘Smith’, 10000);
4. Dans la fenêtre Requête existante, quelles commandes pouvez-vous utiliser pour mettre à jour l’adresse
e-mail pour Annie Smith dans la table Credit à l’aide de l’instruction Update ?
USE Sales;
GO
UPDATE Credit
SET Email = ‘annie@teakimports.com’
WHERE CustomerID = 4;

3-9

Vous aimerez peut-être aussi