1 / 17

Mise à jour de tables

Mise à jour de tables. Les commandes de mise à jour. CREATE TABLE DROP TABLE ALTER TABLE INSERT UPDATE DELETE SELECT interrogation. structure. Instruction de mise à jour. Insertion de données. INSERT INTO Table [ ( Nom_Colonne [ , Nom_Colonne ] ...) ]

Download Presentation

Mise à jour de tables

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mise à jour de tables

  2. Les commandes de mise à jour • CREATE TABLE • DROP TABLE • ALTER TABLE • INSERT • UPDATE • DELETE • SELECT interrogation structure Instruction de mise à jour

  3. Insertion de données • INSERT INTO Table [ ( Nom_Colonne [ , Nom_Colonne ] ...) ] VALUES { (Valeur | Requête) [ ,(Valeur | Requête) ... } • Exemple: On désire insérer un nouveau département dans la table departement INSERT INTO departement (id, nom,ville) VALUES(50,‘Ingénierie',‘Québec'); • ou bien INSERT INTO departement VALUES (50,‘Ingénierie',‘Québec');

  4. Insertion d’une valeur provenant d’une requête • Exemple, on désire insérer un nouvel employé travaillant à Québec: INSERT INTO employe(id, nom, id_departement) VALUES (7777, ‘Toto’, (SELECT id FROM departement WHERE ville = ‘Québec’));

  5. Insertion de rangées d'une autre table • Pour insérer les employés des départements 10,20,30 et 40 de la table ancien_empdans la table employe INSERT INTO employe( id, nom, id_departement) SELECT id, nom, id_departement FROM ancien_emp WHERE id_departementIN (10,20,30,40);

  6. Insertion de valeurs nulles • Lorsqu'une colonne est omise dans un énoncé INSERT, elle prend la valeur NULL.

  7. Insertion de dates • Format d'une date: ‘DD/MM/YYYY‘ INSERT INTO employe(id, nom, date_embauche) VALUES ( 7963 , ‘Marion' , TO_DATE('07/03/1999‘ ,‘DD/MM/YYYY’); • Pour avoir la date du jour : SYSDATE INSERT INTO employe (id, nom, date_embauche) VALUES (7600, ‘Jacques’, SYSDATE);

  8. Les séquences

  9. Les séquences en SQL • Il s'agit d'un objet de la base de données que l'on utilise pour générer des nombres entiers qui se suivent • Pour créer une séquence: CREATE SEQUENCE Nom_Séquence [ INCREMENT BY n ] [ START WITH n ] [ MAXVALUE n | NOMAXVALUE ] [ MINVALUE n | NOMINVALUE ] [ CYCLE | NOCYCLE ] [CACHE n | NOCACHE] • Exemple: CREATE SEQUENCE seq_employe INCREMENT BY 1 START WITH 1; • Pour détruire une séquence: DROP SEQUENCE Nom_Séquence;

  10. Les caches des séquences • S’iln’y a pas de cache pour la séquence, alorsàchaquefoisquel’onveutavoirnombresuivant de la séquence, il y a uneopérationsur le disquedur pour allerchercher et incrémenter la séquence. • En utilisant CACHE 100, par exemple, les 100 prochainsnuméroserontimmédiatementincrémentésdans la séquence. Ceux-cipourrontensuiteêtreutilisé sans avoirà faire d’accès au disquedur. • Cecipermetunemeilleur performance de la base de donnéeslorsd’insertion en “batch”.

  11. Utilisation d'une séquencegénération d'un nombre • Pour générer le nombre suivant d'une séquence. Nom_Séquence.NEXTVAL • Exemple: On désire que les numéros d'employé soit générés automatiquement lors de la création d'un employé. 1) on crée la séquence "matricule" CREATE SEQUENCE seq_matricule INCREMENT BY 1 START WITH 1000; 2) Lors de la création d'un employé, on utilise cette séquence. INSERT INTO employe (id, nom, poste) VALUES (seq_matricule.nextval, ‘Morin’, ‘technicien’);

  12. Utilisation d'une séquenceréférence au dernier nombre généré • Pour utiliser le dernier nombre généré par une séquence. Nom_Séquence.CURRVAL • Exemple: On désire afficher le dossier d'un employé qui vient d'être ajouté à la BD. INSERT INTO EMP (id, nom) VALUES (seq_matricule.nextval, ‘castagne’); SELECT id, nom FROM employe WHERE id = seq_matricule.currval;

  13. Mise à jour de table : UPDATE • Syntaxe: UPDATE Table SET Nom_Colonne = Expression [,…] [ WHERE Condition ] ou UPDATE Table SET (Nom_Colonne [,Nom_Ccolonne]...) = ( Requête ) [,...] [ WHERE condition ] • Si on utilise une requête elle doit retourner aucune ou au maximum une rangée. • Note :la requête est évaluée pour chaque rangée mise à jour.

  14. UPDATE - Mise à jour de plusieurs rangées • Pour changer tous les vendeurs en représentants UPDATE employe SET poste = ‘Représentant' WHERE poste = ‘Vendeur‘ ;

  15. UPDATEmise à jour de plusieurs colonnes • Pour changer les vendeurs en représentants et les transférer au département 40 UPDATE employe SET id_departement= 40 , poste = 'représentant‘ WHERE poste = 'vendeur‘ ;

  16. UPDATE la mise à jour de champs • Exemple: transférer tous les employés travaillant dans un département situé à Otttawa ou Toronto dans le département situé à Montréal de plus, mettre la commission pour ces employés à zéro UPDATE employe SET id_departement = (SELECT id FROM departement WHERE Ville= ’Montréal'), commission = 0 WHERE id_departementIN (SELECT id FROM departement WHERE Ville=’Ottawa‘ OR Ville=  ’Toronto');

  17. DELETEsuppression de rangées • La clause WHERE détermine les rangées qui seront supprimées. • Si la clause WHERE est absente, toutes les rangées sont supprimées. Exemple: L'employé Martin a démissionné. Pour le rayer de la liste des employés: DELETE FROM employe WHERE id = 7654 ; • Pour détruire tous les employés: DELETE FROM employe;

More Related