Introduction à INSERT dans Oracle
Dans cet article, nous allons découvrir la requête INSERT dans ORACLE. Comme son nom l'indique, la requête INSERT est utilisée pour ajouter / insérer des enregistrements uniques ou multiples dans une table. Il s'agit d'une instruction DML. DML signifie manipulation de données. C'est l'une des requêtes Oracle les plus utilisées pour résoudre les problèmes. Un point à noter est que lorsque vous utilisez INSERT, nous devons fournir une valeur pour chaque colonne NOT NULL mais si la colonne autorise les valeurs NULL, nous pouvons omettre la colonne.
Syntaxe
La requête INSERT a une syntaxe assez simple comme nous le verrons ci-dessous,
- Insertion d'un seul enregistrement à l'aide du mot clé VALUES.
Syntaxe:
INSERT INTO table_name
(column1, column2, ……, column_n)
VALUES
(expression1, expression2, expression3, expression_n);
- Insertion de plusieurs enregistrements à l'aide du mot clé SELECT.
Syntaxe:
INSERT INTO table_name
(column1, column2, ……, column_n)
SELECT expression_1, expression_2, ……., expression_n
FROM source_table
(WHERE conditions);
Paramètres de l'instruction INSERT dans Oracle
Voici les différents paramètres de l'instruction INSERT dans Oracle:
- nom_table: nom de la table dans laquelle nous voulons insérer les valeurs.
- (colonne1, colonne2, ……, colonne_n): colonnes dans lesquelles nous voulons insérer des valeurs
- (expression1, expression2, expression3, expression_n): il y a les valeurs que nous voulons insérer dans les colonnes respectives.
- source_table: Ceci est la table d'où nous allons extraire les données à insérer dans la table actuelle.
- (où condition): Cette condition est facultative. Il est utilisé lorsque nous voulons insérer des données en fonction d'une condition.
Exemples pour implémenter l'instruction INSERT dans Oracle
Voici les différents exemples pour implémenter l'instruction insert dans oracle:
Exemple # 1 - INSÉRER en utilisant le mot-clé VALUES
Il s'agit de la manière la plus simple d'utiliser la commande INSERT. Dans ce cas, nous insérons essentiellement des valeurs en donnant des valeurs réelles selon les colonnes. Nous pouvons l'utiliser dans les deux sens en fournissant les colonnes dans lesquelles nous voulons entrer ou sans fournir les colonnes. Si nous fournissons les colonnes, les valeurs seront insérées selon l'ordre des colonnes que nous avons fournies. Nous examinerons les deux façons à l'aide d'exemples.
Requete:
INSERT INTO employee (employee_id, name, vehicle_name) VALUES('AD010', 'Sharmishtha', 'Hector');
Maintenant, nous avons laissé une colonne ici qui est véhicule_id. Ainsi, automatiquement null sera inséré.
L'image ci-dessous nous montre les données du tableau une fois les données insérées.
Comme vous pouvez le voir, la dernière colonne du dernier enregistrement est nulle. Maintenant, nous ne mentionnerons pas les colonnes, utilisez simplement le mot-clé VALUES avec INSERT.
Requete:
INSERT INTO employee VALUES('AD011', 'Shweta', 'Lexus', 'VH011');
Comme vous pouvez le voir, nous n'avons pas fourni les colonnes. Examinons les valeurs de la table après avoir exécuté la commande d'insertion.
Comme vous pouvez le voir, le dernier enregistrement a été inséré dans la table après l'exécution de la requête INSERT.
Exemple # 2 - INSÉRER en utilisant un mot clé SELECT avec la condition
Ceci est très utile lorsque nous voulons effectuer plusieurs insertions dans une table. Dans ce cas, nous utilisons une instruction SELECT pour insérer des données dans notre table en extrayant les données d'une autre table. Nous pouvons également mettre des conditions dans la requête si nous voulons que les données soient insérées en fonction d'une condition.
Nous verrons ci-dessous quelques exemples qui nous montrent comment utiliser INSERT avec SELECT.
Requete:
INSERT INTO vehicle(vehicle_id, VEHICLE_NAME) SELECT vehicle_id, vehicle_name from employee where Vehicle_name = 'Lexus';
Dans la requête ci-dessus, nous insérons réellement dans le véhicule de la table en extrayant les données d'un autre employé de la table à la condition que seuls les enregistrements qui ont la valeur Lexus dans la colonne nom_véhicule des employés de la table soient éligibles pour être extraits puis insérés dans le table de véhicule. Ainsi, lorsque nous exécutons la requête ci-dessus, tous les enregistrements qui ont nom_véhicule comme Lexus dans l'employé de table seront insérés dans le véhicule de table. Dans notre cas, nous n'avions qu'un seul enregistrement, donc si vous voyez la capture d'écran, vous verrez que la console dit «1 enregistrement inséré».
Exemple # 3 - Utilisation de INSERT ALL sur une seule table
Cette instruction est utilisée lorsque nous voulons ajouter plusieurs enregistrements dans une seule table en utilisant une seule instruction INSERT. Au lieu d'utiliser INTO, nous allons utiliser ALL INTO avec INSERT pour y parvenir. Par exemple, supposons que nous ayons un véhicule de table et que nous voulons y insérer deux enregistrements. Si nous utilisons INSERT INTO, nous devons écrire deux requêtes d'insertion, mais avec INSERT ALL, nous n'avons qu'à écrire une seule requête. Penchons-nous sur la requête pour cela
Requete:
INSERT ALL
INTO vehicle(vehicle_id, vehicle_name) VALUES('VH007', TATA)
INTO vehicle(vehicle_id, vehicle_name) VALUES('VH008', 'Mahindra')
SELECT * FROM dual;
Comme vous pouvez le voir dans la requête ci-dessus, nous insérons deux enregistrements à l'aide d'une seule instruction INSERT. Si nous avions écrit la même requête en utilisant l'instruction INSERT INTO, cela aurait été comme écrit ci-dessous,
INSERT INTO vehicle(vehicle_id, vehicle_name) VALUES('VH007', TATA)
INSERT INTO vehicle(vehicle_id, vehicle_name) VALUES('VH008', 'Mahindra')
Production:
Comme vous pouvez le voir lors de l'exécution, la console de requête fournit une sortie «2 lignes insérées».
Exemple # 4 - Utilisation de INSERT ALL sur plusieurs tables
Nous pouvons également utiliser l'instruction INSERT ALL pour insérer des données sur plusieurs tables. La syntaxe sera la même et nous n'avons qu'à remplacer les noms des tables et leurs colonnes et valeurs correspondantes. Supposons, par exemple, que si nous voulons insérer des données dans les deux employés ainsi que dans la table des véhicules, la requête suivante fera le travail.
Requete:
INSERT ALL
INTO vehicle(vehicle_id, vehicle_name) VALUES('VH009', 'Suzuki')
INTO employee(employee_id, name, vehicle_name, vehicle_id) VALUES('AD012', 'Suresh', 'Suzuki', 'VH009')
SELECT * FROM dual;
Comme vous pouvez le voir dans la requête ci-dessus, nous venons de changer le nom de la table et en conséquence leurs colonnes et leurs valeurs. Si nous avions écrit la même requête en utilisant l'instruction INSERT INTO, cela aurait été comme écrit ci-dessous,
INSERT INTO vehicle(vehicle_id, vehicle_name) VALUES('VH009', 'Suzuki');
INSERT INTO employee(employee_id, name, vehicle_name, vehicle_id) VALUES('AD012', 'Suresh', 'Suzuki', 'VH009');
Production:
Comme vous pouvez le voir lors de l'exécution, la console de requête fournit une sortie «2 lignes insérées».
Articles recommandés
Ceci est un guide pour INSERER dans Oracle. Dans cet article, nous expliquons ce qu'est l'instruction INSERT, les syntaxes et les différentes manières d'utiliser l'instruction INSERT avec leurs exemples appropriés. Vous pouvez également consulter les articles suivants pour en savoir plus-
- Exemples de requêtes d'insertion SQL
- Comment fonctionne la clause GROUP BY dans SQL?
- Top 5 des requêtes dans Oracle
- Guide complet d'Oracle Data Warehousing