15.3. Lesson: Daten in das Modell einfügen

Das Modell, das wir erstellt haben, soll jetzt mit den vorgesehenen Daten gefüllt werden.

Ziel dieser Lektion: Das Erlernen des Einfügens neuer Daten in ein Datenbankmodell.

15.3.1. Die Einfügeanweisung

Wie fügen Sie Daten zu einer Tabelle hinzu? Das SQL Kommando INSERT stellt die erforderliche Funktionalität dazu bereit:

insert into streets (name) values ('High street');

Einige Sachen müssen beachtet werden:

  • Nach dem Tabellennamen (streets) werden die zu füllenden Spaltennamen aufgeführt (in diesem Fall nur die Spalte name).

  • Fügen Sie nach dem Schlüsselwort values die Liste der Feldwerte ein.

  • Zeichenketten müssen von einfachen Anführungszeichen umgeben werden.

  • Beachten Sie, dass wir keinen Wert für die Spalte id einfügen, weil die Spalte automatisch mit einer Sequenz gefüllt wird.

  • Wenn man die id manuell verändert, riskiert man schwerwiegende Probleme bezüglich der Integrität der Datenbank.

Wir sollten nach erfolgreichem Abschluss die Meldung INSERT 0 1 sehen.

Wir können das Ergebnis unserer Einfügeaktion durch Auswahl aller in der Tabelle enthaltenden Daten sehen:

select * from streets;

Ergebnis:

select * from streets;
 id |    name
----+-------------
  1 | High street
(1 row)

Try Yourself basic

Nutzen Sie das Kommando INSERT, um neue Straßen zur Tabelle streets hinzuzufügen.

15.3.2. Aneinanderreihen von Einfügeaktionen aufgrund von Beschränkungen

15.3.3. Try Yourself moderate

Versuchen ein Objekt Person zu der Tabelle people mit den folgenden Details hinzuzufügen:

Name: Joe Smith
House Number: 55
Street: Main Street
Phone: 072 882 33 21

Bemerkung

Denken Sie daran, dass wir die Telefonnummern als Zeichenketten, nicht als Ganzzahlen definiert haben.

In diesem Fall erhalten wir eine Fehlermeldung, wenn wir vorher noch keinen Datensatz für Main Street in der Tabelle streets erstellt haben.

Wir bemerken auch:

  • Man kann keine Straße unter Nutzung ihres Namens hinzufügen

  • Man kann vor dem Anlegen des Datensatzes für die Straße in der Tabelle streets keine Straße mit Hilfe der id hinzufügen

Denken Sie daran, dass unsere zwei Tabellen mit Hilfe eines Erst-/Fremdschlüsselpaars verbunden sind. Das bedeutet, dass keine zulässige Person ohne zulässigen dazugehörenden Datensatz für eine Straße erstellt werden kann.

Fügen Sie unter Nutzung dieses Wissens eine neue Person zur Datenbank hinzu.

15.3.4. Auswahl von Daten

Wir haben die Syntax zur Selektion von Datensätzen schon demonstriert. Lassen Sie uns einige weitere Beispiele ansehen:

select name from streets;
select * from streets;
select * from streets where name='Main Road';

In späteren Abschnitten gehen wir detaillierter darauf ein, wie man Daten auswählt und filtert.

15.3.5. Aktualisierung von Daten

Was ist, wenn man bereits existierende Daten verändern möchte? Z.B. einen Straßennamen der sich geändert hat:

update streets set name='New Main Road' where name='Main Road';

Seien Sie mit solchen Aktualisierungsanweisungen sehr vorsichtig - wenn mehr als ein Datensatz Ihrer WHERE Bedingung entspricht, werden alle aktualisiert!

Eine bessere Lösung ist die Verwendung des Primärschlüssels der Tabelle um den zu ändernden Datensatz anzusprechen:

update streets set name='New Main Road' where id=2;

Die Ausgabe sollte lauten UPDATE 1.

Bemerkung

Die Kriterien der WHERE Anweisung unterscheidet zwischen Groß- und Kleinschreibung Main Road ist nicht dasselbe wie Main road

15.3.6. Löschen von Daten

Nutzen Sie das DELETE Kommando, um ein Objekt aus einer Tabelle zu löschen:

delete from people where name = 'Joe Smith';

Sehen wir uns nun die Tabelle der Personen an:

address=# select * from people;

  id | name | house_no | street_id | phone_no
 ----+------+----------+-----------+----------
(0 rows)

15.3.7. Try Yourself hard

Nutzen Sie das Gelernte, um einige neue Freunde in Ihre Datenbank einzutragen:

      name       | house_no | street_id |   phone_no
-----------------+----------+-----------+--------------
Joe Bloggs       |        3 |         2 | 072 887 23 45
Jane Smith       |       55 |         3 | 072 837 33 35
Roger Jones      |       33 |         1 | 072 832 31 38
Sally Norman     |       83 |         1 | 072 932 31 32

15.3.8. In Conclusion

Sie wissen nun, wie man neue Daten zu vorhandenen schon erstellten Modellen hinzufügt. Denken Sie daran, dass wenn Sie neue Datenarten hinzufügen, sie unter Umständen auch neue Datenmodelle erstellen müssen.

15.3.9. What’s Next?

Nachdem wir nun einige Daten hinzugefügt haben, werden wir die Nutzung von Abfragen zum Zugriff auf die Daten lernen.