L'instruction INSERT dans Oracle est une commande DML (Data Manipulation Language). Il est utilisé pour insérer de nouvelles lignes dans les tables oracle de la base de données oracle
SyntaxINSERT INTO <table_name>
(col1, col2, ... column_n )
VALUES
(value1, value2, ... value_n );
Ici
table_name :Table dans laquelle de nouveaux enregistrements doivent être insérés
col1,col2 :est la colonne dans les tableaux
valeur1,valeur2…. :sont les valeurs correspondant à col1,col2 …dans le tableau
Une seule ligne est insérée avec cette syntaxe dans le tableau
Supposons que vous souhaitiez saisir des enregistrements dans la table EMP, puis
insert into emp (emp_id, emp_name,dept_id,first_name,last_name,salary)
values ('101','JOHN', 10,'JOHN' ,'ROGER', 3000);
Remarque importante
- Il n'est pas nécessaire de donner des noms de colonne dans le cas où vous spécifiez les valeurs dans le bon ordre et la valeur de chaque colonne du tableau est fournie
- Il est recommandé de mettre des guillemets simples autour des valeurs de caractères.
Comment insérer des valeurs nulles dans le tableau
Dans le cas où nous mettons des valeurs nulles pour les quelques colonnes, nous pouvons omettre les colonnes dans la commande d'insertion
insert into emp (emp_id, emp_name,dept_id,salary)
values ('101','JOHN', 10, 3000);
Insérer à l'aide de l'instruction Select
Nous pouvons également insérer dans le tableau en utilisant l'instruction select
INSERT INTO <table_name>
(col1, col2, ... column_n ) select col1, col2, ... column_n from < table_name2>
Cette méthode peut être utilisée pour insérer dans plusieurs lignes
- Nous n'avons pas besoin d'utiliser la clause de valeurs ici
- Nous devons faire correspondre la colonne de l'insert à la requête de sélection pour que cela fonctionne
- Il n'est pas nécessaire de donner des noms de colonne dans le cas où vous spécifiez les valeurs dans le bon ordre et la valeur de chaque colonne du tableau est fournie
Example insert into emp_master (emp_id ,salary) select emp_id ,salary from emp; INSERT INTO emp_master (emp_id ,salary) WITH sal AS ( SELECT 201,5000 FROM dual UNION ALL SELECT 201, 10000 FROM dual UNION ALL SELECT 204, 10004 FROM dual UNION ALL SELECT 7, 5675476 FROM dual ) SELECT * FROM sal;
Insérer la fonction de date dans le tableau
Supposons que nous ayons une colonne de type de données de date oracle dans la table, nous pouvons alors utiliser la fonction sysdate pour entrer la date dans l'instruction d'insertion
insert into emp (emp_id,emp_name,salary,hire_date) values ( '10','JOHN',1000, sysdate); insert into emp (emp_id,emp_name,salary,hire_date) values ( '10','JOHN',1000, sysdate -1);
Ou si nous avons besoin de spécifier la date spécifique, nous pouvons utiliser le format standard pour la date 'DD-MON-YYYY'.Avec cette heure par défaut à minuit
insert into emp (emp_id,emp_name,salary,hire_date) values ( '10','JOHN',1000, '18-AUG-2018');
ou si nous devons saisir des données dans un format différent avec un certain temps, nous pouvons utiliser la fonction to_date
insert into emp (emp_id,emp_name,salary,hire_date) values ( '10','JOHN',1000, TO_DATE('2018/08/18 01:02:44', 'yyyy/mm/dd hh24:mi:ss'));
Oracle insère toutes les instructions
L'instruction insert all d'Oracle nous aide à ajouter plusieurs lignes dans le tableau en une seule fois , ou nous pouvons ajouter plusieurs lignes dans différentes tables avec la même instruction insert
Syntaxe pour une table
INSERT ALL INTO
<table_name> (col1, col2, ... column_n ) VALUES (value1, value2, ... value_n )
<table_name> (col1, col2, ... column_n ) VALUES (value1, value2, ... value_n )
<table_name> (col1, col2, ... column_n ) VALUES (value1, value2, ... value_n )
SELECT * FROM dual;
Syntaxe pour plusieurs tables
INSERT ALL INTO
<table_name1> (col1, col2, ... column_n ) VALUES (value1, value2, ... value_n )
<table_name2> (col1, col2, ... column_n ) VALUES (value1, value2, ... value_n )
<table_name3> (col1, col2, ... column_n ) VALUES (value1, value2, ... value_n )
SELECT * FROM dual;
Cela équivaut à
INSERT INTO <table_name> (col1, col2, ... column_n ) VALUES (value1, value2, ... value_n );
INSERT INTO <table_name> (col1, col2, ... column_n ) VALUES (value1, value2, ... value_n )
INSERT INTO <table_name> (col1, col2, ... column_n ) VALUES (value1, value2, ... value_n )
Exemples
insert all into
emp (emp_id, emp_name,dept_id,first_name,last_name,salary) values ('101','JOHN', 10,'JOHN' ,'ROGER', 2000)
emp (emp_id, emp_name,dept_id,first_name,last_name,salary) values ('102','SMITH', 10,'JOHN' ,'ROGER', 3000)
emp (emp_id, emp_name,dept_id,first_name,last_name,salary) values ('103','BILL', 10,'JOHN' ,'ROGER', 4000)
SELECT * FROM dual;
insert all into
emp (emp_id, emp_name,dept_id,first_name,last_name,salary) values ('101','JOHN', 10,'JOHN' ,'ROGER', 2000)
dept (dept_no, dept_name,dept_location) values ('20','BILLING', 'NEWYORK)
emp (emp_id, emp_name,dept_id,first_name,last_name,salary) values ('103','BILL', 10,'JOHN' ,'ROGER', 4000)
SELECT * FROM dual;
insérer toutes les déclarations peut également être utilisé de la manière ci-dessous
insert all INTO emp (emp_id, emp_name,dept_id,salary) values (id,name, dept_no, sal) INTO dept (dept_no, dept_name,dept_location) values (dept_no,dept_name,location) WITH names AS ( SELECT 4 id, 'John' name,10 dept_no,'LABOUR' dept_name,'INDIA' location, 45000 sal FROM dual UNION ALL SELECT 5 id, 'Mac' name,20 dept_no,'FIRE' dept_name,'INDIA' location, 567000 sal FROM dual UNION ALL SELECT 6 id, 'Ruth' name,30 dept_no,'HEALTH' dept_name,'INDIA' location, 5600 sal FROM dual UNION ALL SELECT 8 id, 'bill' name,40 dept_no,'WATER' dept_name,'INDIA' location, 158750 sal FROM dual ) SELECT * FROM names ;
Il est possible d'utiliser des instructions conditionnelles dans insérer toutes les instructions
insert all WHEN 1=1 THEN INTO emp (emp_id, emp_name,dept_id,salary) values (id,name, dept_no, sal) WHEN dept_no IS NOT NULL THEN dept (dept_no, dept_name,dept_location) values (dept_no,dept_name,location) WITH names AS ( SELECT 4 id, 'John' name,10 dept_no,'LABOUR' dept_name,'INDIA' location, 45000 sal FROM dual UNION ALL SELECT 5 id, 'Mac' name,20 dept_no,'FIRE' dept_name,'INDIA' location, 567000 sal FROM dual UNION ALL SELECT 6 id, 'Ruth' name,30 dept_no,'HEALTH' dept_name,'INDIA' location, 5600 sal FROM dual UNION ALL SELECT 8 id, 'bill' name,40 dept_no,'WATER' dept_name,'INDIA' location, 158750 sal FROM dual SELECT 9 id, 'July' name,NULL dept_no,NULL dept_name,NULL location, 158750 sal FROM dual ) SELECT * FROM names ;
J'espère que vous aimez ce contenu sur la déclaration d'insertion dans Oracle. J'ai expliqué différentes manières d'effectuer des insertions dans les tableaux avec de nombreux exemples.
Articles connexes
Instruction de mise à jour dans oracle :Nous utilisons l'instruction Update dans oracle pour modifier les lignes existantes dans la table oracle de la base de données oracle. La mise à jour peut être exécutée de plusieurs manières
Instruction de suppression de la table dans Oracle :la suppression de la table dans Oracle est utilisée pour supprimer les lignes. SUPPRIMER les lignes peuvent être effectuées à l'aide de la clause EXISTS/NOT EXISTS, table basée sur une sous-requête, cascade de la colonne de la table, modifiez les paramètres de stockage de la table
Comment modifier l'oracle de colonne d'ajout de table :aperçu utile de la façon de modifier l'oracle de colonne d'ajout de table. Des détails sur la fonction d'ajout rapide de colonnes introduite dans Oracle 11g sont également fournis
Documentation Oracle sur l'insertion