0% ont trouvé ce document utile (0 vote)
191 vues4 pages

Analyse des commandes et SQL

Le document décrit les différentes étapes d'un traitement sur des données. Il présente ensuite les commandes de manipulation et définition de données en langage SQL.

Transféré par

Cenzo J2K
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
191 vues4 pages

Analyse des commandes et SQL

Le document décrit les différentes étapes d'un traitement sur des données. Il présente ensuite les commandes de manipulation et définition de données en langage SQL.

Transféré par

Cenzo J2K
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

2ème étape : Application de la condition de jointure.

NCmd DateCmd NCl NP Qte


C001 10/12/2003 CL02 P001 250
C001 10/12/2003 CL02 P004 300
C001 10/12/2003 CL02 P006 100
C002 13/02/2004 CL05 P002 200
C002 13/02/2004 CL05 P007 550
C003 15/01/2004 CL03 P001 50
C004 03/09/2003 CL10 P002 100
C004 03/09/2003 CL10 P004 150
C004 03/09/2003 CL10 P005 70
C004 03/09/2003 CL10 P008 90
C005 11/03/2004 CL03 P001 650
C005 11/03/2004 CL03 P002 100
C006 01/03/2004 CL11 P001 20
C007 01/01/2004 CL02 P001 40
C007 01/01/2004 CL02 P002 30

3ème étape : Sélection des commandes du produit P001 uniquement.


NCmd DateCmd NCl NP Qte
C001 10/12/2003 CL02 P001 250
C003 15/01/2004 CL03 P001 50
C005 11/03/2004 CL03 P001 650
C006 01/03/2004 CL11 P001 20
C007 01/01/2004 CL02 P001 40

4ème étape : Groupement par NCl en calculant le nombre de commandes et la somme des
quantités.
NCl NbCmd SomQte
CL02 2 290
CL03 2 700
CL11 1 20

5ème étape : Sélection des groupes ayant un nombre de commandes >= 2.


NCl NbCmd SomQte
CL02 2 290
CL03 2 700

6ème étape : Tri selon la somme des quantités.


NCl NbCmd SomQte
CL03 2 700
CL02 2 290

7-3- Langage de Manipulation de Données


Le LMD est un ensemble de commandes permettant la consultation et la mise à jour des objets
créés. La mise à jour englobe l’insertion de nouvelles données, la modification et la suppression de
données existantes.

7-3-1- Insertion de données


Syntaxe :
INSERT INTO Nom_Table [(Attr1, Attr2,…, Attrn)] Permet d’insérer un tuple
VALUES (Val1, Val2,…, Valn); à la fois.
Ou
Permet d’insérer plusieurs
INSERT INTO Nom_Table (Attr1, Attr2, …, Attrn) tuples à partir d’une ou
SELECT…; plusieurs autres tables.

L'ordre INSERT attend la clause INTO, suivie du nom de la table, ainsi que du nom de chacun
des attributs entre parenthèses (les attributs omis prendront la valeur NULL par défaut). Les

17
données sont affectées aux attributs (colonnes) dans l'ordre dans lequel les attributs ont été
déclarés dans la clause INTO.
Les valeurs à insérer peuvent être précisées de deux façons :
• avec la clause VALUES : une seule ligne est insérée, elle contient comme valeurs,
l'ensemble des valeurs passées en paramètre dans la parenthèse qui suit la clause VALUES.
INSERT INTO Nom_table (Attr1, Attr2, ...)
VALUES (Valeur1, Valeur2, ...) ;
Lorsque chaque attribut de la table est modifié, l'énumération de l'ensemble des attributs est
facultative. Lorsque les valeurs sont des chaînes de caractères, il ne faut pas omettre de les
délimiter par des guillemets.
• avec la clause SELECT : plusieurs lignes peuvent être insérées, elle contiennent comme
valeurs, l'ensemble des valeurs découlant de la sélection.
INSERT INTO Nom_table (Attr1, Attr2, ...)
SELECT Attr1, Attr2, ...
FROM Nom_table2
WHERE condition ;
Lorsque l'on remplace un nom d’attribut suivant la clause SELECT par une constante, sa
valeur est affectée par défaut aux tuples. Il n'est pas possible de sélectionner des tuples dans
la table dans laquelle on insère des lignes (en d'autres termes Nom_table doit être différent
de Nom_table2).
Applications :
 Remplissage de la table Client.
