TP4MySQLfinal .pdf



Nom original: TP4MySQLfinal.pdf

Ce document au format PDF 1.5 a été généré par Zamzar, et a été envoyé sur fichier-pdf.fr le 29/04/2016 à 14:59, depuis l'adresse IP 41.229.x.x. La présente page de téléchargement du fichier a été vue 382 fois.
Taille du document: 294 Ko (6 pages).
Confidentialité: fichier public




Télécharger le fichier (PDF)










Aperçu du document


ISET Gabès

Atelier Informatique

TP4 MySQL
SQL : Le langage de manipulation de données LMD
I.

Langage de Manipulation de Données

Ce langage nous permet de rechercher, de modifier , d’ajouter et de supprimer les données d’une
table à travers des requêtes SQL.

1. Insertion de données INSERT INTO

Syntaxe :
INSERT INTO Nom_Table [(Attr1, Attr2,…, Attrn)]
VALUES (Val1, Val2,…, Valn);
Permet d’insérer un tuple à la fois.

Ou
INSERT INTO Nom_Table (Attr1, Attr2,…, Attrn)
SELECT…;
Permet d’insérer plusieurs tuples à partir d’une ou plusieurs autres tables.
Notre base de données se présente comme suit :
F (NF, Nomf, Ville)
P (NP, Libp, Coul, Poids, PU, Qtes)
J (NJ, Desig, Ville, Datdeb, DatFin)
FPJ (NF, NP, NJ, Qte)
Applications :
 Remplissage de la table F.
INSERT INTO F VALUES('F001','BATAM','Tunis');
INSERT INTO F VALUES('F002','BATIMENT','Tunis');
INSERT INTO F VALUES('F003','AMS','Sousse');
INSERT INTO F VALUES('F004','GLOULOU','Sousse');
INSERT INTO F VALUES('F005','PRODELEC','Tunis');
INSERT INTO F VALUES('F006','ELECTRON','Sousse');
INSERT INTO F VALUES('F007','SBATIM','Sousse');
INSERT INTO F VALUES('F008','SANITAIRE','Tunis');
INSERT INTO F VALUES('F009','SOUDURE','Tunis');
INSERT INTO F VALUES('F010','MELEC','MONASTIR');
INSERT INTO F VALUES('F011','MBATIM','MONASTIR');
INSERT INTO F VALUES('F012','BATFER','Tunis');
 Remplissage de la table P.
INSERT INTO P VALUES('P001','Robinet','Gris',5,18,1200);
INSERT INTO P VALUES('P002','Prise','Blanc',1.2,1.5,1000);
INSERT INTO P VALUES('P003','Cable','Blanc',2,25,1500);
INSERT INTO P VALUES('P004','Peinture','Blanc',25,33,900);
INSERT INTO P VALUES('P005','Poignée','Gris',3,12,1300);
INSERT INTO P VALUES('P006','Serrure','Jaune',2,47,1250);
INSERT INTO P VALUES('P007','Verrou','Gris',1.7,5.5,2000);
INSERT INTO P VALUES('P008','Fer','Noir',50,90,800);
 Remplissage de la table J.

1

ISET Gabès
INSERT
INSERT
INSERT
INSERT
INSERT

INTO
INTO
INTO
INTO
INTO

Atelier Informatique
J
J
J
J
J

VALUES('J001','ISET','Sousse','10/12/2000','10/12/2004');
VALUES('J002','ISG','Sousse','13/02/2003','13/02/2004');
VALUES('J003','ISET','Tunis','15/01/2003','15/01/2005');
VALUES('J004','METS','Sousse','03/09/2003','03/09/2004');
VALUES('J005','FSEG','Monastir','11/03/2000','11/03/2004');

 Remplissage de la table FPJ.
