IF6 - Initiation aux Bases de donn´ees : SQL - 3IF6 - Initiation aux Bases de donn´ees :SQL - 3E.Coqueryemmanuel.coquery@liris.cnrs.frhttp ://www710.univ-lyon1.fr/∼ecoquery/enseignement/if6IF6 - Initiation aux Bases de donn´ees : SQL - 3Modifications d’une instanceModification des donn´ees stock´ees dans une baseLa modification s’effectue par ajout, suppression ou modificationde n-uplets (lignes) dans l’instance de la base.SQL sert ici de langage de manipulation de donn´ees.Trois instructions SQL permettent ces modifications :INSERTDELETEUPDATECes instructions de mise `a jour peuvent utiliser des (morceauxde) requˆete afin d’effectuer des calculs pour s´electionner et/oug´en´erer des donn´ees.IF6 - Initiation aux Bases de donn´ees : SQL - 3Modifications d’une instanceInsertionInstruction INSERTINSERT INTO nom table(att , ..., att )1 nVALUES(val , ..., val )1 nAjoute le n-uplet (val , ..., val ) `a la relation nom table.1 nval correspond `a l’attribut att .i iSi un attribut de la relation nom table n’apparaˆıt pas dansatt , . . . ,att , alors la valeur du n-uplet pour cet attribut est1 nNULL.La sp´ecification des attributs att , ..., att est optionnelle1 nSi on pr´ecise pas les attributs, il faut donner une valeur `a tousles attributs.L’ordre sur des valeurs (val , ..., val ) est celui des attributs1 ndans la d´efinition de la relation nom table.C’est un des cas ou` cet ordre est important.IF6 - Initiation aux Bases de donn´ees : SQL - ...
Trois instructions SQL permettent ces modifications : INSERT DELETE UPDATE
Cesinstructionsdemisea`jourpeuventutiliserdes(morceaux de)requˆeteafind’effectuerdescalculspours´electionneret/ou generer des donnees. ´ ´ ´
La modification s’effectue par ajout, suppression ou modification de n-uplets (lignes) dans l’instance de la base.
Insertion
Instruction INSERT INSERT INTOnom table(att1 . .,, .attn) VALUES(val1 . .,, .valn) Ajoute le n-uplet (val1, . . .,valn`)laraletaoinnom table. valiibtratl’`andpoesrroctuatti. Si un attribut de la relationnom tablespaıtansdppa’ˆaran att1, . . . ,attn, alors la valeur du n-uplet pour cet attribut est NULL.
Laspe´cificationdesattributsatt1, . . .,attnestoptionnelle Sionpre´cisepaslesattributs,ilfautdonnerunevaleura`tous les attributs. L’ordre sur des valeurs (val1, . . .,valn) est celui des attributs danslade´finitiondelarelationnom table. C’estundescaso`ucetordreestimportant.
INSERT INTO Dept important(Bat,Nom) SELECT Nom bat, Nom dept FROM Batiment, Departement WHERE Departement.Num bat = Batiment.Num bat AND Ent sec IS NOT NULL ;
Supprime les n-uplets de la relationnom tablequiv´refiinet condition. condition´irionenditnecoqu’upmocexelaertissupeˆeut xp mee dans le WHERE d’un SELECT. En particulier,conditionrdesrequˆetesimbpuectnoetinuqirsee´. Lesrequˆetesimbriqu´eesnepeuventpasfairer´ef´erence`a nom table, car elle est en cours de modification. WHEREconditionest optionnel. SileWHEREestomis,touslesn-upletssontsupprim´es(cela revienta`utiliseraconditionTRUE).
condition.resgnliesfiedimo`aleuqidni attialcueurcparll´eerpvalaneldnioxp’essreei. eipeut utiliseratt1,att2, . . ., y comprisatti. Ce sont les anciennes valeurs deatt1,att2, . . .qui seront utilis´eespourlecalcul. Leseiepvuteerneˆtequˆdesr`acoetesqnoitidnrselle’untievoen ununiquer´esultatetquenom tablen’apparaisse pas dans un FROM. Similairement au DELETE, le WHERE est optionnel. SileWHEREestomis,touslesn-upletssontmodifi´es.