Comment Ca Marche l'informatique ?
Accueil
Forum
Aide
bordure
Page d'accueil
Ajouter aux favoris
Signalez une erreur
Ecrire à Jean-Francois Pillou
Introduction
LMD
Sélection de données
Projections
Restrictions
Tri et regroupements
Jointures
Sous-requêtes
Opérations ensemblistes
Modification de tuples
LDD
Création de table
Contraintes d'intégrité
Création de vues
Création d'un index
Modification de la table
LCD
Gestion d'utilisateurs
Accorder des droits
Retirer des droits
Version 2.0.3
SQL - La mise à jour d'informations Page précédente Page suivante Retour à la page d'accueil

Le SQL permet la modification d'une table par un utilisateur (pour peu qu'il ait les droits suffisants...). La modification d'une table consiste à:

  • ajouter des tuples
  • modifier des tuples existants
  • ou bien supprimer des tuples

Insertion de données

L'insertion de nouvelles données dans une table se fait grâce à l'ordre INSERT, qui permet d'insérer de nouvelles lignes dans la table.
L'ordre INSERT attend la clause INTO, suivie du nom de la table, ainsi que du nom de chacune des colonnes entre parenthèses (les colonnes omises prendront la valeur NULL par défaut).

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. Les données sont affectées aux colonnes dans l'ordre dans lequel les colonnes ont été déclarées dans la clause INTO
    INSERT INTO Nom_de_la_table(colonne1,colonne2,colonne3,...)
    
    VALUES (Valeur1,Valeur2,Valeur3,...)
    Lorsque chaque colonne de la table est modifiée, l'énumération de l'ensemble des colonnes est facultatif
    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. Les données sont affectées aux colonnes dans l'ordre dans lequel les colonnes ont été déclarées dans la clause INTO
    INSERT INTO Nom_de_la_table(colonne1,colonne2,...)
    
    SELECT colonne1,colonne2,... FROM Nom_de_la_table2
    
    WHERE qualification
    Lorsque l'on remplace un nom de colonne 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_de_la_table doit être différent de Nom_de_la_table2)

Modification de données

La modification de données (aussi appelée mise à jour) consiste à modifier des tuples (des lignes) dans une table grâce à l'ordre UPDATE. La modification à effectuer est précisée après la clause SET. Il s'agit d'une affectation d'une valeur à une colonne 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

UPDATE Nom_de_la_table

SET Colonne = Valeur_Ou_Expression

WHERE qualification

Suppression de données

La suppression de données dans une table se fait grâce à l'ordre DELETE. Celui-ci est suivi de la clause FROM, précisant la table sur laquelle la suppression s'effectue, puis d'une clause WHERE qui décrit la qualification, c'est-à-dire l'ensemble des lignes qui seront supprimées.

DELETE FROM Nom_de_la_table

WHERE qualification

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!

Lorsque plusieurs tables sont associées (une même colonne présente dans chacune des tables) il est nécessaire d'être prudent lors des suppressions. Il est ainsi recommandé de commencer par supprimer les tuples de la table secondaire puis remonter vers la table principale (suppression en cascade ascendante).


Page précédente Page suivante

Ce document issu de CommentCaMarche.net est soumis à la licence GNU FDL. Vous pouvez copier, modifier des copies de cette page tant que cette note apparaît clairement.