INSERT-sætning i oracle er en DML-kommando (Data Manipulation Language). Det bruges til at indsætte nye rækker i oracle-tabellerne i oracle-databasen
SyntaxINSERT INTO <table_name>
(col1, col2, ... column_n )
VALUES
(value1, value2, ... value_n );
Her
tabelnavn :Tabel, hvor nye poster skal indsættes
col1,col2 :er kolonnen i tabellerne
værdi1,værdi2…. :er værdierne svarende til col1,col2 …i tabellen
Kun én række er indsat med denne syntaks i tabellen
Antag, at du vil indtaste poster i EMP-tabellen, så
insert into emp (emp_id, emp_name,dept_id,first_name,last_name,salary)
values ('101','JOHN', 10,'JOHN' ,'ROGER', 3000);
Vigtig bemærkning
- Det er ikke nødvendigt at give kolonnenavne, hvis du angiver værdierne i den korrekte rækkefølge, og værdien for hver kolonne i tabellen er angivet
- Det anbefales at sætte enkelte anførselstegn omkring tegnværdier.
Sådan indsætter du Null-værdier i tabellen
Hvis vi sætter null-værdier for de få kolonner, kan vi udelade kolonnerne i insert-kommandoen
insert into emp (emp_id, emp_name,dept_id,salary)
values ('101','JOHN', 10, 3000);
Indsæt ved hjælp af Select-sætning
Vi kan også indsætte i tabellen ved hjælp af select statement
INSERT INTO <table_name>
(col1, col2, ... column_n ) select col1, col2, ... column_n from < table_name2>
Denne metode kan bruges til at indsætte i flere rækker
- Vi behøver ikke bruge værdisætning her
- Vi er nødt til at matche kolonnen i indsættet med udvalgsforespørgslen for at få det til at fungere
- Det er ikke nødvendigt at give kolonnenavne, hvis du angiver værdierne i den korrekte rækkefølge, og værdien for hver kolonne i tabellen er angivet
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;
Indsæt datofunktion i tabellen
Antag, at vi har en oracle-dato-datatypekolonne i tabellen, så kan vi bruge sysdate-funktionen til at indtaste datoen i insert-sætningen
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 hvis vi har brug for at angive den specifikke dato, kan vi bruge standardformatet for datoen "DD-MAN-ÅÅÅÅ". Med denne tid er standard midnat
insert into emp (emp_id,emp_name,salary,hire_date) values ( '10','JOHN',1000, '18-AUG-2018');
eller hvis vi skal indtaste data i et andet format med nogen tid, kan vi bruge 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 indsæt alle sætninger
Oracle insert all-sætning hjælper os med at tilføje flere rækker i tabellen på én gang, eller vi kan tilføje flere rækker i forskellige tabeller med den samme insert-sætning
Syntaks for é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;
Syntaks for flere 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;
Dette svarer til
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 )
Eksempler
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;
indsæt alle udsagn kan også bruges på nedenstående måde
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 er muligt at bruge betingede udsagn i 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 ;
Jeg håber, du kan lide dette indhold på indsættelseserklæringen i oracle. Jeg har forklaret forskellige måder, hvorpå inserts kan udføres i tabellerne med mange eksempler.
Relaterede artikler
Opdater sætning i oracle:Vi bruger opdateringssætning i oracle til at ændre de eksisterende rækker i oracle-tabellen i oracle-databasen. Opdatering kan udføres på flere måder
Slet fra tabelsætning i Oracle:Slet fra tabellen i Oracle bruges til at slette rækkerne. SLET rækker kan udføres ved hjælp af EXISTS/NOT EXISTS-klausulen , tabel baseret på en underforespørgsel, kaskade
Sådan ændres tabel i Oracle :Ændre tabel i Oracle bruges til at ændre en kolonne, slippe og tilføje begrænsninger, ændre datatypen i tabelkolonnen, skal du ændre tabellagringsparametrene
Sådan ændres tabel tilføje kolonne orakel:Nyttig indsigt i Hvordan ændre tabel tilføje kolonne orakel. Detaljer om funktionen til hurtig tilføjelse af kolonne introduceret i Oracle 11g gives også
Oracle-dokumentation på indsæt