PostgreSQL DML-Anweisungen

DML- oder Data Manipulation Language-Anweisungen werden verwendet, um die in einer Datenbank vorhandenen Daten zu bearbeiten. Die wichtigsten DML-Anweisungen sind INSERT, UPDATE & DELETE.
Wir werden uns mit den verschiedenen PostgreSQL DML-Anweisungen beschäftigen und uns anschauen wie wir sie sowohl mit der SQL-Shell, als auch mit pgAdmin verwenden können.

Wir gehen davon aus, dass Sie bereits mit dem Erstellen von Tabellen in PostgreSQL vertraut sind und verwenden zum Ausführen unserer Abfragen die Tabelle employees. Sie können Sie mit folgendem Befehl erstellen:

CREATE TABLE employees(
    "employee_name" character varying(50) NOT NULL,
    "employee_id" integer NOT NULL,
    "age" integer NOT NULL,
    "gender" "char" NOT NULL,
    PRIMARY KEY ("employee_id")
);

PostgreSQL INSERT

Der INSERT-Befehl wird verwendet, um neue Daten in eine Datenbank einzufügen und besteht hauptsächlich aus zwei Segmenten. Zum einen wird nach dem INSERT INTO die Tabelle angegeben, in die Daten eingefügt werden soll und zum anderen geben wir in Listen unsere Spalten und Werte ein.
Hier sehen Sie den INSERTBefehl und anschließend unseren Beispielcode:

INSERT INTO table_name (column1, column2, column3,..) VALUES ( value1, value2, value3,..);
INSERT INTO employees (employee_name,employee_id,age,gender) VALUES ('Michael',01,37,'M');

Mit folgender select-Anweisung können Sie Ihre Daten überprüfen:

Select * from employees;
Ausgabe:

RETURNING-Klausel

Die RETURNING-Klausel kann mit der INSERT-Anweisung verwendet werden, um Informationen zur eingefügten Zeile zurückzugeben. Setzen Sie ein “*” nach dem Schlüsselwort, geben Sie die gesamte Zeile zurück:

INSERT INTO table_name(column1, column2, …)
VALUES (value1, value2, …)
RETURNING *;

Mit folgendem Befehl geben Sie nach der RETURNING-Klausel die gewünschte/n Spalte/n an, um bestimmte Informationen zu der eingefügten Zeile zu bekommen:

INSERT INTO table_name(column1, column2, …)
VALUES (value1, value2, …)
RETURNING columnn;
Beispiel:

So fügen Sie Daten mit pgAdmin in eine Tabelle ein

Navigieren Sie nach dem Starten von pgAdmin zu Datenbanken -> Datenbank(postgres) -> Schemas -> Schema(public)-> Tabellen-> Tabelle(employees) und klicken Sie auf die Schaltfläche Abfrage-Tool, wie unten gezeigt:

Geben Sie die Abfrage in den SQL-Editor ein und klicken Sie auf die Schaltfläche ‘Ausführen’:

PostgreSQL UPDATE

Der UPDATEBefehl wird verwendet, um vorhandene Daten in einer Tabelle zu ändern. Sie haben die Möglichkeit eine einzelne Spalte, eine einzelne Zeile, mehrere Spalten oder mehrere Zeilen gleichzeitig zu aktualisieren.

Zunächst müssen Sie in dieser Anweisung den Namen der Tabelle angeben, für die Sie Daten aktualisieren möchten.
Mit dem Schlüsselwort SET können Sie anschließend die gewünschten Spalten und ihre zugehörigen neuen Werte angeben und trennen diese, falls mehrere geändert werden müssen, durch ein Komma.
Abschließend definieren Sie mit dem Schlüsselwort WHERE Bedingungen, um zu bestimmen, welche Zeile(n) für die Spalte(n), die bereits oben angegeben wurden, aktualisiert werden sollen. Dieses Schlüsselwort ist allerdings optional, sodass alle Zeilen in der Tabelle aktualisiert werden, wenn es weggelassen wird.
Zusätzlich gibt die UPDATE-Anweisung die Anzahl der aktualisierten Zeilen zurück.

