8i | 9i | 10g | 11g | 12c | 13c | 18C | 19C | 21c | Divers | PL/SQL | SQL | rac | Weblogic | linux

Accueil « Articles » divers  » voici la huitième partie d’une série d’articles présentant les bases de SQL. Dans cet article, nous examinons certaines des variantes de l’instruction INSERT.,

  • Installation
  • COMMIT et ROLLBACK
  • INSERT de Base
  • les INSÉRER dans la Vue.
  • INSÉRER … SÉLECTIONNEZ
  • des sous-requêtes Scalaires

articles Connexes.

  • SQL pour les débutants (Partie 8) : L’instruction INSERT
  • SQL pour les débutants – liste de lecture complète
  • Oracle SQL Articles – mise en route
  • Inserts multitables

configuration

Vous pouvez effectuer toutes ces requêtes en ligne gratuitement en utilisant SQL Fiddle.

Les exemples de cet article nécessitent la présence des tableaux suivants.,

ces tables sont une variante des tables EMP et DEPT du schéma SCOTT. Vous verrez beaucoup d’exemples Oracle sur internet en utilisant les tables du schéma SCOTT. Vous pouvez trouver les définitions de table d’origine dans le « OR ORACLE_HOME/rdbms/admin / utlsampl.sql script ».

dans cet article, nous allons également avoir besoin de la copie suivante du tableau des employés. Notez que nous avons rendu les colonnes EMPLOYEE_NAME et JOB obligatoires. La colonne EMPLOYEE_ID est implicitement obligatoire, car elle est la clé primaire.,

COMMIT et ROLLBACK

toutes les modifications du langage de Manipulation de données (DML) sont effectuées dans le cadre d’une transaction. Ils ne sont pas permanents tant qu’ils ne sont pas confirmés à l’aide de l’instruction COMMIT. Une fois validée, la seule façon d’annuler une modification est d’émettre une nouvelle instruction DML pour modifier les données. Plusieurs déclarations peuvent être regroupées pour former une seule transaction.

les commandes DDL (Data Definition Language) effectuent un commit implicite, qui confirme également toutes les modifications DML en suspens dans la session en cours.,

Si vous décidez de ne pas conserver certaines modifications non validées, vous pouvez les supprimer en utilisant l’instructionROLLBACK. De nombreux exemples de cet article émettront des instructions ROLLBACK après le test, pour rétablir les données dans leur état d’origine.

certains outils et langages de programmation utilisent la validation automatique par défaut, ils émettent donc automatiquement une instructionCOMMIT après chaque instruction DML qu’ils traitent. Ne laissez pas cela vous tromper en pensant que c’est un comportement par défaut. Il n’est pas.,

Basic INSERT

la version la plus simple de l’instructionINSERT ne spécifie pas les colonnes à insérer. Il suppose que les valeurs sont spécifiées dans le bon ordre de colonne et qu’aucune valeur de colonne n’a été omise. En conséquence, cela est dangereux dans le code d’application car l’ajout d’une colonne à la table cassera l’instruction.

spécifier une liste de colonnes est beaucoup plus sûr car l’instruction ne se cassera pas si des colonnes facultatives sont ajoutées à la table.,

Une liste de colonnes explicite vous permet également de supprimer des colonnes facultatives de l’instruction et d’échanger les positions des colonnes dans l’instruction. Dans l’exemple suivant, les colonnes MANAGER_ID, COMMISSION et DEPARTMENT_ID ont été supprimées et la colonne EMPLOYEE_ID a été déplacée à la fin de la liste des colonnes et de la liste des valeurs.

rappelez-vous que l’absence de colonnes obligatoires n’est pas autorisée, sauf si vous avez des valeurs par défaut de colonne ou des déclencheurs qui les remplissent. Dans l’exemple suivant, la colonne JOB est omise, qui est une colonne obligatoire dans le tableau EMPLOYEES2.,

insérer dans les vues

Il est possible d’insérer dans la table de base associée à une vue. Il y a quelques restrictions associées à cela, mais elles sont un peu hors de portée pour un article de niveau débutant. Dans l’exemple suivant, nous créons une vue simple sur la table EMPLOYEES2, puis l’insérons.

Vous ne le verrez pas très souvent, mais vous pouvez également l’insérer dans des vues en ligne. Cela peut être utilisé pour contrôler la liste des colonnes pour l’insertion, plutôt que d’utiliser une liste de colonnes explicite.

insérer …, SELECT

Il est possible de créer plusieurs lignes dans une seule instructionINSERTen utilisant la syntaxeINSERT ... SELECT. L’exemple suivant copie toutes les données de la table EMPLOYEES dans la table EMPLOYEES2.

La liste des colonnes dans le INSERT déclaration doit correspondre à la balise SELECT liste dans la requête.

Les règles normales s’appliquent à la partie requête de l’instruction, vous pouvez donc filtrer les données ou les joindre à d’autres tables pour recueillir les données.,

sous-requêtes scalaires

Les sous-requêtes scalaires peuvent être utilisées pour créer une valeur pour une instructionINSERT. Dans l’exemple ci-dessous, la colonne salaire est remplie par une sous-requête scalaire, qui renvoie le salaire maximum de la table employés et y ajoute 1000.

Pour plus d’informations, voir: