Blog
Wednesday, 13. January 2021

PostgreSQL DML-Anweisungen

Denise
IT-Consultant

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 INSERT–Befehl 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');
  1. Mit folgender select-Anweisung können Sie Ihre Daten überprüfen:
Select * from employees;
Ausgabe select-Anweisung
Ausgabe select-Anweisung

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
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:

Mainzer Datenfabrik - PostgreSQL DML-Anweisungen

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

Mainzer Datenfabrik - PostgreSQL DML-Anweisungen

PostgreSQL UPDATE

Der UPDATE–Befehl 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.

Mainzer Datenfabrik - PostgreSQL DML-Anweisungen

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;
Mainzer Datenfabrik - PostgreSQL DML-Anweisungen

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);
Mainzer Datenfabrik - PostgreSQL DML-Anweisungen

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;
Mainzer Datenfabrik - PostgreSQL DML-Anweisungen

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
Mainzer Datenfabrik - PostgreSQL DML-Anweisungen

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.

Mainzer Datenfabrik - PostgreSQL DML-Anweisungen

POSTGRESQL DELETE

Mit dem DELETE–Befehl 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;
Mainzer Datenfabrik - PostgreSQL DML-Anweisungen

Beispiel 2 – Alle Zeilen aus einer Tabelle löschen

DELETE FROM employees;
Mainzer Datenfabrik - PostgreSQL DML-Anweisungen

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

DELETE FROM employees
WHERE employee_id=3 returning *;
Mainzer Datenfabrik - PostgreSQL DML-Anweisungen

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;
Mainzer Datenfabrik - PostgreSQL DML-Anweisungen

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”.

Mainzer Datenfabrik - PostgreSQL DML-Anweisungen

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

Mainzer Datenfabrik - PostgreSQL DML-Anweisungen

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

Mainzer Datenfabrik - PostgreSQL DML-Anweisungen

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.

Interesse geweckt?

Unsere Expert:innen stehen Ihnen bei allen Fragen rund um Ihre IT Infrastruktur zur Seite.

Kontaktieren Sie uns gerne über das Kontaktformular und vereinbaren ein unverbindliches Beratungsgespräch mit unseren Berater:innen zur Bedarfsevaluierung. Gemeinsam optimieren wir Ihre Umgebung und steigern Ihre Performance!
Wir freuen uns auf Ihre Kontaktaufnahme!

Taunusstraße 72
55118 Mainz
info@madafa.de
+49 6131 3331612
Bürozeiten
Montag bis Donnerstag:
9:00 - 17:00 Uhr MEZ

Freitags:
9:30 - 14:00 Uhr MEZ