Académique Documents
Professionnel Documents
Culture Documents
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 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
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:
■ 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)
(ligne 1 et ligne 2)
(ligne2 et ligne 3)
■ 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