Oracle
 sql >> Datenbank >  >> RDS >> Oracle

INSERT-Anweisung in Oracle

Die INSERT-Anweisung in Oracle ist ein DML-Befehl (Data Manipulation Language). Es wird verwendet, um neue Zeilen in die Oracle-Tabellen in der Oracle-Datenbank einzufügen

Syntax 

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

Hier
Tabellenname :Tabelle, in die neue Datensätze eingefügt werden müssen
col1,col2 :ist die Spalte in den Tabellen
Wert1,Wert2…. :sind die Werte, die col1,col2 … in der Tabelle entsprechen

Bei dieser Syntax wird nur eine Zeile in die Tabelle eingefügt

Angenommen, Sie möchten Datensätze in die EMP-Tabelle eingeben, dann

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

Wichtiger Hinweis

  • Es ist nicht erforderlich, Spaltennamen anzugeben, falls Sie die Werte in der richtigen Reihenfolge angeben und der Wert für jede Spalte in der Tabelle bereitgestellt wird
  • Es wird empfohlen, Zeichenwerte in einfache Anführungszeichen zu setzen.

So fügen Sie Nullwerte in eine Tabelle ein

Falls wir Nullwerte für die wenigen Spalten setzen, können wir die Spalten im Einfügebefehl weglassen

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

Einfügen mit Select-Anweisung

Wir können auch mit der Select-Anweisung

in die Tabelle einfügen
INSERT INTO 
(col1, col2, ... column_n )select col1, col2, ... column_n from

Diese Methode kann zum Einfügen in mehrere Zeilen verwendet werden

  • Wir müssen hier keine Werteklausel verwenden
  • Wir müssen die Spalte in der Einfügung mit der Auswahlabfrage abgleichen, damit sie funktioniert
  • Es ist nicht erforderlich, Spaltennamen anzugeben, falls Sie die Werte in der richtigen Reihenfolge angeben und der Wert für jede Spalte in der Tabelle bereitgestellt wird
Beispiel 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;

 

Datumsfunktion in die Tabelle einfügen

Angenommen, wir haben eine Oracle-Datumsdatentyp-Spalte in der Tabelle, dann können wir die sysdate-Funktion verwenden, um das Datum in die Insert-Anweisung einzugeben

insert into emp (emp_id,emp_name,salary,hire_date) values ​​( '10','JOHN',1000, sysdate);insert into emp (emp_id,emp_name,salary,rere_date) values ​​( '10','JOHN ',1000, sysdate -1);

Oder wenn wir das spezifische Datum angeben müssen, können wir das Standardformat für das Datum „TT-MON-JJJJ“ verwenden. Mit dieser Uhrzeit ist standardmäßig Mitternacht

insert into emp (emp_id,emp_name,salary,hire_date) values ​​( '10','JOHN',1000, '18-AUG-2018');

oder wenn wir nach einiger Zeit Daten in einem anderen Format eingeben müssen, können wir die to_date-Funktion

verwenden
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 insert all-Anweisung

Oracle Insert All Statement hilft uns, mehrere Zeilen in der Tabelle auf einmal hinzuzufügen, oder wir können mehrere Zeilen in verschiedenen Tabellen mit derselben Insert-Anweisung hinzufügen

Syntax für eine Tabelle

INSERT ALL INTO
(col1, col2, ... column_n ) VALUES (value1, value2, ... value_n )
(col1, col2, ... column_n ) VALUES ( Wert1, Wert2, ... Wert_n )
(Spalte1, Spalte2, ... Spalte_n ) WERTE (Wert1, Wert2, ... Wert_n )
SELECT * FROM dual;

Syntax für mehrere Tabellen

INSERT ALL INTO
(col1, col2, ... column_n ) VALUES (value1, value2, ... value_n )
(col1, col2, ... column_n ) VALUES ( Wert1, Wert2, ... Wert_n )
(Spalte1, Spalte2, ... Spalte_n ) WERTE (Wert1, Wert2, ... Wert_n )
SELECT * FROM dual;

Dies ist äquivalent zu

INSERT  IN  (col1, col2, ... column_n ) VALUES (value1, value2, ... value_n );
INSERT  INTO (col1, col2, ... column_n ) VALUES (Wert1, Wert2, ... Wert_n )
INSERT  INTO (col1, col2, ... column_n ) VALUES (value1, value2, ... value_n )

Beispiele

alles einfügen in
emp (emp_id, emp_name,abt_id,vorname,nachname,gehalt) values ​​('101','JOHN', 10,'JOHN' ,'ROGER', 2000)
emp (emp_id , emp_name,abt_id,vorname,nachname,gehalt) values ​​('102','SMITH', 10,'JOHN' ,'ROGER', 3000)
emp (emp_id, emp_name,abt_id,vorname,nachname,gehalt ) Werte ('103','BILL', 10,'JOHN' ,'ROGER', 4000)
SELECT * FROM dual;

alles einfügen in
emp (emp_id, emp_name,abt_id,vorname,nachname,gehalt) werte ('101','JOHN', 10,'JOHN' ,'ROGER', 2000)
abt (abt.nr , Abteilungsname, Abteilungsstandort) Werte ('20', 'ABRECHNUNG', 'NEWYORK)
emp (Arbeitnehmer-ID, Arbeitgebername, Abteilungs-ID, Vorname, Nachname, Gehalt) Werte ('103', 'BILL', 10, 'JOHN ' ,'ROGER', 4000)
SELECT * FROM dual;

Alle Anweisungen einfügen kann auch wie folgt verwendet werden

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;

Es ist möglich, bedingte Anweisungen in der Insert-All-Anweisung

zu verwenden
insert all WHEN 1=1 THEN INTO emp (emp_id, emp_name,abt_id,gehalt) values ​​(id,name, abt_nr, sal) WHEN abt_nr IS NOT NULL THEN abt (abt_nr, abt_name,abt_ort) werte (abt_nr,abt_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, 'Juli' name,NULL dept_no,NULL dept_name,NULL location, 158750 sal FROM dual ) SELECT * FROM names;

Ich hoffe, Ihnen gefällt dieser Inhalt der Insert-Anweisung in Oracle. Ich habe verschiedene Möglichkeiten erklärt, wie Einfügungen in die Tabellen mit zahlreichen Beispielen durchgeführt werden können.

Verwandte Artikel

Update-Anweisung in Oracle:Wir verwenden die Update-Anweisung in Oracle, um die vorhandenen Zeilen in der Oracle-Tabelle in der Oracle-Datenbank zu ändern. Update kann auf mehrere Arten ausgeführt werden
Delete from table-Anweisung in Oracle:Delete from the table in Oracle wird verwendet, um die Zeilen zu löschen. DELETE-Zeilen können mit der EXISTS/NOT EXISTS-Klausel, Tabelle basierend auf einer Unterabfrage, Kaskade ausgeführt werden der Tabellenspalte, ändern Sie die Speicherparameter der Tabelle. Einzelheiten über die Funktion zum schnellen Hinzufügen von Spalten, die in Oracle 11g eingeführt wurde, finden Sie auch in der
Oracle-Dokumentation zum Einfügen