SQL – Manipulation von Daten

Bei einer Bestellung in einem Webshop müssen nicht nur Datensätze abgefragt werden ("Existiert der Artikel XYZ noch in ausreichenden Stückzahl?"), sondern auch eingefügt werden ("Kunde bestellt den Artikel XYZ in einer bestimmten Stückzahl."). Auch Änderungen ("Kunde hat eine neue Anschrift") oder Löschungen ("Kunde schließt sein Kundenkonto.") sind möglich. Die Datenbanksprache SQL liefert hierfür passende Manipulationsbefehle.

Der INSERT-Befehl fügt neue Datensätze in eine Datenbank ein.

Bei Verwendung der folgenden Syntax muss für jedes Attribut des Datensatzes ein wert angegeben werden, die Reiehnfolge entspicht dabei der Struktur der Tabelle:

INSERT INTO tabelle VALUES('wert1','wert2',...)

Bei Verwendung dieser Syntax können die einzufügenden Attribute festgelegt werden. Das ist z.B. sinnvoll, wenn man Felder wie IDs hat, deren wert automatisch vom DBMS gesetzte werden, wenn ein neuer Datensatz angefügt wird. Außerdem kann so die reiehnfolge der einzufügenden Werte selbst bestimmt werden.

INSERT INTO tabelle (column1, column2, column3, ...) VALUES (value1, value2, value3, ...)

Der UPDATE-Befehl ändert bestehende Datensätze:

UPDATE tabelle SET spalte1='wert1', spalte2='wert2',... [WHERE bedingung]

Der DELETE-Befehl löscht bestehende Datensätze:

DELETE FROM tabelle [WHERE bedingung]

Vorsicht: Mit der "bedingungslosen" Anweisung DELETE FROM tabelle wird die Tabelle komplett geleert!

Aufgabe 1

Löse die folgenden Aufgaben innerhalb der Datenbank webshop, indem du ausschließlich das SQL-Abfragefenster verwendest. Speichere deine Lösungen in einer Textdatei (oder einer Joplin Notiz?)

(1) Das Buch "Die Informatikfibel" wurde in 90-facher Stückzahl angeliefert. Es wird zum Preis von 24,99 Euro verkauft. Füge den Artikel in die Datenbank ein.

(2) Setze die Bestände der Artikel mit den Nummern 100010 und 100011 auf Null.

(3) Lösche alle Artikel, die ausverkauft sind.

(4) Verdopple Bestand des Artikels mit der Nummer 100009.

(5) Erhöhe den Preis des Artikels mit der Nummer 100008 um 2 Euro und verringeren Sie seinen Bestand um 10 Stück.

(6) Erhöhe die Preise aller Artikel um 1 Euro

(7) Erhöhe die Preise aller Artikel um 10%.

Aufgabe 2: Exkurs „Tabellenstrukturen“

Mit den Befehlen ALTER TABLE, CREATE TABLE und DROP TABLE können Tabellen geändert, erstellt und gelöscht werden. Die Funktionsweise der Befehle kannst du herausfinden, indem du die SQL-Ausgaben betrachtest, die phpMyAdmin anzeigt, nachdem du über die passenden Schaltflächen eine Tabelle geändert, erstellt oder gelöscht hast.

Erstelle in deiner Datenbank zwei neue Tabellen mit dem Präfix schule_ und löse die folgenden Aufgaben mit diesen Tabellen, indem du ausschließlich das SQL-Abfragefenster verwendest.

(1) Führedie beiden folgenden SQL-Befehle aus und erkläre jeweils ihre Funktion:

CREATE TABLE schule_Schueler ( SNr INT(5) PRIMARY KEY, Nachname VARCHAR(40), Vorname VARCHAR(30), Geburtsdatum DATE, StrasseNr VARCHAR(40), PLZ VARCHAR(7), Ort VARCHAR(40) );
CREATE TABLE schule_Kurs ( KursID VARCHAR(10) PRIMARY KEY, Fach VARCHAR (5), Thema VARCHAR (50), Art ENUM('GK', 'LK'), Halbjahr VARCHAR (10), Stunden INT(1) );

Hinweise: Der Datentyp ENUM ermöglicht die Speicherung bestimmter Werte aus einer Liste. Der Zusatz PRIMARY KEY gibt an, dass die entsprechende Spalte der bevorzugt zu verwendende Schlüssel ist.

(2) Entferne die Tabelle Schüler mithilfe des DROP-Befehls.

(3) Füge eine Tabelle namens schule_Belegt mithilfe des CREATE-Befehls hinzu, die die Notenpunktzahlen von Schülern in Kursen speichert.

(4) Recherchiere das ALTER TABLE-Statement und beschreibe mindestens drei Verwendungsmöglichkeiten.

(5) Ermögliche mithilfe des ALTER TABLE-Befehls auch die Speicherung sechsstelliger Schülernummern in der Tabelle Schueler.