Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parRichaud Leriche Modifié depuis plus de 9 années
1
Initiation aux bases de données et à la programmation événementielle Cours N°3 : langage de manipulation de données. Support de cours de Souheib BAARIR. Page web : pagesperso-systeme.lip6.fr/Souheib.Baarir/bdvba/support.htm E-mail : souheib.baarir@u-paris10.frsouheib.baarir@u-paris10.fr Université Paris Ouest Nanterre la Défense. 2009-2010. 1
2
SQL : requêtes statistiques Plusieurs types de requêtes : d’interrogation. de manipulation. de définition : create, alter, drop… Le Langage de Manipulation de Données (LMD) de SQL est le langage permettant de modifier les informations contenues dans la base. Trois commandes de LMD de SQL : INSERT Ajout d’enregistrements. UPDATE Mise à jour (Modification) d’enregistrements. DELETE Suppression d’enregistrements. 2
3
Insertion : syntaxe 3 INSERT INTO table (champ 1,..., champ n ) VALUES (val 1,...,val n )ou INSERT INTO table (champ 1,..., champ n ) SELECT... table est le nom de la table sur laquelle porte l'insertion. champ 1,..., champ n est la liste des champs pour lesquelles on donne une valeur. –Cette liste est optionnelle. Si elle est omise, le SGBD prendra par défaut l'ensemble des champs de la table dans l'ordre où elles ont été données lors de la création de la table. –Si une liste de champs est spécifiée, les champs ne figurant pas dans la liste auront la valeur NULL.
4
Insertion : exemples (1/2) 4 étudiants N° étudiant NomPrénomformation 105230MARTINMarieMMIA 105234BERNARDLouisGestion 105237THOMASAliceAnglais 105239MARTINBernardAnglais 105250MARIEPhilippeGestion 105211MounierAliceGestion Ajouter l’étudiant DUPOND Jean, dont le N° étudiants 105389 et de la formation Droit, à la table étudiant INSERT INTO étudiant VALUES (105389,"DUPOND","Jean", " Droit") 105389DUPONDJeanDroit
5
Insertion : exemples (2/2) 5 étudiants N° étudiant NomPrénomformation 105230MARTINMarieMMIA 105234BERNARDLouisGestion 105237THOMASAliceAnglais 105239MARTINBernardAnglais 105250MARIEPhilippeGestion 105211MounierAliceGestion N° étudiantNom 105389DUPOND 105400DUPONT 105255THOMAS étudiants-droit Ajouter les étudiants de la table étudiants-droit à la table étudiants. INSERT INTO étudiants([N° étudiant],Nom,formation) SELECT [N° étudiant],Nom,"Droit" FROM étudiants-droit 105389DUPONDDroit 105400DUPONTDroit 105255THOMASDroit Valeurs non renseignées. NULL.
6
Modification : syntaxe 6 UPDATE table SET champ 1 = exp 1,…,champ n = exp n [WHERE condition] table est le nom de la table sur laquelle porte la modification. champ 1,..., champ n est la liste des champs de table sur lesquels doivent porter les modifications. exp 1,..., exp n sont des expressions. condition est un prédicat classique de la clause WHERE
7
Modification : exemples (1/2) 7 étudiants N° étudiant NomPrénomformation 105230MARTINMarieMMIA 105234BERNARDLouisGestion 105237THOMASAliceAnglais 105239MARTINBernardAnglais 105250MARIEPhilippeGestion 105211MounierAliceGestion Renommer, dans la table étudiants, la formation Gestion en Eco-Gestion. UPDATE étudiants SET formation="Eco-Gestion" WHERE formation="Gestion" Eco-Gestion
8
Modification : exemples (2/2) 8 ville départville arrivéeheure départ ParisBoston09:00:00 BerlinRome14:00:00 LondresParis17:00:00 BruxellesMoscou13:00:00 AlgerParis15:00:00 ParisNew York03:00:00 Vol Décaler tous les départs d’une heure. Nous avons besoin d’une fonction particulière : DATEADD (type,nombre,champ), telle que, type : "h" pour heures, "n" pour minutes, "s" pour secondes, "m" pour mois, "y" pour années, "d" pour jours… UPDATE Vol SET [heure départ]=DATEADD("h",1, [heure départ]) 10:00:00 15:00:00 18:00:00 14:00:00 16:00:00 04:00:00
9
Suppression : syntaxe 9 DELETE FROM table [WHERE condition] table est le nom de la table sur laquelle porte la suppression. condition est un prédicat classique de la clause WHERE. ATTENSION : ici la clause WHERE est facultative. Si elle n'est pas précisée, tous les enregistrements de la table seront supprimés !
10
Suppression : exemple 10 ville départville arrivéeheure départ ParisBoston09:00:00 BerlinRome14:00:00 LondresParis17:00:00 BruxellesMoscou13:00:00 AlgerParis15:00:00 ParisNew York03:00:00 Vol Supprimer tous les enregistrements dont la ville d’arrivée est Paris. DELETE FROM Vol WHERE [Ville arrivée]= "Paris"
11
Exercice : BD Aéroport 11 Pilote(Code pilote, nom, prénom, nombre heures) Compagnie(Code Compagnie, nom, origine) Avion(Code Avion, type, capacite) Vol(Code Vol, Ville départ, Ville arrivée, heure départ, jour départ,heure arrivée, jour arrivée, ref pilote, ref avion, ref compagnie) Suite à la défection d’un des pilotes de la compagnie Air France, Mr Youcef MOUKHTARI, la compagnie à décider de recruter un nouveau pilote, Mr Gérard LE GRAND (code pilote : P0025) ayant une expérience de 30000 heures de vols, et de remplacer tous les vols devant être effectués par Mr MouKhtari, par Mr LE GRAND. Comment mettre à jour la BD Aéroport par ces informations ?
12
BD Aéroport : étapes à suivre… 12 Pilote(Code pilote, nom, prénom, nombre heures) Compagnie(Code Compagnie, nom, origine) Avion(Code Avion, type, capacite) Vol(Code Vol, Ville départ, Ville arrivée, heure départ, jour départ,heure arrivée, jour arrivée, ref pilote, ref avion, ref compagnie) 1. Ajouter le nouveau pilote, Mr Gérard LE GRAND, à la table Pilote. 2. Modifier la table Vol, en remplaçant la référence pilote concernant Mr Youcef MOUKHTARI, par la référence à Mr Gérard LE GRAND. 3.Supprimer l’enregistrement concernant Mr Youcef MOUKHTARI de la table Pilote.
13
BD Aéroport : Ajouter le nouveau pilote, Mr Gérard LE GRAND, à la table Pilote. 13 Code piloteNomprénomNombre heures P0001DepuisAntoine20000 P0002SimonGeorges7000 P0003FrançoisLuc35000 P0004AndréGeorge40000 P0005MouKhtariYoucef25000 P0006ArthurGeorges60000 P0007MathieuFrançois9500 P0008LaurentLuc14500 P0009MounierAlexandre1200 P0010Petitbernard13000 Pilote INSERT INTO Pilote VALUES "P0025","LE GRAND", "Gérard", 30000 P0025LE GRANDGérard30000
14
BD Aéroport : Modifier la table Vol, en remplaçant la référence pilote concernant Mr Youcef MOUKHTARI, par la référence à Mr Gérard LE GRAND (1/2) 1 ere Solution (la moins automatique) : Chercher (à la main) le code correspondant à Mr MOUKHTARI dans la table Pilote P0005. Pour la table Vol, écrire la requête qui modifie cette valeur, par celle de Mr LE GRAND (P0025). UPADTE Vol SET [ref pilote] ="P0025" WHERE [ref pilote] ="P0005" Code piloteNomprénomNombre heures P0001DepuisAntoine20000 P0002SimonGeorges7000 P0003FrançoisLuc35000 P0004AndréGeorge40000 P0005MouKhtariYoucef25000 P0006ArthurGeorges60000 P0007MathieuFrançois9500 P0008LaurentLuc14500 P0009MounierAlexandre1200 P0010Petitbernard13000 P0025LE GRANDGérard30000 Pilote Code Vol … ref pilote… V0001 … P0005 … V0002P0007 V0003P0001 V0004P0003 V0005P0001 V0006P0005 V0007P0007 V0008P0002 V0009P0001 V0010P0005 Vol P0025
15
BD Aéroport : Modifier la table Vol, en remplaçant la référence pilote concernant Mr Youcef MOUKHTARI, par la référence à Mr Gérard LE GRAND (2/2) 15 Code Vol … ref pilote… V0001 … P0005 … V0002P0007 V0003P0001 V0004P0003 V0005P0001 V0006P0005 V0007P0007 V0008P0002 V0009P0001 V0010P0005 Vol Code piloteNomprénomNombre heures P0005MOUKHTARIYoucef25000 P0007MathieuFrançois9500 P0001DepuisAntoine20000 P0003FrançoisLuc35000 P0001DepuisAntoine20000 P0005MOUKHTARIYoucef25000 P0007MathieuFrançois9500 P0002SimonGeorges7000 P0001DepuisAntoine20000 P0005MOUKHTARIYoucef25000 2 eme Solution (la plus automatique) : Dériver une nouvelle table pour faire correspondre la référence pilote de Vol au code pilote de Pilote NTable = Vol INNER JOIN Pilote ON Vol.[ref pilote]= Pilote.[Code Pilote] Ecrire la requête qui modifie la référence correspondant à Mr MOUKHTARI par celle de Mr LE GRAND (P0025) de la relation, NTable, produite. UPADTE NTable SET [ref pilote] ="P0025" WHERE nom="Mr MouKhtari" Code piloteNomprénomNombre heures P0001DepuisAntoine20000 P0002SimonGeorges7000 P0003FrançoisLuc35000 P0004AndréGeorge40000 P0005MouKhtariYoucef25000 P0006ArthurGeorges60000 P0007MathieuFrançois9500 P0008LaurentLuc14500 P0009MounierAlexandre1200 P0010Petitbernard13000 P0025LE GRANDGérard30000 Pilote P0025 NTable
16
BD Aéroport : Supprimer l’enregistrement concernant Mr Youcef MOUKHTARI de la table Pilote. 16 Code piloteNomprénomNombre heures P0001DepuisAntoine20000 P0002SimonGeorges7000 P0003FrançoisLuc35000 P0004AndréGeorge40000 P0005MouKhtariYoucef25000 P0006ArthurGeorges60000 P0007MathieuFrançois9500 P0008LaurentLuc14500 P0009MounierAlexandre1200 P0010PetitBernard13000 P0025LE GRANDGérard30000 Pilote DELETE FROM Pilote WHERE nom="Mr MouKhtari"
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.