Oracle
 sql >> Database >  >> RDS >> Oracle

Istruzione INSERT in Oracle

L'istruzione INSERT in Oracle è un comando DML (Data Manipulation Language). Viene utilizzato per inserire nuove righe nelle tabelle Oracle nel database Oracle

Sintassi 

INSERT INTO
(col1, col2, ... column_n )
VALUES
(value1, value2, ... value_n );

Qui
nome_tabella :tabella in cui è necessario inserire nuovi record
col1, col2 :è la colonna nelle tabelle
valore1,valore2…. :sono i valori corrispondenti a col1,col2 …nella tabella

Solo una riga è inserita con questa sintassi nella tabella

Supponiamo di voler inserire i record nella tabella EMP, quindi

insert into emp (emp_id, emp_name,dept_id,first_name,last_name,stipendio)
values ​​('101','JOHN', 10,'JOHN' ,'ROGER', 3000);

Nota importante

  • Non è necessario fornire i nomi delle colonne nel caso in cui tu stia specificando i valori nell'ordine corretto e venga fornito il valore per ciascuna colonna nella tabella
  • Si consiglia di inserire virgolette singole intorno ai valori dei caratteri.

Come inserire valori Null nella tabella

Nel caso in cui mettiamo valori nulli per le poche colonne, possiamo omettere le colonne nel comando di inserimento

insert into emp (emp_id, emp_name,dept_id,salary)
values ​​('101','JOHN', 10, 3000);

Inserisci usando l'istruzione Select

Possiamo anche inserire nella tabella usando l'istruzione select

INSERT IN 
(col1, col2, ... column_n )select col1, col2, ... column_n da

Questo metodo può essere utilizzato per inserire in più righe

  • Non è necessario utilizzare la clausola sui valori qui
  • Dobbiamo far corrispondere la colonna nell'inserto alla query di selezione per farlo funzionare
  • Non è necessario fornire i nomi delle colonne nel caso in cui tu stia specificando i valori nell'ordine corretto e venga fornito il valore per ciascuna colonna nella tabella
Esempio inserisci in emp_master (emp_id ,salary) seleziona emp_id ,salary from emp;INSERT INTO emp_master (emp_id ,salary) CON sal AS (SELEZIONA 201,5000 DA dual UNION ALL SELECT 201, 10000 DA dual UNION ALL SELECT 204, 10004 DA dual UNION TUTTI SELEZIONA 7, 5675476 DA dual ) SELEZIONA * DA sal;

 

Inserisci la funzione della data nella tabella

Supponiamo di avere una colonna datatype di oracle nella tabella, quindi possiamo usare la funzione sysdate per inserire la data nell'istruzione insert

inserisci nei valori emp (id_empo,nome_empo,stipendio,data_assunzione) ( '10','JOHN',1000, sysdate);inserisci nei valori emp (id_empo,nome_empo,stipendio,data_assunzione) ( '10','JOHN ',1000, data di sistema -1);

Oppure, se abbiamo bisogno di specificare la data specifica, possiamo utilizzare il formato standard per la data "GG-LUN-AAAA". Con questa ora predefinita a mezzanotte

inserisci nei valori emp (emp_id,emp_name,salary,hire_date) ( '10','JOHN',1000, '18-AUG-2018');

oppure se abbiamo bisogno di inserire i dati in un formato diverso con un po' di tempo, possiamo usare la funzione to_date

insert in emp (id_emp, nome_empo, stipendio, data_assunzione) ( '10','JOHN',1000, TO_DATE('2018/08/18 01:02:44', 'aaaa/mm/gg hh24:mi:ss'));

Oracle inserisci tutte le istruzioni

L'istruzione insert all di Oracle ci aiuta ad aggiungere più righe nella tabella in una volta sola oppure possiamo aggiungere più righe in tabelle diverse con la stessa istruzione insert

Sintassi per una tabella

INSERT ALL INTO
(col1, col2, ... column_n ) VALUES (value1, value2, ... value_n )
(col1, col2, ... column_n ) VALUES ( value1, value2, ... value_n )
(col1, col2, ... column_n ) VALUES (value1, value2, ... value_n )
SELECT * FROM dual;

Sintassi per più tabelle

INSERT ALL INTO
(col1, col2, ... column_n ) VALUES (value1, value2, ... value_n )
(col1, col2, ... column_n ) VALUES ( value1, value2, ... value_n )
(col1, col2, ... column_n ) VALUES (value1, value2, ... value_n )
SELECT * FROM dual;

