Vous êtes sur la page 1sur 10

Secteur Tertiaire Informatique Filire tude - dveloppement

Activit Dvelopper la persistance des donnes

LE LANGAGE DML: Mise jour des donnes

Accueil Apprentissage

Priode en entreprise Evaluation

Code barre

SOMMAIRE

LORDRE INSERT ...............................................................................4

II LORDRE UPDATE..............................................................................7 III LORDRE DELETE............................................................................9

Le langage DML Partie 1 afpa 2008 Informatique et tlcoms filire tude - dveloppement 3/10

Pour modifier les donnes dune base, lutilisateur dispose de 3 ordres SQL : INSERT UPDATE DELETE

LORDRE INSERT

Lajout de lignes dans une table (ou une vue) rpond la syntaxe suivante : INSERT [INTO] <NOM DE TABLE> [<NOMS DE COLONNES>] { DEFAULT VALUES | VALUES <LISTE DE VALEURS>

| < REQUETE SELECT > | EXECUTE <NOM DE PROCEDURE STOCKEE>}

Les modes principaux disponibles dans lordre INSERT pour ajouter des lignes sont : linsertion directe avec la clause VALUES

Lattribution de valeurs est faite aux colonnes. Exemple 1: Insrer lemploy 00140, de nom REEVES, de prnom HUBERT dans le dpartement A00, de salaire 2100 dans la table EMPLOYES de structure EMPLOYES (NOEMP, NOM, PRENOM, DEPT, SALAIRE) INSERT INTO EMPLOYES (NOEMP, NOM, PRENOM, DEPT, SALAIRE) VALUES (00140,REEVES,HUBERT,A00,2100) On donne une valeur pour chacun des attributs spcifis dans lordre INSERT ; les valeurs de la clause VALUES doivent correspondre avec la liste des colonnes , les attributs non spcifis prennent la valeur NULL. Exemple 2: Insrer lemploy 00140, de nom REEVES, de prnom HUBERT dans le dpartement A00 INSERT INTO EMPLOYES (NOEMP, NOM, PRENOM, DEPT) VALUES (00140,REEVES,HUBERT,A00) La colonne Salaire prendra la valeur NULL pour cette ligne. Si cette colonne na pas t spcifie comme pouvant tre nulle, une erreur sera gnre. La liste des colonnes peut tre omise condition que lordre dinsertion concerne
Le langage DML Partie 1 afpa 2008 Informatique et tlcoms filire tude - dveloppement 4/10

toutes les colonnes de la table. Exemple 3: Insrer lemploy 00140, de nom REEVES, de prnom HUBERT dans le dpartement A00, de salaire 2100 INSERT INTO EMPLOYES VALUES (00140,REEVES,HUBERT,A00, 2100) linsertion laide de sous requtes en utilisant SELECT Les donnes insrer sont issues dune table. Exemple 4: Insrer dans la table EMPLOYES_A00 pralablement cre de structure EMPLOYES_A00 (NOEMP, NOM, PRENOM, SALAIRE) tous les employs de la table EMPLOYES attachs au dpartement A00. INSERT INTO EMPLOYES_A00 (NOEMP, NOM, PRENOM, SALAIRE) SELECT NOEMP, NOM, PRENOM, SALAIRE FROM EMPLOYES WHERE WDEPT = A00 ou INSERT INTO EMPLOYES_A00 SELECT * FROM EMPLOYES WHERE WDEPT = A00 linsertion laide dune procdure stocke Linsertion est dlgue la procdure stocke appele. Exemple 5: Insrer dans la table EMPLOYES_A00 pralablement cre de structure EMPLOYES_A00 (NOEMP, NOM, PRENOM, SALAIRE) tous les employs de la table EMPLOYES attachs au dpartement A00. INSERT INTO EMPLOYES_A00 (NOEMP, NOM, PRENOM, SALAIRE) EXECUTE EMP_A00 Les employs concerns sont slectionns dans la procdure stocke EMP_A00

Le langage DML Partie 1 afpa 2008 Informatique et tlcoms filire tude - dveloppement 5/10

Une colonne ayant une proprit IDENTITY ne fait pas partie de la liste des colonnes : On peut toutefois forcer sa valeur en utilisant linstruction SET IDENTITY_INSERT nom_table{ ON | OFF } On dsactivera la proprit IDENTITY, on insrera la ligne et on ractivera la proprit IDENTITY. La clause DEFAULT VALUES force la nouvelle ligne prendre les valeurs par dfaut dfinies pour chaque colonne (Voir laide en ligne SQL Server pour plus dinformations).

Le langage DML Partie 1 afpa 2008 Informatique et tlcoms filire tude - dveloppement 6/10

II LORDRE UPDATE
Lordre UPDATE est utilis pour modifier des lignes de tables existantes et est compos de trois clauses : UPDATE <NOM DE TABLE> SET <NOM COLONNE 1> = <VALEUR 1> [, <NOM COLONNE n> = <VALEUR n>] FROM <NOM DE TABLE 1>[, <NOM DE TABLE n>] WHERE <PREDICAT> SET FROM Nom des colonnes et leurs valeurs ou expressions mises jour. Nom dautres tables utilises pour fournir des critres

