Wiki: Mathe und Info

Unterrichtsmaterialien für Mathematik und Informatik

Benutzer-Werkzeuge

Webseiten-Werkzeuge


info:sek-ii:q2:sql:lektion4

Verändern von Datenbankeinträgen

Verändern von Datenbankeinträgen

Um die Daten in Datenbanken verändern zu können, benötigt man drei grundlegende Operationen:

  • Einfügen neuer Datensätze
  • Bearbeiten bestehender Datensätze
  • Löschen überflüssiger Datensätze

Hierfür bietet SQL die DML (Data Manipulation Language). Diese besteht aus den drei Befehlen INSERT INTO, UPDATE und DELETE FROM, die wir im folgenden kennen lernen werden.

Wir gehen in den folgenden Beispielen von dieser Datenbank aus:

Personen(ID, Name, Geburtstag)
Aufgabe 1

a) Lade dir die Datei personen.sqlite3 herunter und öffne sql.wiki-mathe-info.de. Importiere anschließend die heruntergeladene Datei! Die folgenden Beispiele beziehen sich hierauf!

b) Wenn ihr die Befehle unten nacheinander ausprobiert, werdet ihr nicht direkt die Ergebnisse sehen. Stattdessen seht ihr eine Erfolgs- oder Fehlermeldung.

Um die manipulierten Datensätze anzuschauen, einfach einen SELECT * auf die bearbeitete Tabelle machen oder auf den Namen der Tabelle im Relationenschema klicken!

c) Speichert euch im Gruppendokument eine Übersicht über die verschiedenen Fehlermeldungen die ihr erhaltet. Diese besprechen wir am Ende der Stunde!

INSERT INTO
INSERT INTO Personen(ID, Name, Geburtstag)
VALUES (5, 'Hans', '1969-01-01');

Der Insert-Befehl spezifiziert zunächst die Tabelle und die Attribute, die eingefügt werden sollen. Dies müssen nicht zwangsläufig alle sein!

INSERT INTO Personen(ID, Name)
VALUES (6, 'Bernd');

Vorsicht! Manche Spalten wurden so definiert, dass sie NULL-Werte nicht zulassen. Der folgende Befehl würde im Beispiel mit der Fehlermeldung NOT NULL constraint failed: Personen.Name fehlschlagen.

INSERT INTO Personen (ID, Geburtstag)
VALUES (12, '1999-01-01')

Man kann auch mehrere Datensätze mit einem einzigen Befehl einfügen. Die Beispieldatenbank wurde so erstellt:

INSERT INTO Personen(ID, Name, Geburtstag)
VALUES (1, 'Horst', '1957-03-25'),
       (2, 'Gerlinde', '1953-02-11'),
       (3, 'Else', '1964-11-21'),
       (4, 'Hubert', NULL);
UPDATE
UPDATE Personen
SET Name = 'Heinz'
WHERE ID = 1

Der UPDATE-Befehl spezifiziert zunächst die Tabelle, die angepasst werden soll. Anschließend werden mit der SET-Klausel die zu verändernden Daten angegeben. Die WHERE-Klausel spezifiziert wie beim SELECT, welche Datensätze angepasst werden sollen. Dies können auch mehrere gleichzeitig sein!

UPDATE Personen
SET Geburtstag = '1900-01-01'
WHERE Geburtstag IS NULL
DELETE FROM
DELETE FROM Personen
WHERE ID = 2

Der DELETE-Befehl spezifiziert zunächst die Tabelle, aus der Daten gelöscht werden sollen. Im Anschluss wird mit einer WHERE-Klausel wie beim SELECT spezifiziert, welche Datensätze zum Löschen ausgewählt werden sollen. Dies können ebenso mehrere sein!

DELETE FROM Personen
WHERE Geburtstag = '1900-01-01'

VORSICHT! Die WHERE-Klausel ist optional! Dieser Befehl löscht ALLE Datensätze der Tabelle:

DELETE FROM Personen;
Aufgabe 2
Speichert die Ergebnisse von Aufgabe 2 jeweils nach dem Schema personen_mit_essen_NAME.sqlite3 bzw. schule_NAME.sqlite3 in unserem geteilten Ordner in der NextCloud! Dazu einfach im Editor auf Export klicken, Datei umbenennen und in die NextCloud kopieren / verschieben!

Speichert euch im Gruppendokument eine Übersicht über die verschiedenen Fehlermeldungen die ihr erhaltet. Diese besprechen wir am Ende der Stunde bzw. in Aufgabe c).

a) Lade dir die Datei personen_mit_essen.sqlite3 herunter und öffne sie in sql.wiki-mathe-info.de.

  • Die Datenbank hat das folgende Schema:
Personen(ID, Name, Geburtstag)
Lieblingsessen(↑PersonID, Essen)
  • Verschaffe dir einen Überblick über die Datenbank und lösche die Beispieldaten!
  • Erstellt eine Geburtstagsliste des Kurses! Wer seinen Geburtstag nicht angeben möchte, muss das nicht!
  • Sammelt die Lieblingsessen des Kurses und speichert diese! Hier sind auch Mehrfachnennungen möglich!

b) Lade dir die Datei schule.sqlite3 herunter und öffne sie in sql.wiki-mathe-info.de.

  • Die Datenbank hat das folgende Schema:
Schüler(ID, Nachname, Vorname, Geburtsdatum, StrasseNr, PLZ, Ort)
Kurs(ID, Fach, Thema, Art, Halbjahr, Stunden)
belegt(↑SchülerID, ↑KursID, Punkte)
  • Verschaffe dir einen Überblick über die Datenbank und lösche die Beispieldaten!
  • Erstellt für eure Kleingruppe eine Belegungsliste eurer Kurse!

c) Erstellt euch im Gruppendokument ein Cheat Sheet!

  • Hieraus soll die Syntax der vier verschiedenen SQL-Befehle (SELECT, INSERT, UPDATE und DELETE) deutlich werden.
  • Schreibe zu jeder Befehlsvariante (SELECT hat ganz viele verschiedene Varianten) ein sinnvolles Beispiel! Beziehe dich in den Beispielen auf die bekannten Datenbanken (CIA, Northwind, Chinook, etc.)
  • Ergänzt im Cheat Sheet die verschiedenen Fehlermeldungen und deren Ursachen!
info/sek-ii/q2/sql/lektion4.txt · Zuletzt geändert: 2024-02-25 12:49 von christian.weber