UPDATE table_name SET column1 = value1, column2 = value2,... columnn = valuen
WHERE condition;

UPDATE-Anweisung mit der SQL-Shell

Folgende Tabelle haben wir nun erstellt, um damit einige Abfragen auszuführen und die UPDATE-Anweisung zu demonstrieren.

Beispiel 1 – Eine einzelne Zeile/Spalte aktualisieren

Die folgende Abfrage aktualisiert die Spalte employee_name für den Mitarbeiter, dessen employee_id 2 ist:

UPDATE employees SET employee_name = 'Max'
WHERE employee_id=2;

Beispiel 2 – Mehrere Zeilen aktualisieren

Die folgende Abfrage aktualisiert das Geschlecht aller Zeilen, deren IDs in der ‘IN Klausel der WHERE- Bedingung erwähnt werden.

UPDATE employees SET gender = 'F'
WHERE employee_id in (1,2);

Beispiel 3 – Mehrere Spalten aktualisieren

Folgende Abfrage aktualisiert mehrere Spalten, die einer bestimmten Zeile entsprechen:

UPDATE employees SET age=23,gender = 'M'
WHERE employee_id=1;

So aktualisieren Sie Daten einer Tabelle mit pgAdmin

Sie haben zwei verschiedene Möglichkeiten Daten in pgAdmin zu aktualisieren:

  • Öffnen Sie den SQL-Editor und führen sie die Abfragen wie in den oben aufgeführten Beispielen mit der SQL Shell aus.
  • Bearbeiten Sie die Tabellendaten manuell:
    Navigieren Sie zu Datenbanken -> Datenbank(postgres) -> Schemas -> Schema(public)-> Tabellen-> Tabelle(employees) -> Daten anzeigen/bearbeiten

Wählen Sie die Zeile aus, die Sie aktualisieren möchten. Mit einem Doppelklick können Sie die Daten bearbeiten und anschließend mit “Datenänderungen speichern” oder F6 die Tabelle aktualisieren.

POSTGRESQL DELETE

Mit dem DELETEBefehl werden Daten aus einer Tabelle in einer Datenbank gelöscht.

DELETE FROM table_name    
WHERE condition;

In dieser Anweisung geben Sie nach dem Schlüsselwort DELETE FROM den Tabellennamen an, aus dem Sie Daten löschen möchten. Verwenden Sie als Nächstes die WHERE-Bedingung, um Zeilen aus der Tabelle anzugeben, aus der Sie Daten löschen möchten.
Zusätzlich gibt die DELETE-Anweisung die Anzahl der gelöschten Zeilen zurück.

DELETE-Anweisung mit der SQL-Shell

Beispiel 1 – Eine einzelne Zeile aus der Tabelle löschen

DELETE FROM employees
WHERE employee_id=2;

Beispiel 2 – Alle Zeilen aus einer Tabelle löschen

DELETE FROM employees;

Beispiel 3 – Löschen Sie eine Zeile und geben Sie die gelöschte Zeile zurück

DELETE FROM employees
WHERE employee_id=3 returning *;

Beispiel 4 – Löschen Sie eine Zeile und geben Sie eine oder mehrere Spalten an, um bestimmte Informationen zu der gelöschten Zeile zurückzugeben

DELETE FROM employees
WHERE employee_id=1 returning employee_name;

Daten einer Tabelle in pgAdmin löschen

Navigieren Sie zu Datenbanken -> Datenbank(postgres) -> Schemas -> Schema(public)-> Tabellen-> Tabelle(employees) -> Daten anzeigen/bearbeiten.
Wählen Sie die Zeile aus und klicken Sie auf “Löschen”.

Die Zeile wird automatisch durchgestrichen um anzuzeigen, dass Sie diese Zeile löschen möchten.

Bestätigen Sie mit “Datenänderungen speichern“ oder F6, dass Sie die Zeile löschen möchten.

Fazit

Sie sollten nun einen Überblick über die wichtigsten DML-Anweisungen in PostgreSQL bekommen haben und Daten sowohl mit pgAdmin, als auch mit der SQL Shell einfügen, aktualisieren und löschen können.