Base de données les requêtes SQL et manipulation des données

Extrait du cours manipulation des données

B) Les requêtes imbriquées
Elles sont appelées également sous-requêtes. Il s’agit d’une requête incorporée dans la commande WHERE ou HAVING d’une autre requête (requête principale). Cette dernière utilise les résultats de la sous-requête.
Certaines sous-requêtes permettent de remplacer les jointures. Les sous-requêtes renvoient une ou plusieurs valeurs.
1- La requête ne renvoie qu’une seule valeur.
L’imbrication de la requête avec la sous-requête se fera avec un opérateur de comparaison (=, >, etc)
On souhaite connaître le code éditeur et le nom de l’éditeur du livre I101
La requête SQL peut alors être la suivante :
SELECT CodeEditeur, NomEditeur
FROM EDITEUR, LIVRE
WHERE CodeEditeur.EDITEUR=CodeEditeur.LIVRE
AND CodeLivre IN (‘I101’)
Elle peut également être la suivante :
SELECT CodeEditeur,NomEditeur
FROM EDITEUR
WHERE CodeEditeur =
(SELECT CodeEditeur
FROM LIVRE
WHERE CodeLivre IN(‘I101’)) ;
Remarque : La sous-requête est notée entre parenthèses.
Les requêtes imbriquées sont particulièrement adaptées avec des fonctions statistiques dans la sous-requête.
Exemple :
– Quel est le CodeLivre ayant le nombre de pages le plus élevé ?
SELECT CodeLivre
FROM LIVRE
WHERE NbrePages =
(SELECT Max(NbrePages)
FROM LIVRE );
2- La sous-requête renvoie plusieurs valeurs
L’imbrication se fera avec bien souvent l’opérateur logique IN
Exemple :
On souhaite connaître le code editeur et le nom de l’éditeur des livres appelés INFO
La requête SQL peut alors être la suivante :
SELECT Distinct CodeEditeur, NomEditeur
FROM EDITEUR, LIVRE
WHERE CodeEditeur.EDITEUR=CodeEditeur.LIVRE
AND NomLivre IN(‘Info’)
Elle peut également être la suivante :
SELECT CodeEditeur,NomEditeur
FROM EDITEUR
WHERE CodeEditeur IN
(SELECT CodeEditeur
FROM LIVRE
WHERE NomLivre IN(‘Info’)) ;
Dans la première formulation, la mention DISTINCT permet d’éliminer les doublons.
ORDER BY ne peut être noté dans une sous-requête.
II- La manipulation des données
Il est possible également de parler de mise à jour ou d’actualisation des données.
Pour cela, il existe principalement 3 commandes : INSERT, UPDATE et DELETE.
A) La commande INSERT
Elle permet d’insérer un ou plusieurs tuples dans une table. Il est possible de dire également que cette commande va permettre d’assurer le « peuplement » des tables de la base à partir de données nouvelles.
Le formalisme est le suivant :
INSERT INTO <TABLE>
VALUES ( ‘ valeur1 ‘,’ valeur2 ‘) ;
Exemple :
INSERT INTO EDITEUR
VALUES (‘LACO1’,’BertrandLacopee’, ‘8, rue de Nevers’,’75009’,’PARIS’)
Si la mise à jour n’existe que pour quelques attributs, le formalisme est le suivant :
INSERT INTO <TABLE> (ATTRIBUT1, ATTRIBUT2)
VALUES (‘valeur1′,’valeur2’) ;
Il est alors nécessaire de respecter l’ordre des attributs.
……..

Si le lien ne fonctionne pas correctement, veuillez nous contacter (mentionner le lien dans votre message)
Base de données les requêtes SQL et manipulation des données (544 KO) (Cours PDF)
manipulation des données

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *