© Olfa DRIDI Langage de manipulation de données (LMD) & Préparé par : Mme Olfa
© Olfa DRIDI Langage de manipulation de données (LMD) & Préparé par : Mme Olfa DRIDI Système de Gestion de Bases de Données © Les ordres SQL de manipulation • SQL propose 4 instructions pour manipuler les données: • INSERT • Insertion (ajout) de ligne(s) (d’enregistrements) dans une table • Utiliser SQL*LOAD pour des chargements externes • UPDATE • Mise à jour (modification) d’une ou plusieurs colonnes d’une ou plusieurs lignes • DELETE • Suppression d’une ou plusieurs lignes (enregistrements) Langage de Manipulation de Données © Pour pouvoir insérer des données dans une table, il faut que cette dernière soit dans votre schéma ou que vous avez reçu le privilège INSERT sur la table. Si vous avez le privilège INSERT ANY TABLE, vous pouvez ajouter des données dans n’importe quelle table de tout le schéma. Syntaxe: SQL> INSERT INTO nom_Table (A1,.........,An) VALUES (V1,.........,Vn); • A1,…...,An sont les noms des attributs dans lesquels on souhaite placer une valeur. Les autres attributs seront donc a NULL (ou a la valeur par défaut). Tous les attributs spécifiés NOT NULL (et sans valeur par défaut) doivent donc figurer dans une clause INSERT • Cette instruction permet d’insérer une seule ligne 3 Insert – Monoligne Langage de Manipulation de Données © INSERT INSERT INTO nom_table [(liste des colonnes)] VALUES (liste des valeurs); INSERT INTO service (idSer, nomSer) VALUES (50,’Réseaux et Systèmes’); Exemples : INSERT INTO service VALUES (60,’Analyse et Conception’); Langage de Manipulation de Données © • SYSDATE 5 Insert – Valeurs spéciales Langage de Manipulation de Données © Création d'un script interactif au moyen de paramètres de substitution SQL*Plus. 6 Variables de substitution dans un ordre Insert Langage de Manipulation de Données SQL> INSERT INTO dept (deptno, dname, loc) 2 VALUES (&department_id, 3 '&department_name', '&location'); Enter value for department_id: 80 Enter value for department_name: EDUCATION Enter value for location: ATLANTA 1 row created. © • ACCEPT stocke la valeur dans une variable. • PROMPT affiche votre texte. Création d'un Script Contenant des Messages Personnalisés 7 ACCEPT department_id PROMPT 'Please enter the - department number:' ACCEPT department_name PROMPT 'Please enter - the department name:' ACCEPT location PROMPT 'Please enter the - location:' INSERT INTO dept (deptno, dname, loc) VALUES (&department_id, '&department_name', ‘&location’); © § Ecrivez votre ordre INSERT en spécifiant une sous- interrogation. § § N'utilisez pas la clause VALUES. § Le nombre de colonnes de la clause INSERT doit correspondre à celui de la sous-interrogation. Insert – Copie de Lignes d'une Autre Table 8 SQL> INSERT INTO managers(id, name, salary, hiredate) 2 SELECT empno, ename, sal, hiredate 3 FROM emp 4 WHERE job = 'MANAGER'; 3 rows created. © 9 INSERT – Données provenant d’une autre table INSERT INTO etudiant_deug SELECT * FROM etudiant WHERE cycle = 1; Insert avec le contenu de une ou plusieurs tables INSERT INTO etudiant_deug (nomd, prenomd, cycled) SELECT nom,prenom,1 FROM etudiant WHERE cycle = 1; Langage de Manipulation de Données © UPDATE – Modification des données UPDATE nom_table SET colonne1 = valeur1 |expression |(requête_select [,colonne2 = valeur2 ….] [ WHERE (condition)]; UPDATE employe SET nom = ‘Michel’, adresse = ‘Toulouse’ WHERE idEmp = 100; Exemples : UPDATE employe SET salaire = salaire * 1.1 WHERE idSer = ‘info’; Cette instruction modifie plusieurs lignes en même temps Langage de Manipulation de Données © Modifier le poste et le n° de département de l'employé 7698 à l'identique de l'employé 7499. UPDATE – Modification des données par une sous- requête 11 Langage de Manipulation de Données SQL> UPDATE emp 2 SET (job, deptno) = 3 (SELECT job, deptno 4 FROM emp 5 WHERE empno = 7499) 6 WHERE empno = 7698; 1 row updated. © • Il faut respecter les contraintes qui existent au niveau des colonnes. Sinon, une erreur est renvoyée et la mise à jour n’est pas effectuée. Violation des CI 12 UPDATE emp * ERROR at line 1: ORA-02291: integrity constraint (USR.EMP_DEPTNO_FK) violated - parent key not found SQL> UPDATE emp 2 SET deptno = 55 3 WHERE deptno = 10; • Le numéro de département 55 n'existe pas Langage de Manipulation de Données © DELETE – Suppression d’une ligne d’une table 13 "…supprime une ligne de la table DEPT…" DEPT DEPTNO DNAME LOC ------ ---------- -------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 50 DEVELOPMENT DETROIT 60 MIS ... DEPT DEPTNO DNAME LOC ------ ---------- -------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 60 MIS ... Langage de Manipulation de Données © DELETE – Suppression des données DELETE FROM nom_table [WHERE condition]; DELETE FROM employe WHERE idEmp = 100; Exemples : DELETE FROM employe; Langage de Manipulation de Données § La clause WHERE permet de supprimer une ou plusieurs lignes spécifiques. §Si vous omettez la clause WHERE, toutes les lignes sont supprimées. © • Utilisez des sous-interrogations dans l'ordre DELETE pour supprimer des lignes dont certaines valeurs correspondent à celles d'une autre table. DELETE – Utilisation des sous-requêtes 15 Langage de Manipulation de Données SQL> DELETE FROM employee 2 WHERE deptno = 3 (SELECT deptno 4 FROM dept 5 WHERE dname ='SALES'); 6 rows deleted. © Questions?? 16 uploads/s1/chap3-lmd.pdf
Documents similaires










-
48
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Aoû 21, 2021
- Catégorie Administration
- Langue French
- Taille du fichier 0.5599MB