WHERE Critre de slection pour la mise jour dune ligne (optionnel) Si la clause WHERE nest pas code, la table entire sera mise jour.

Exemple 1: Augmenter le salaire de 20% de tous les employs pour la table EMPLOYES de structure EMPLOYES (NOEMP, NOM, PRENOM, DEPT, SALAIRE) UPDATE EMPLOYES SET SALAIRE = SALAIRE * 1,2 Exemple 2: Augmenter le salaire de 20% de lemploy de matricule 00040. UPDATE EMPLOYES SET SALAIRE = SALAIRE * 1,2 WHERE NOEMP = 00040

Exemple 3: Modifier le salaire (augmentation de 20%) de lemploy de matricule 00040, et son affectation dans le service A40 UPDATE EMPLOYES SET SALAIRE = SALAIRE * 1,2, DEPT= A40 WHERE NOEMP = 00040

Le langage DML Partie 1 afpa 2008 Informatique et tlcoms filire tude - dveloppement 7/10

On pourra utiliser lordre UPDATE combin une sous requte. Exemple 4: Augmenter le salaire de 20% des employs du service informatique (repr par son nom dans la table DEPART), pour les tables EMPLOYES et DEPART de structure EMPLOYES (NOEMP, NOM, PRENOM, DEPT, SALAIRE) DEPART (NODEPT, NOMDEPT) UPDATE EMPLOYES SET SALAIRE = SALAIRE * 1,2 WHERE DEPT IN (SELECT NODEPT FROM DEPART WHERE NOMDEPT LIKE SERVICE%) On pourra galement utiliser lordre UPDATE et sa clause FROM pour utiliser des informations provenant dune autre table. Exemple 5: Augmenter le salaire de 20% des employs du service informatique (repr par son nom dans la table DEPART), pour les tables EMPLOYES et DEPART de structure EMPLOYES (NOEMP, NOM, PRENOM, DEPT, SALAIRE) DEPART (NODEPT, NOMDEPT) UPDATE EMPLOYES SET SALAIRE = SALAIRE * 1, 2 FROM EMPLOYES JOIN DEPART ON DEPT = NODEPT WHERE NOMDEPT LIKE SERVICE%

Le langage DML Partie 1 afpa 2008 Informatique et tlcoms filire tude - dveloppement 8/10

III LORDRE DELETE


Lordre DELETE utilise trois clauses pour supprimer une ou plusieurs lignes dune table. DELETE [FROM] <NOM DE TABLE> FROM <NOM DE TABLE> [, <NOM DE TABLE n>] WHERE <PREDICAT> FROM Spcifie le nom de la table ou les lignes seront supprimes

FROM Une 2eme clause FROM pour spcifier le nom dautres tables utilises pour fournir des critres WHERE Spcifie le critre de slection (optionnel) Si la clause WHERE nest pas code, toutes les lignes seront supprimes. Exemple 1: Supprimer tous les employs de la table EMPLOYES de structure EMPLOYES (NOEMP, NOM, PRENOM, DEPT, SALAIRE) DELETE FROM EMPLOYES Exemple 2: Supprimer les employs du dpartement E21 DELETE FROM EMPLOYES WHERE WDEPT =E21 On pourra utiliser lordre DELETE combin une sous requte. Exemple 3: Supprimer tous les employs du service informatique (repr par son nom dans la table DEPART), pour les tables EMPLOYES et DEPART de structure EMPLOYES (NOEMP, NOM, PRENOM, DEPT, SALAIRE) DEPART (NODEPT, NOMDEPT) DELETE FROM EMPLOYES WHERE DEPT IN (SELECT NODEPT FROM DEPART WHERE NOMDEPT LIKE SERVICE%)

Le langage DML Partie 1 afpa 2008 Informatique et tlcoms filire tude - dveloppement 9/10

On pourra de la mme faon utiliser lordre DELETE et sa deuxime clause FROM pour utiliser des informations provenant dune autre table. Exemple 5: Supprimer tous les employs du service informatique pour les tables EMPLOYES et DEPART de structure EMPLOYES (NOEMP, NOM, PRENOM, DEPT, SALAIRE) DEPART (NODEPT, NOMDEPT) DELETE FROM EMPLOYES FROM EMPLOYES JOIN DEPART ON DEPT = NODEPT WHERE NOMDEPT LIKE SERVICE%

Le langage DML Partie 1 afpa 2008 Informatique et tlcoms filire tude - dveloppement 10/10

Etablissement rfrent
Marseille Saint Jrme

Equipe de conception
Elisabeth Cattano

Remerciements :
Aux formateurs de Marseille St jrme

Reproduction interdite
Article L 122-4 du code de la proprit intellectuelle. toute reprsentation ou reproduction intgrale ou partielle faite sans le consentement de lauteur ou de ses ayants droits ou ayants cause est illicite. Il en est de mme pour la traduction, ladaptation ou la reproduction

Date de mise jour 05/05/2008 afpa Date de dpt lgal mai 08

afpa / Direction de lIngnierie13 place du Gnrale de Gaulle / 93108 Montreuil Cedex association nationale pour la formation professionnelle des adultes Ministre des Affaires sociales du Travail et d e la Solidarit