Vous êtes sur la page 1sur 11

CHAPITRE3

SQL: LANGAGE DE
MANIPULATION DE
DONNÉES
I. Introduction
II. La commande d’insertion
III. La commande de modification
IV. La commande de suppression
V. La commande de sélection
I. Introduction

■ La deuxième catégorie de clauses du SQL forme ce qu’on appelle communément le langage de


manipulation des données (LMD) ou dit aussi langage d’interrogation des données.
■ Ces clauses permettent d’effectuer des opérations élémentaires de manipulation de données
telles que l’insertion, la suppression de lignes dans une table ou la modification des lignes
existantes dans une table.
■ Elles permettent également d’interroger les données dans la base de données, autrement dit
d’exprimer et d’adresser des calculs ensemblistes au SGBDR.
■ Elles offrent également un ensemble de fonctions mathématiques qui permettent de construire
des prédicats, d’effectuer des calculs agrégés (moyenne, somme, total, etc.) et des calculs
élémentaires comme la concaténation de texte, le modulo de division de valeurs de deux colonnes,
ainsi de suite.
■ cCe sont ces clauses qui permettent d’effectuer les opérations de l’algèbre relationnelle telles
que les jointures, le produit cartésien, la restriction, ou la projection.
■ Le tableau suivant indique exemple à l’appui l’ensemble de ces clauses:
II. La commande d’insertion

■ La collecte fait partie des premières étapes du traitement des données. C’est lors
de cette collecte que l’on stocke ces données dans un système préalablement
établi. Si l’on utilise le langage SQL pour cela, c’est l’instruction INSERT INTO qui est
utilisée pour l’ajout de données dans une table d’une base de données quelconque.
■ Dans le reste du cours, nous prenons comme référence la table Customer suivante:
1. Syntaxe n°1

INSERT INTO table_name [(column1, column2, …, columnN)] VALUES ("value1",


"value2“, …, “valueN”);

2. Règles à respecter
■ L’insertion s’effectue sur une et une seule table par requête.
■ Le nombre de colonne à citer: en minimum = 0, en maximum = nombre de colonne de la
table.
■ Les colonnes et les valeurs citées doivent être compatibles en type et en nombre.
■ Les colonnes non citées dans la commande d’insertion vont prendre la valeur NULL
c’est-à-dire le vide qui est l’équivalent de '' ou de "".
■ Dans le cas où toutes les colonnes ne sont pas mentionnées, il faut citer leurs valeurs
en respectant l’ordre et le nombre tels qu’elles sont créées dans la base de données.
Les valeurs vides peuvent être remplacées par NULL ou '' ou "".
■ La valeur des colonnes de type date doivent être écrite dans le format suivant: ‘aaaa-
mm-jj‘. En cas où la valeur de type date mentionnée dans la commande est non utilisée
convenablement, la colonne prendra alors la valeur nulle c’est-à-dire ‘0000-00-00‘.
■ On peut remplacer la valeur de la colonne de type date, time ou datetime par,
respectivement, l’appel à la fonction current_date() qui génère la date actuelle sous le
format ‘yyyy-mm-jj’ ou la fonction current_time() qui génère l’heure actuelle ou
current_timestamp() qui génère une valeur contenant la date et l’heure actuelle sous le
format ‘yyyy-mm-jj:hh-mm-ss’.
■ On peut remplacer également la valeur de la colonne de type date par l’appel à l’une des
fonctions suivantes: year(argument), month(argument), day(argument), time(argument),
hour(argument), minute(argument), second(argument) en donnant en argument la
valeur de la quelle on veut extraire l’année, le mois, le jour, l’heure, les minutes ou les
secondes.
■ Les valeurs doivent respecter les contraintes définies lors de la création de la table (clé
primaire, clé étrangère, unique, not null, les contraintes check).
■ Si la clé primaire est définie auto incrémentée (AI), c’est possible de ne pas mentionner
son nom parmi les noms des colonnes dans la commande ou bien mentionner sa valeur
comme NULL ou '' ou "".
■ On peut utiliser la commande insert into pour ajouter plusieurs lignes en une seule
étape en appliquant la syntaxe comme suit:

INSERT INTO table_name [(column1, column2, …, columnN)] VALUES


(“ligne1value1“, “ligne1value2“, …, “ligne1valueN”) , (“ligne2value1", “ligne2value2“,
…, “ligne2valueN”) , … , (“ligneNvalue1", “ligneNvalue2“, …, “ligneNvalueN”);

■ Si la syntaxe ou l’une dés règles citées ci-dessus est non respecté, la commande
sera rejetée c’est à dire non exécutée.
■ Les valeurs des colonnes peuvent être remplacées par le résultat d’une requête de
selection qui retourne une seule valeur de même type de la colonne.
3. Exemples
■ Pour insérer la première ligne, on peut écrire:
(colonnes mentionnées)
(colonnes non mentionnées)

(clé primaire AI)

(ligne 1 et ligne 2)

(ligne2 et ligne 3)

(les trois lignes)


4. Syntaxe n°2

INSERT INTO table1 (colonne1, colonne2, colonne3, …)


SELECT colonne1, colonne2, colonne3, …
FROM table2

■ Les valeurs des colonnes à insérer dans table 1 sont remplacées par les valeurs
retournées par le résultat de la requête de sélection appliquée sur la table2.
■ Si table1 et table2 appartiennent à deux bases de données différentes, il faut
mentionner leurs noms ainsi : basename.Tablename
■ les valeurs retournées par le résultat de la requête de sélection doivent être
compatibles en nombre, en type et en taille avec les colonnes de la table 1.
■ Exemple : soit la table Supplier suivante

(remplir le nom, l’adresse et le code postal des clients dans la table customer à partir
de la table des fournisseurs nommée Supplier

Vous aimerez peut-être aussi