INSERT INTO FPJ VALUES('F001','P001','J001',100);
INSERT INTO FPJ VALUES('F001','P002','J001',50);
INSERT INTO FPJ VALUES('F001','P003','J001',20);
INSERT INTO FPJ VALUES('F001','P004','J002',25);
INSERT INTO FPJ VALUES('F001','P005','J002',10);
INSERT INTO FPJ VALUES('F001','P006','J003',13);
INSERT INTO FPJ VALUES('F001','P007','J004',150);
INSERT INTO FPJ VALUES('F001','P008','J004',15);
INSERT INTO FPJ VALUES('F002','P001','J002',40);
INSERT INTO FPJ VALUES('F002','P003','J003',10);
INSERT INTO FPJ VALUES('F002','P005','J005',20);
INSERT INTO FPJ VALUES('F003','P001','J002',12);
INSERT INTO FPJ VALUES('F003','P006','J004',35);
INSERT INTO FPJ VALUES('F004','P001','J003',22);
INSERT INTO FPJ VALUES('F004','P007','J004',11);
INSERT INTO FPJ VALUES('F005','P001','J004',18);
INSERT INTO FPJ VALUES('F006','P001','J003',8);
INSERT INTO FPJ VALUES('F006','P003','J004',14);
INSERT INTO FPJ VALUES('F006','P006','J004',23);
INSERT INTO FPJ VALUES('F006','P007','J005',42);
INSERT INTO FPJ VALUES('F007','P001','J001',5);
INSERT INTO FPJ VALUES('F007','P001','J002',18);
INSERT INTO FPJ VALUES('F007','P002','J003',17);
INSERT INTO FPJ VALUES('F007','P004','J004',10);
INSERT INTO FPJ VALUES('F007','P004','J005',20);
INSERT INTO FPJ VALUES('F008','P001','J002',6);
INSERT INTO FPJ VALUES('F009','P001','J003',50);
INSERT INTO FPJ VALUES('F009','P005','J004',21);
INSERT INTO FPJ VALUES('F010','P001','J001',2);
INSERT INTO FPJ VALUES('F011','P001','J002',65);
INSERT INTO FPJ VALUES('F011','P002','J002',19);
INSERT INTO FPJ VALUES('F011','P003','J002',56);
INSERT INTO FPJ VALUES('F012','P001','J001',7);
INSERT INTO FPJ VALUES('F012','P004','J005',50);

2. Modification des données UPDATE

En utilisant la commande UPDATE.
Syntaxe :
UPDATE Nom_Table
SET Attr1 = Expr1, Attr2 = Expr2
WHERE Condition;
Application :

2

ISET Gabès

Atelier Informatique

 Modifier le Poids de la Pièce de numéro P002 à 1.
UPDATE P
SET Poids = 1
WHERE NP = 'P002';
 Augmenter la quantité en stock des différentes pièces de 10%.
UPDATE P
SET Qtes = 1.1 * Qtes;

3. Suppression de données DELETE FROM

Syntaxe :
DELETE FROM Nom_Table
WHERE Condition;

4. Interrogation de la base :SELECT

Applications :
 Donner la liste des fournisseurs.
SELECT *
FROM F;
NB : ‘*’ remplace l’ensemble de tous les attributs de la table.
 Donner le numéro et le nom des fournisseurs de la ville de Sousse.
SELECT NF, Nomf
FROM F
WHERE Ville = 'Sousse';
NB : les opérateurs arithmétiques qui peuvent être utilisés dans la clause WHERE sont : =, >, <, >=,

<=, <>
 Donner l’ensemble des pièces qui ont été utilisées dans les projets (NP seulement).
SELECT DISTINCT NP
FROM FPJ;
NB : DISTINCT est utilisé pour éliminer les duplications, par défaut on obtient tous les tuples (ALL).
 Donner la liste des projets dont la date de début > ‘01/01/2004’.
SELECT *
FROM J
WHERE DatDeb > '01/01/2004';
 Donner la liste des pièces dont le prix est compris entre 10 et 50.
SELECT *
FROM P
WHERE PU BETWEEN 10 AND 50;
 Donner la liste des fournisseurs dont les noms commencent par ‘B’.
SELECT *
FROM F
WHERE Nomf LIKE 'B%';
NB : LIKE permet l’utilisation des jokers (%) et (-) :
(%) remplace n caractères
(-) remplace 1 caractère

3

ISET Gabès

Atelier Informatique

 Donner les numéros et désignation des projets dont les dates de début ou de fin se trouvent
parmi les dates suivantes : ('10-12-00','10-12-04','13-02-03','11-03-04').
SELECT NJ,Desig
FROM J
WHERE DatDeb IN ('10-12-00','10-12-04','13-02-03','11-03-04')
OR DatFin IN ('10-12-00','10-12-04','13-02-03','11-03-04');

NB :
1. les opérateurs logiques sont :NOT, AND et OR. Ils permettent de combiner plusieurs expressions
logiques dans WHERE.

2. Il existe aussi l’opérateur NOT IN.
 Donner les numéros de projets qui n’ont pas de désignation.
