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:

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

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“ Klausel DELETE FROM tabelle wird die Tabelle geleert!

Aufgabe 1

Lösen Sie die folgenden Aufgaben innerhalb der Datenbank webshop, indem Sie ausschließlich das SQL-Abfragefenster verwenden. Speichern Sie Ihre Lösungen in einer Textdatei.

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

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

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

(4) Verdoppeln Sie den Bestand des Artikels mit der Nummer 100009.

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

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

(7) Erhöhen Sie 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 können Sie herausfinden, indem Sie die SQL-Ausgaben betrachten, die phpMyAdmin anzeigt, nachdem Sie über die passenden Schaltflächen eine Tabelle geändert, erstellt oder gelöscht haben.

Erstellen Sie in Ihrer Datenbank zwei neue Tabellen mit dem Präfix schule_ und lösen Sie die folgenden Aufgaben mit diesen Tabellen, indem Sie ausschließlich das SQL-Abfragefenster verwenden.

(1) Führen Sie die beiden folgenden SQL-Befehle aus und erklären Sie 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) Entfernen Sie die Tabelle Schüler mithilfe des DROP-Befehls.

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

(4) Recherchieren Sie das ALTER TABLE-Statement und beschreiben Sie mindestens drei Verwendungsmöglichkeiten.

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