INSERT-instructie in oracle is een DML-opdracht (Data Manipulation Language). Het wordt gebruikt om nieuwe rijen in de orakeltabellen in de orakeldatabase in te voegen
SyntaxINSERT INTO <table_name>
(col1, col2, ... column_n )
VALUES
(value1, value2, ... value_n );
Hier
tabelnaam :Tabel waarin nieuwe records moeten worden ingevoegd
col1,col2 :is de kolom in de tabellen
waarde1,waarde2…. :zijn de waarden die overeenkomen met col1,col2 ...in de tabel
Er is slechts één rij met deze syntaxis in de tabel ingevoegd
Stel dat u records wilt invoeren in de EMP-tabel, dan
insert into emp (emp_id, emp_name,dept_id,first_name,last_name,salary)
values ('101','JOHN', 10,'JOHN' ,'ROGER', 3000);
Belangrijke opmerking
- Het is niet nodig om kolomnamen op te geven als u de waarden in de juiste volgorde opgeeft en de waarde voor elke kolom in de tabel is opgegeven
- Het wordt aanbevolen om enkele aanhalingstekens rond tekenwaarden te plaatsen.
Null-waarden in een tabel invoegen
In het geval dat we null-waarden plaatsen voor de paar kolommen, kunnen we de kolommen weglaten in het insert-commando
insert into emp (emp_id, emp_name,dept_id,salary)
values ('101','JOHN', 10, 3000);
Invoegen met Select-instructie
We kunnen ook in de tabel invoegen met de select-instructie
INSERT INTO <table_name>
(col1, col2, ... column_n ) select col1, col2, ... column_n from < table_name2>
Deze methode kan worden gebruikt om in meerdere rijen in te voegen
- We hoeven hier geen waardenclausule te gebruiken
- We moeten de kolom in de invoeging afstemmen op de selectiequery om deze te laten werken
- Het is niet nodig om kolomnamen op te geven als u de waarden in de juiste volgorde opgeeft en de waarde voor elke kolom in de tabel is opgegeven
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;
Voeg datumfunctie in de tabel in
Stel dat we een datatypekolom voor orakeldatum in de tabel hebben, dan kunnen we de sysdate-functie gebruiken om de datum in de insert-statement in te voeren
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);
Of als we de specifieke datum moeten specificeren, kunnen we het standaardformaat gebruiken voor de datum 'DD-MON-YYYY'. Met deze tijd is standaard middernacht
insert into emp (emp_id,emp_name,salary,hire_date) values ( '10','JOHN',1000, '18-AUG-2018');
of als we na verloop van tijd gegevens in een ander formaat moeten invoeren, kunnen we de to_date-functie gebruiken
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 voeg alle instructies in
Oracle insert all-instructie helpt ons om meerdere rijen in één keer in de tabel toe te voegen, of we kunnen meerdere rijen in verschillende tabellen toevoegen met dezelfde insert-instructie
Syntaxis voor één tabel
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;
Syntaxis voor meerdere tabellen
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;
Dit komt overeen met
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 )
Voorbeelden
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;
alle uitspraken invoegen kan ook op de onderstaande manier worden gebruikt
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 ;
Het is mogelijk om voorwaardelijke statements te gebruiken in insert all statement
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 ;
Ik hoop dat je deze inhoud leuk vindt op de insert-instructie in Oracle. Ik heb verschillende manieren uitgelegd waarop invoegingen in de tabellen kunnen worden uitgevoerd met ruime voorbeelden.
Verwante artikelen
Update-instructie in Oracle :We gebruiken de Update-instructie in Oracle om de bestaande rijen in de Oracle-tabel in de Oracle-database te wijzigen. Update kan op meerdere manieren worden uitgevoerd
Delete from table statement in Oracle:Delete from the table in Oracle wordt gebruikt om de rijen te verwijderen. DELETE rijen kunnen worden gedaan met behulp van de EXISTS/NOT EXISTS-clausule, tabel gebaseerd op een subquery, cascade
Hoe de tabel in Oracle te wijzigen:Tabel wijzigen in Oracle wordt gebruikt om een kolom te wijzigen, beperkingen weg te laten en toe te voegen, het gegevenstype te wijzigen van de tabelkolom, verander de tabelopslagparameters
Hoe te wijzigen tabel toevoegen kolom orakel:Nuttig inzicht in het wijzigen van tabel toevoegen kolom orakel. Details over de functie voor snel toevoegen van kolommen die in oracle 11g is geïntroduceerd, worden ook gegeven
Oracle-documentatie bij invoeging