INSERT-satsen i oracle är ett DML-kommando (Data Manipulation Language). Den används för att infoga nya rader i Oracle-tabellerna i Oracle-databasen
SyntaxINSERT INTO <table_name>
(col1, col2, ... column_n )
VALUES
(value1, value2, ... value_n );
Här
tabellnamn :Tabell där nya poster måste infogas
col1,col2 :är kolumnen i tabellerna
värde1,värde2…. :är värdena som motsvarar col1,col2 …i tabellen
Endast en rad infogas med denna syntax i tabellen
Anta att du vill ange poster i EMP-tabellen, då
insert into emp (emp_id, emp_name,dept_id,first_name,last_name,salary)
values ('101','JOHN', 10,'JOHN' ,'ROGER', 3000);
Viktig anmärkning
- Det är inte nödvändigt att ge kolumnnamn om du anger värdena i rätt ordning och värde för varje kolumn i tabellen tillhandahålls
- Det rekommenderas att sätta enstaka citattecken runt teckenvärden.
Hur man infogar nollvärden i tabellen
Om vi sätter nollvärden för de få kolumnerna kan vi utelämna kolumnerna i kommandot infoga
insert into emp (emp_id, emp_name,dept_id,salary)
values ('101','JOHN', 10, 3000);
Infoga med Select-satsen
Vi kan infoga i tabellen med select-satsen också
INSERT INTO <table_name>
(col1, col2, ... column_n ) select col1, col2, ... column_n from < table_name2>
Denna metod kan användas för att infoga i flera rader
- Vi behöver inte använda värdesats här
- Vi måste matcha kolumnen i infogningen med urvalsfrågan för att få det att fungera
- Det är inte nödvändigt att ge kolumnnamn om du anger värdena i rätt ordning och värde för varje kolumn i tabellen tillhandahålls
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;
Infoga datumfunktion i tabellen
Anta att vi har en kolumn för oracle date datatype i tabellen, då kan vi använda sysdate-funktionen för att ange datumet i insert-satsen
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);
Eller om vi behöver ange det specifika datumet kan vi använda standardformatet för datumet "DD-MÅN-ÅÅÅÅ". Med denna tid som standard till midnatt
insert into emp (emp_id,emp_name,salary,hire_date) values ( '10','JOHN',1000, '18-AUG-2018');
eller om vi behöver ange data i ett annat format med lite tid, kan vi använda to_date-funktionen
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 infoga alla uttalanden
Oracle insert all-sats hjälper oss att lägga till flera rader i tabellen på en gång , eller så kan vi lägga till flera rader i olika tabeller med samma insert-sats
Syntax för en tabell
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;
Syntax för flera tabeller
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;
Detta motsvarar
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 )
Exempel
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;
infoga alla satser kan också användas på nedanstående sätt
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 ;
Det är möjligt att använda villkorliga satser i infoga alla satser
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 ;
Jag hoppas att du gillar det här innehållet på infoga uttalandet i oracle. Jag har förklarat olika sätt på vilka insättningar kan utföras i tabellerna med många exempel.
Relaterade artiklar
Uppdatera uttalande i oracle:Vi använder Update-satsen i oracle för att modifiera de befintliga raderna i oracle-tabellen i oracle-databasen. Uppdatering kan utföras på flera sätt
Ta bort från tabellsatsen i Oracle:Ta bort från tabellen i Oracle används för att ta bort raderna. DELETE rader kan göras med hjälp av EXISTS/NOT EXISTS-satsen , tabell baserad på en underfråga, kaskad
Hur man ändrar tabell i Oracle :Ändra tabell i Oracle används för att ändra en kolumn, släppa och lägga till begränsningar, ändra datatypen i tabellkolumnen, ändra tabelllagringsparametrarna
Hur man ändrar tabell lägg till kolumn oracle:Användbar insikt i Hur man ändrar tabell lägg till kolumn oracle. Detaljer om funktionen snabbt lägga till kolumn som introducerades i Oracle 11g ges också
Oracle-dokumentation på infogning