INSERT INTO Client VALUES(‘CL01’,’BATAM’,’Tunis’);
INSERT INTO Client VALUES(‘CL02’,’BATIMENT’,’Tunis’);
INSERT INTO Client VALUES(‘CL03’,’AMS’,’Sousse’);
INSERT INTO Client VALUES(‘CL04’,’GLOULOU’,’Sousse’);
INSERT INTO Client VALUES(‘CL05’,’PRODELEC’,’Tunis’);
INSERT INTO Client VALUES(‘CL06’,’ELECTRON’,’Sousse’);
INSERT INTO Client VALUES(‘CL07’,’SBATIM’,’Sousse’);
INSERT INTO Client VALUES(‘CL08’,’SANITAIRE’,’Tunis’);
INSERT INTO Client VALUES(‘CL09’,’SOUDURE’,’Tunis’);
INSERT INTO Client VALUES(‘CL10’,’MELEC’,’Monastir’);
INSERT INTO Client VALUES(‘CL11’,’MBATIM’,’’);
INSERT INTO Client VALUES(‘CL12’,’BATFER’,’Tunis’);
 Remplissage de la table Produit.
INSERT INTO Produit VALUES(‘P001’,’Robinet’,’Gris’,5,18,1200);
INSERT INTO Produit VALUES(‘P002’,’Prise’,’Blanc’,1.2,1.5,1000);
INSERT INTO Produit VALUES(‘P003’,’Câble’,’Blanc’,2,25,1500);
INSERT INTO Produit VALUES(‘P004’,’Peinture’,’Blanc’,25,33,900);
INSERT INTO Produit VALUES(‘P005’,’Poignée’,’Gris’,3,12,1300);
INSERT INTO Produit VALUES(‘P006’,’Serrure’,’Jaune’,2,47,1250);
INSERT INTO Produit VALUES(‘P007’,’Verrou’,’Gris’,1.7,5.5,2000);
INSERT INTO Produit VALUES(‘P008’,’Fer’,’Noir’,50,90,800);
 Remplissage de la table Commande.
INSERT INTO Commande VALUES(‘C001’, ‘10/12/2003’, ‘CL02’);
INSERT INTO Commande VALUES(‘C002’, ‘13/02/2004’, ‘CL05’);
INSERT INTO Commande VALUES(‘C003’, ‘15/01/2004’, ‘CL03’);
INSERT INTO Commande VALUES(‘C004’, ‘03/09/2003’, ’CL10’);
INSERT INTO Commande VALUES(‘C005’, ‘11/03/2004’, ’CL03’);

18
 Remplissage de la table Ligne_Cmd.
INSERT INTO Ligne_Cmd VALUES(‘C001’,’P001’,250);
INSERT INTO Ligne_Cmd VALUES(‘C001’,’P004’,300);
INSERT INTO Ligne_Cmd VALUES(‘C001’,’P006’,100);
INSERT INTO Ligne_Cmd VALUES(‘C002’,’P002’,200);
INSERT INTO Ligne_Cmd VALUES(‘C002’,’P007’,550);
INSERT INTO Ligne_Cmd VALUES(‘C003’,’P001’,50);
INSERT INTO Ligne_Cmd VALUES(‘C004’,’P002’,100);
INSERT INTO Ligne_Cmd VALUES(‘C004’,’P004’,150);
INSERT INTO Ligne_Cmd VALUES(‘C004’,’P005’,70);
INSERT INTO Ligne_Cmd VALUES(‘C004’,’P008’,90);
INSERT INTO Ligne_Cmd VALUES(‘C005’,’P001’,650);
INSERT INTO Ligne_Cmd VALUES(‘C005’,’P002’,100);

7-3-2- Modification de données