SELECT NJ
FROM J
WHERE Desig IS NULL;
b.Sélection avec jointure : Il s’agit ici de sélectionner es données provenant de plusieurs tables ayant
un ou plusieurs attributs communs. Cette jointure sera assurée grâce aux conditions spécifiées
dans la clause WHERE.
Syntaxe :
SELECT [DISTINCT] Attr1, Attr2, …, Attrn
FROM Nom_Table1, Nom_Table2
WHERE Nom_Table1.Attrj = Nom_Table2.Attrj
AND Condition2
…;
Applications :
 Donner les libellés des pièces utilisées dans le projet de numéro ‘J002’.
SELECT DISTINCT Libp
FROM P,FPJ
WHERE P.NP = FPJ.NP
AND NJ='J002';
 Donner les pièces (toutes les informations) utilisées dans les projets qui ont démarré au cours
de l’année 2003 et qui sont fournies par des fournisseurs de Tunis.
SELECT DISTINCT P.NP, Libp, coul, Poids, PU, Qtes
FROM P,J, FPJ,F
WHERE P.NP = FPJ.NP
AND F.NF = FPJ.NF
AND J.NJ = FPJ.NJ
AND F.Ville ='Tunis'
AND DatDeb BETWEEN '01/01/03' AND '31/12/03';
NB : Dans certaines requêtes, on est obligé de renommer soit des tables, soit des attributs.
Exemple : Donner les libellés des pièces qui ont un prix unitaire supérieurs à celui de la pièce
‘Robinet’.

4

ISET Gabès

Atelier Informatique

SELECT P.Libp
FROM P, P P1
WHERE P.PU > P1.PU AND P1.Libp ='Robinet';
c.Groupement : Il est possible de grouper des lignes de données ayant une valeur commune à l’aide
de la clause GROUP BY et des fonctions de groupe qui sont :
AVG
Moyenne
SUM
Somme
MIN
Minimum
MAX
Maximum
COUNT (*)
Nombre de lignes
COUNT([DISTINCT] Attr)
Nombre de valeurs non nulles de l’attribut
VARIANCE
Variance
STDDEV
Ecart type
Syntaxe :
SELECT Attr1, Attr2,…, Fonction_Groupe
FROM Nom_Table1, Nom_Table2,…
WHERE Liste_Condition
GROUP BY Liste_Groupe
HAVING Condition;
Applications :
 Donner le nombre de fournisseurs par projet.
SELECT NJ, COUNT(DISTINCT(NF)) Nbfrs
FROM FPJ
GROUP BY NJ;
 Donner le nombre de fournisseurs par projet en spécifiant les désignations et les villes des
projets.
SELECT FPJ.NJ, Desig, Ville, COUNT(DISTINCT(NF)) Nbfr
FROM FPJ, J
WHERE FPJ.NJ = J.NJ
GROUP BY FPJ.NJ, Desig, Ville;
 Donner la quantité totale commandée par pièce.
SELECT NP, SUM(Qte)
FROM FPJ
GROUP BY NP;
 Donner le total des dépenses par projet.
SELECT NJ,SUM(PU*Qte) Depense
FROM P,FPJ
WHERE FPJ.NP = P.NP
GROUP BY NJ;
 Donner les pièces dont les prix unitaires dépasse la moyenne des prix.
SELECT *
FROM P

5

ISET Gabès

Atelier Informatique

WHERE PU > (SELECT AVG(PU) FROM P);
 Donner les projets dont le nombre de fournisseurs dépasse 4.
SELECT NJ, Count(DISTINCT NF)
FROM FPJ
GROUP BY NJ
HAVING Count(DISTINCT NF) > 4;
d.Tri : Les lignes constituant le résultat d’un SELECT sont obtenues dans un ordre quelconque.
La clause ORDER BY précise l’ordre dans lequel la liste des lignes sélectionnées sera donnée.
Syntaxe :
SELECT Attr1, Attr2,…, Attrn
FROM Nom_Table1, Nom_Table2,…
WHERE Liste_Condition
ORDER BY Attr1 [ASC], Attr2 DESC;
NB : L’ordre de tri par défaut est croissant (ASC).
Application :
 Donner les pièces des projets de Sousse suivant l’ordre décroissant de leurs quantités totales.
SELECT FPJ.NP, Libp, SUM(Qte) TotQt
FROM P, FPJ, J

WHERE P.NP = FPJ.NP
AND J.NJ = FPJ.NJ
AND Ville = 'Sousse'
GROUP BY FPJ.NP, Libp
ORDER BY TotQt DESC ;

6



Documents similaires


tp4mysqlfinal
serie bd
suite correction tp3 sql de 85 a 107
exercices corriges sql s1 14 fr
psppesymfony
exercicesql banque corrige


Sur le même sujet..