sql >> Database >  >> RDS >> Oracle

INSERT-instructie in Oracle

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

Syntax

INSERT 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


  1. Hoe u uw PostgreSQL-databases beheert vanuit de ClusterControl CLI

  2. Door de gebruiker gedefinieerde routine met DBMS_STATS, deel II

  3. ORACLE Een spoel gebruiken met dynamische spoellocatie

  4. mysql-query toont meerdere tabellen uit één ID-kolom