Questo equivale a

INSERT  INTO  (col1, col2, ... column_n ) VALUES (value1, value2, ... value_n );
INSERT  INTO (col1, col2, ... column_n ) VALUES (value1, value2, ... value_n )
INSERT  INTO (col1, col2, ... column_n ) VALUES (value1, value2, ... value_n )

Esempi

inserisci tutto nei valori
emp (emp_id, emp_name,dept_id,first_name, last_name, stipendio) ('101','JOHN', 10,'JOHN' ,'ROGER', 2000)
emp (emp_id , emp_name,dept_id,first_name,last_name,salary) valori ('102','SMITH', 10,'JOHN' ,'ROGER', 3000)
emp (emp_id, emp_name,dept_id,first_name,last_name,stipendio ) valori ('103','BILL', 10,'JOHN' ,'ROGER', 4000)
SELECT * FROM dual;

inserisci tutto nei valori
emp (emp_id, emp_name,dept_id,first_name, last_name, stipendio) ('101','JOHN', 10,'JOHN' ,'ROGER', 2000)
dept (rep_no , nome_reparto,località_reparto) valori ('20','FATTURAZIONE', 'NEWYORK)
emp (id_emplo, nome_empo,id_reparto,nome_cognome,stipendio) valori ('103','BILL', 10,'JOHN ' ,'ROGER', 4000)
SELECT * FROM dual;

inserire tutte le istruzioni può essere utilizzato anche nel modo seguente

inserisci tutti i valori INTO emp (id_emplo, nome_empo,id_reparto,salary) (id,name, no_reparto, sal) valori INTO dept (no_reparto, nome_reparto,posizione_reparto) (no_reparto,nome_reparto,posizione) WITH nomi AS ( SELEZIONA 4 id , 'John' nome,10 rep_no,'LABOUR' rept_name,'INDIA' posizione, 45000 sal FROM dual UNION ALL SELECT 5 id, 'Mac' name,20 rep_no,'FIRE' rept_name,'INDIA' location, 567000 sal FROM dual UNION ALL SELECT 6 id, 'Ruth' name,30 rep_no,'HEALTH' rept_name,'INDIA' location, 5600 sal FROM dual UNION ALL SELECT 8 id, 'bill' name,40 rept_no,'WATER' rept_name,'INDIA ' location, 158750 sal FROM dual ) SELECT * FROM nomi;

È possibile utilizzare istruzioni condizionali in inserisci tutte le istruzioni

inserisci tutto QUANDO 1=1 THEN INTO emp (id_emplo, nome_empo,id_reparto,stipendio) valori (id,nome, no_reparto, sal) QUANDO no_reparto NON È NULL ALLORA valori reparto (no_reparto, nome_reparto, posizione_reparto) (no_reparto, nome_reparto ,location) CON nomi COME (SELECT 4 id, 'John' name,10 rept_no,'LABOUR' rept_name,'INDIA' location, 45000 sal FROM dual UNION ALL SELECT 5 id, 'Mac' name,20 rept_no,'FIRE' dept_name,'INDIA' location, 567000 sal FROM dual UNION ALL SELECT 6 id, 'Ruth' name,30 rept_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 rept_no,NULL dept_name,NULL location, 158750 sal FROM dual ) SELECT * FROM nomi;

Spero che questo contenuto ti piaccia sulla dichiarazione di inserimento in Oracle. Ho spiegato vari modi in cui è possibile eseguire gli inserimenti nelle tabelle con ampi esempi.

Articoli correlati

Istruzione di aggiornamento in Oracle:utilizziamo l'istruzione di aggiornamento in Oracle per modificare le righe esistenti nella tabella di Oracle nel database di Oracle. L'aggiornamento può essere eseguito in diversi modi
Elimina dall'istruzione tabella in Oracle:Elimina dalla tabella in Oracle viene utilizzata per eliminare le righe. Le righe DELETE possono essere eseguite utilizzando la clausola EXISTS/NOT EXISTS, tabella basata su una sottoquery, cascata
Come modificare la tabella in Oracle:Alter table in Oracle viene utilizzata per modificare una colonna, eliminare e aggiungere vincoli, modificare il tipo di dati della colonna della tabella, modificare i parametri di archiviazione della tabella
Come modificare la tabella aggiungi colonna oracle:informazioni utili su come modificare la tabella aggiungi colonna oracle. I dettagli sulla funzione di aggiunta rapida delle colonne introdotta in Oracle 11g sono inoltre forniti
Documentazione Oracle sull'inserto