info:sek-ii:q2:sql:lektion4
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Vorhergehende Überarbeitung | |||
— | info:sek-ii:q2:sql:lektion4 [2024-02-25 12:49] (aktuell) – [BetterBox#3] christian.weber | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Verändern von Datenbankeinträgen ====== | ||
+ | < | ||
+ | <info w1|**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 '' | ||
+ | |||
+ | Wir gehen in den folgenden Beispielen von dieser Datenbank aus: | ||
+ | |||
+ | <bbox center|**Personen**(__ID__, | ||
+ | {{ : | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | <aufgabe w1|**Aufgabe 1**> | ||
+ | |||
+ | **a)** Lade dir die Datei {{ : | ||
+ | |||
+ | **b)** Wenn ihr die Befehle unten nacheinander ausprobiert, | ||
+ | |||
+ | < | ||
+ | <bbox w2> | ||
+ | {{ : | ||
+ | </ | ||
+ | <bbox w2> | ||
+ | {{ : | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Um die manipulierten Datensätze anzuschauen, | ||
+ | |||
+ | **c)** Speichert euch im Gruppendokument eine Übersicht über die verschiedenen Fehlermeldungen die ihr erhaltet. Diese besprechen wir am Ende der Stunde! | ||
+ | |||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | <bbox w2> | ||
+ | <code sql> | ||
+ | INSERT INTO Personen(ID, | ||
+ | VALUES (5, ' | ||
+ | </ | ||
+ | </ | ||
+ | <bbox w2> | ||
+ | {{ : | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Der '' | ||
+ | |||
+ | < | ||
+ | <bbox w2> | ||
+ | <code sql> | ||
+ | INSERT INTO Personen(ID, | ||
+ | VALUES (6, ' | ||
+ | </ | ||
+ | </ | ||
+ | <bbox w2> | ||
+ | {{ : | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | **Vorsicht!** Manche Spalten wurden so definiert, dass sie '' | ||
+ | |||
+ | <code sql> | ||
+ | INSERT INTO Personen (ID, Geburtstag) | ||
+ | VALUES (12, ' | ||
+ | </ | ||
+ | |||
+ | Man kann auch mehrere Datensätze mit einem einzigen Befehl einfügen. Die Beispieldatenbank wurde so erstellt: | ||
+ | |||
+ | <code sql> | ||
+ | INSERT INTO Personen(ID, | ||
+ | VALUES (1, ' | ||
+ | (2, ' | ||
+ | (3, ' | ||
+ | (4, ' | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | <bbox w2> | ||
+ | <code sql> | ||
+ | UPDATE Personen | ||
+ | SET Name = ' | ||
+ | WHERE ID = 1 | ||
+ | </ | ||
+ | </ | ||
+ | <bbox w2> | ||
+ | {{ : | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Der '' | ||
+ | |||
+ | < | ||
+ | <bbox w2> | ||
+ | <code sql> | ||
+ | UPDATE Personen | ||
+ | SET Geburtstag = ' | ||
+ | WHERE Geburtstag IS NULL | ||
+ | </ | ||
+ | </ | ||
+ | <bbox w2> | ||
+ | {{ : | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | <bbox w2> | ||
+ | <code sql> | ||
+ | DELETE FROM Personen | ||
+ | WHERE ID = 2 | ||
+ | </ | ||
+ | </ | ||
+ | <bbox w2> | ||
+ | {{ : | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Der '' | ||
+ | |||
+ | < | ||
+ | <bbox w2> | ||
+ | <code sql> | ||
+ | DELETE FROM Personen | ||
+ | WHERE Geburtstag = ' | ||
+ | </ | ||
+ | </ | ||
+ | <bbox w2> | ||
+ | {{ : | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | **VORSICHT!** Die '' | ||
+ | |||
+ | <code sql> | ||
+ | DELETE FROM Personen; | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | <aufgabe w1|**Aufgabe 2**> | ||
+ | |||
+ | <bbox tomato> | ||
+ | |||
+ | 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 {{ : | ||
+ | |||
+ | * Die Datenbank hat das folgende Schema: | ||
+ | < | ||
+ | <bbox w6-5> | ||
+ | **Personen**(__ID__, | ||
+ | **Lieblingsessen**(↑__PersonID__, | ||
+ | </ | ||
+ | * 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 {{ : | ||
+ | |||
+ | * Die Datenbank hat das folgende Schema: | ||
+ | < | ||
+ | <bbox w6-5> | ||
+ | **Schüler**(__ID__, | ||
+ | **Kurs**(__ID__, | ||
+ | **belegt**(↑__SchülerID__, | ||
+ | </ | ||
+ | * 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 ('' | ||
+ | * Schreibe zu jeder Befehlsvariante ('' | ||
+ | * Ergänzt im Cheat Sheet die verschiedenen Fehlermeldungen und deren Ursachen! | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ |