PostgreSQL - INSERT-Abfrage

Das PostgreSQL INSERT INTOAnweisung ermöglicht es, neue Zeilen in eine Tabelle einzufügen. Man kann eine einzelne Zeile gleichzeitig oder mehrere Zeilen als Ergebnis einer Abfrage einfügen.

Syntax

Die grundlegende Syntax der INSERT INTO-Anweisung lautet wie folgt:

INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
VALUES (value1, value2, value3,...valueN);
  • Hier sind Spalte1, Spalte2, ... SpalteN die Namen der Spalten in der Tabelle, in die Sie Daten einfügen möchten.

  • Die Namen der Zielspalten können in beliebiger Reihenfolge aufgelistet werden. Die von der VALUES-Klausel oder -Abfrage bereitgestellten Werte sind der expliziten oder impliziten Spaltenliste von links nach rechts zugeordnet.

Möglicherweise müssen Sie den Spaltennamen nicht in der SQL-Abfrage angeben, wenn Sie Werte für alle Spalten der Tabelle hinzufügen. Stellen Sie jedoch sicher, dass die Reihenfolge der Werte in derselben Reihenfolge wie die Spalten in der Tabelle liegt. Die SQL INSERT INTO-Syntax lautet wie folgt:

INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);

Ausgabe

In der folgenden Tabelle sind die Ausgabenachrichten und ihre Bedeutung zusammengefasst.

S. Nr. Ausgangsnachricht & Beschreibung
1

INSERT oid 1

Nachricht zurückgegeben, wenn nur eine Zeile eingefügt wurde. oid ist die numerische OID der eingefügten Zeile.

2

INSERT 0 #

Nachricht zurückgegeben, wenn mehr als eine Zeile eingefügt wurde. # ist die Anzahl der eingefügten Zeilen.

Beispiele

Lassen Sie uns die COMPANY-Tabelle in erstellen testdb wie folgt -

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL,
   JOIN_DATE	  DATE
);

Im folgenden Beispiel wird eine Zeile in die Tabelle COMPANY eingefügt.

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (1, 'Paul', 32, 'California', 20000.00,'2001-07-13');

Im folgenden Beispiel wird eine Zeile eingefügt. Hier wird die Gehaltsspalte weggelassen und hat daher den Standardwert -

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,JOIN_DATE) VALUES (2, 'Allen', 25, 'Texas', '2007-12-13');

Im folgenden Beispiel wird die DEFAULT-Klausel für die Spalte JOIN_DATE verwendet, anstatt einen Wert anzugeben.

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (3, 'Teddy', 23, 'Norway', 20000.00, DEFAULT );

Im folgenden Beispiel werden mehrere Zeilen mit der mehrzeiligen VALUES-Syntax eingefügt.

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00, '2007-12-13' ), (5, 'David', 27, 'Texas', 85000.00, '2007-12-13');

Alle obigen Anweisungen würden die folgenden Datensätze in der COMPANY-Tabelle erstellen. Im nächsten Kapitel erfahren Sie, wie Sie alle diese Datensätze aus einer Tabelle anzeigen.

ID        NAME        AGE        ADDRESS     SALARY	  JOIN_DATE
----      ----------  -----      ----------  -------      --------
1         Paul        32         California  20000.0      2001-07-13
2         Allen       25         Texas                    2007-12-13
3         Teddy       23         Norway      20000.0
4         Mark        25         Rich-Mond   65000.0      2007-12-13
5         David       27         Texas       85000.0      2007-12-13