En utilisant la commande UPDATE, on peut modifier les valeurs d’un ou plusieurs champs, dans
une ou plusieurs lignes existantes d’une table.
Syntaxe :
UPDATE Nom_Table
SET Attr1 = Expr1, Attr2 = Expr2, …
WHERE Condition;
Ou
UPDATE Nom_Table
SET (Attr1, Attr2, …) = (SELECT …)
WHERE Condition;
La modification à effectuer est précisée après la clause SET. Il s'agit d'une affectation d'une
valeur à un attribut grâce à l'opérateur = suivi d'une expression algébrique, d'une constante ou du
résultat provenant d'une clause SELECT. La clause WHERE permet de préciser les tuples sur
lesquels la mise à jour aura lieu.
Application :
 Modifier le Poids du produit numéro P002 à 1.
UPDATE Produit
SET Poids = 1
WHERE NP = ‘P002’;
 Augmenter la quantité en stock des différents produits de 10%.
UPDATE Produit
SET Qtes = 1.1 * Qtes;

7-3-3- Suppression de données


L’ordre DELETE permet de supprimer des lignes d’une table.
Syntaxe :
DELETE FROM Nom_Table
WHERE Condition;
Ici la clause FROM précise la table sur laquelle la suppression s'effectue et la clause WHERE
décrit la qualification, c'est-à-dire l'ensemble des lignes qui seront supprimées.

19
NB : L'ordre DELETE est à utiliser avec précaution car l'opération de suppression est
irréversible. Il faudra donc s'assurer dans un premier temps que les lignes sélectionnées sont bien
les lignes que l'on désire supprimer!

7-4- Langage de Définition de Données


7-4-1- Types de données
Pour chaque attribut que l'on crée, il faut préciser le type de données que le champ va contenir.
Celui-ci peut être un des types suivants :

Type de
Syntaxe Description
donnée
Type Chaîne de caractères de longueur fixe n (n<16383)
CHAR(n)
alphanumérique Ajout de blancs pour garder la longueur fixe
Type Chaîne de caractères de longueur variable de n caractères maximum
VARCHAR(n)
alphanumérique (n<16383)
Type
SMALLINT Entier signé de 16 bits (-32768 à 32757)
numérique
Type
INTEGER Entier signé de 32 bits (-2E31 à 2E31-1)
numérique
Type
NUMBER(n,[d]) Nombre de n chiffres [optionnellement d après la virgule]
numérique
Type NUMERIC(n, d)
Nombres décimaux à nombre fixe de décimales
numérique DECIMAL(n, d)
FLOAT
Type Nombre à virgule flottante (double précision avec au moins 15
DOUBLE
numérique chiffres significatifs)
PRECISION
Type Nombre à virgule flottante (simple précision avec 7 chiffres
REAL
numérique significatifs)
Type horaire DATE Date sous la forme 16/07/99
Type horaire TIME Heure sous la forme [Link].85
Type horaire TIMESTAMP Date et Heure

7-4-2- Valeur NULL


Un attribut qui n’est pas renseigné, et donc vide, est dit contenir la valeur ‘NULL’. Cette valeur
n’est pas zéro, c’est une absence de valeur.

7-4-3- Contraintes d’intégrité


Une contrainte d’intégrité est une règle qui permet de contrôler la validité et la cohérence des
valeurs entrées dans les différentes tables de la base. Elle peut être définie sous deux formes :
 Dans les commandes de création des tables.
 Au moment de la modification de la structure de la table.
Il existe des contraintes :
 Sur un attribut : La contrainte porte sur un seul attribut. Elle suit la définition de l’attribut.
Ces contraintes sont :
- NOT NULL : Spécifie que pour toute occurrence, l’attribut doit avoir une valeur
(la saisie de ce champ est obligatoire).
- UNIQUE : Toutes les valeurs de l’attribut sont distinctes.
- PRIMARY KEY : L’attribut est une clé primaire pour la table et elle peut être
remplacée par UNIQUE et NOT NULL.
- REFERENCES table (attribut) : Il s’agit d’une contrainte d’intégrité
fonctionnelle par rapport à une clé ; chaque valeur de l’attribut doit exister dans
20

Vous aimerez peut-être aussi