À propos des instructions LMD (Langage de manipulation de données)
Les énoncés LMD (langage de manipulation de données) accèdent aux données des tables existantes et les manipulent.
Dans l'environnement SQL*Plus, vous pouvez entrer une instruction LMD après l'invite SQL>.
Dans l'environnement SQL Developer, vous pouvez entrer une instruction LMD dans la feuille de calcul. Vous pouvez également utiliser le cadre et les outils SQL Developer Connections pour accéder aux données et les manipuler.
Pour voir l'effet d'une instruction LMD dans SQL Developer, vous devrez peut-être sélectionner le type d'objet de schéma de l'objet modifié dans le cadre Connections, puis cliquer sur l'icône Refresh.
L'effet d'une instruction LMD n'est permanent que lorsque vous validez la transaction qui l'inclut. Une transaction est une séquence d'énoncés SQL qu'Oracle Database traite comme une unité (il peut s'agir d'un énoncé LMD unique). Tant qu'une transaction n'est pas validée (commit), elle peut être annulée (undone). Pour plus d'informations sur les transactions, voir "À propos des énoncés de contrôle de transaction".
Voir aussi : Informations de référence sur le langage SQL pour Oracle Database pour plus d'informations sur les énoncés LMD
À propos de l'énoncé INSERT
L'instruction INSERT insère des lignes dans une table existante.
La forme recommandée la plus simple de l'instruction INSERT comporte la syntaxe suivante :
INSERT INTO table_name (list_of_columns)
VALUES (list_of_values);
Chaque colonne de list_of_columns doit avoir une valeur valide à la position correspondante dans list_of_values. Par conséquent, avant d'insérer une ligne dans une table, vous devez savoir quelles colonnes la table contient et quelles sont leurs valeurs valides. Pour obtenir ces informations à l'aide de SQL Developer, voir "Tutoriel : Consultation des propriétés et des données de table EMPLOYEES avec SQL Developer". Pour obtenir ces informations à l'aide de SQL*Plus, utilisez l'instruction DESCRIBE. Par exemple :
DESCRIBE EMPLOYEES;
Résultat :
Name Null? Type
----------------------------------------- -------- ------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
L'énoncé INSERT dans l'exemple 3-1 insère une rangée dans la table EMPLOYEES pour un employé dont toutes les valeurs de colonne sont connues.
Vous n'avez pas besoin de connaître toutes les valeurs de colonne pour insérer une ligne dans une table, mais vous devez connaître les valeurs de toutes les colonnes NOT NULL. Si vous ne connaissez pas la valeur d'une colonne qui peut être NULL, vous pouvez omettre cette colonne dans list_of_columns. Sa valeur par défaut est NULL.
L'énoncé INSERT dans l'exemple 3-2 insère une rangée dans la table EMPLOYEES pour un employé dont toutes les valeurs de colonne sont connues, à l'exception de SALARY. Pour l'instant, SALARY peut avoir la valeur NULL. Lorsque vous connaissez le salaire, vous pouvez le modifier à l'aide de l'instruction UPDATE (voir Exemple 3-4).
L'énoncé INSERT dans l'exemple 3-3 tente d'insérer une rangée dans la table EMPLOYEES pour un employé pour lequel LAST_NAME n'est pas connu.
Exemple 3-1 : Utiliser l'instruction INSERT lorsque toutes les informations sont disponibles
INSERT INTO EMPLOYEES (
EMPLOYEE_ID,
FIRST_NAME,
LAST_NAME,
EMAIL,
PHONE_NUMBER,
HIRE_DATE,
JOB_ID,
SALARY,
COMMISSION_PCT,
MANAGER_ID,
DEPARTMENT_ID
)
VALUES (
10, -- EMPLOYEE_ID
'George', -- FIRST_NAME
'Gordon', -- LAST_NAME
'GGORDON', -- EMAIL
'650.506.2222', -- PHONE_NUMBER
'01-JAN-07', -- HIRE_DATE
'SA_REP', -- JOB_ID
9000, -- SALARY
.1, -- COMMISSION_PCT
148, -- MANAGER_ID
80 -- DEPARTMENT_ID
);
Résultat :
1 row created.
Exemple 3-2 : Utiliser l'instruction INSERT lorsque toutes les informations ne sont pas disponibles
INSERT INTO EMPLOYEES (
EMPLOYEE_ID,
FIRST_NAME,
LAST_NAME,
EMAIL,
PHONE_NUMBER,
HIRE_DATE,
JOB_ID, -- Omit SALARY; its value defaults to NULL.
COMMISSION_PCT,
MANAGER_ID,
DEPARTMENT_ID
)
VALUES (
20, -- EMPLOYEE_ID
'John', -- FIRST_NAME
'Keats', -- LAST_NAME
'JKEATS', -- EMAIL
'650.506.3333', -- PHONE_NUMBER
'01-JAN-07', -- HIRE_DATE
'SA_REP', -- JOB_ID
.1, -- COMMISSION_PCT
148, -- MANAGER_ID
80 -- DEPARTMENT_ID
);
Résultat :
1 row created.
Exemple 3-3 : Utilisation incorrecte de l'instruction INSERT
INSERT INTO EMPLOYEES (
EMPLOYEE_ID,
FIRST_NAME, -- Omit LAST_NAME (error)
EMAIL,
PHONE_NUMBER,
HIRE_DATE,
JOB_ID,
COMMISSION_PCT,
MANAGER_ID,
DEPARTMENT_ID
)
VALUES (
20, -- EMPLOYEE_ID
'John', -- FIRST_NAME
'JOHN', -- EMAIL
'650.506.3333', -- PHONE_NUMBER
'01-JAN-07', -- HIRE_DATE
'SA_REP', -- JOB_ID
.1, -- COMMISSION_PCT
148, -- MANAGER_ID
80 -- DEPARTMENT_ID
);
Résultat :
ORA-01400: cannot insert NULL into ("HR"."EMPLOYEES"."LAST_NAME")
Voir aussi :
-
Informations de référence sur le langage SQL pour Oracle Database pour plus d'informations sur l'énoncé INSERT
-
Informations de référence sur le langage SQL pour Oracle Database pour plus d'informations sur les types de données
-
"Tutoriel : Ajout de rangées à des tables à l'aide de l'outil Insérer une rangée"
À propos de l'énoncé UPDATE
L'instruction UPDATE met à jour (modifie les valeurs de) un ensemble de lignes de table existantes.
Une forme simple de l'instruction UPDATE présente la syntaxe suivante :
UPDATE table_name
SET column_name = value [, column_name = value]...
[ WHERE condition ];
Chaque valeur doit être valide pour son nom_colonne. Si vous incluez la clause WHERE, l'instruction met à jour les valeurs de colonne uniquement dans les lignes qui satisfont à la condition.
L'énoncé UPDATE dans Exemple 3-4 met à jour la valeur de la colonne SALARY dans la rangée qui a été insérée dans la table EMPLOYEES dans Exemple 3-2, avant que le salaire de l'employé ne soit connu.
L'énoncé UPDATE dans Exemple 3-5 met à jour le pourcentage de commission pour chaque employé du service 80.
Exemple 3-4 : Utiliser l'instruction UPDATE pour ajouter des données
UPDATE EMPLOYEES
SET SALARY = 8500
WHERE LAST_NAME = 'Keats';
Résultat :
1 row updated.
Exemple 3-5 : Utiliser l'énoncé UPDATE pour mettre à jour plusieurs rangées
UPDATE EMPLOYEES
SET COMMISSION_PCT = COMMISSION_PCT + 0.05
WHERE DEPARTMENT_ID = 80;
Résultat :
34 rows updated.
Voir aussi :
-
Informations de référence sur le langage SQL pour Oracle Database pour plus d'informations sur l'énoncé UPDATE
-
Informations de référence sur le langage SQL pour Oracle Database pour plus d'informations sur les types de données
-
"Tutoriel : Modification des données dans les tables du volet de données"
À propos de la déclaration DELETE
L'instruction DELETE supprime des lignes d'une table.
La syntaxe de l'instruction DELETE est la suivante :
DELETE FROM table_name [ WHERE condition ];
Si vous incluez la clause WHERE, l'instruction supprime uniquement les lignes qui satisfont à la condition. Si vous omettez la clause WHERE, l'instruction supprime toutes les lignes de la table, mais la table vide existe toujours. Pour supprimer une TABLE, utilisez l'instruction DROP TABLE.
L'énoncé DELETE dans Exemple 3-6 supprime les rangées insérées dans Exemple 3-1 et Exemple 3-2.
Exemple 3-6 : Utiliser l'instruction DELETE
DELETE FROM EMPLOYEES
WHERE HIRE_DATE = TO_DATE('01-JAN-07', 'dd-mon-yy');
Résultat :
2 rows deleted.
Voir aussi :
-
Informations de référence sur le langage SQL pour Oracle Database pour plus d'informations sur l'énoncé DELETE
-
Informations de référence sur le langage SQL pour Oracle Database pour plus d'informations sur l'énoncé DROP TABLE
-
"Tutoriel : Suppression de rangées de tables à l'aide de l'outil Supprimer les rangées sélectionnées"