Insert, Update, Delete

Hinweise: Workbench

Hier müssen wir zum ersten Mal die Workbench mit einem laufenden Server verwenden. Hintergrund ist, dass wir Insert, Update, Delete nicht »lernen« lassen, sondern den Schüler/innen zeigen, wie sie diese Befehle mit der Workbench generieren lassen können (das ist für die schriftliche Abiturprüfung wirklich hilfreich, und auch sonst).

Das hier können die Schüler/innen unter keinen Umständen alleine machen. Deshalb starten wir gemeinsam den Server und die Workbench und importieren den personalakte_db.sql-Dump.

Machen Sie nicht den Fehler und erwarten Sie, dass die Schüler/innen sich zuhause Workbench und Server einrichten. Das führt zu einer Menge Ärger, bei vielen geht es nicht aus zahlreichen Gründen. Also Workbench und Server nur in der Schule, wer es auf eigene Verantwortung zuhause einrichten will, hat ja das hilfreiche Video.

Zuerst mal richten wir uns eine MySQL-/MariaDB-Umgebung ein. Alles, was wir jetzt machen werden, könnten wir auch mit SQLiteStudio machen, aber für den Ernstfall solltet ihr das auch so können.

Zuerst starten wir einen lokalen MySQL- oder MariaDB-Server, z.B. xampp oder WAMP. Dann starten wir die MySQL-Workbench. Und schließlich importieren wir diesen Dump: personalakte_db.sql (oder als zip: personalakte_db.sql.zip).

Tabelle Personalakte aus dem MySQL-Dump

Ich zeige euch, wie das geht. Wenn jemand das vergisst, kann er es hier nochmal genau nachschauen: informatikZentrale: MySQL-Workbench + xampp-Server auf Windows einrichten

Prima. Jetzt zeige ich euch, wie wir die Werte in einer Datenbank verändern.

Wir brauchen drei Befehle:

INSERT INTO

Damit legen wir einen neuen Datensatz an. Das könnte so aussehen:

INSERT INTO `personalakteDB`.`personaldaten` 
(`id`, `nachname`, `vorname`, `gehalt`, `taetigkeit`)
VALUES
('3', 'Lunz', 'Tiffany', '4288', 'Personalabteilung');

UPDATE

Damit ändern wir die Werte von Datensätzen. Beispiel:

UPDATE `personalakteDB`.`personaldaten` 
SET
`wochenstunden` = '39.5'
WHERE
(`id` = '3');

DELETE

Damit löschen wir Datensätze, z.B.

DELETE FROM `personalakteDB`.`personaldaten`
WHERE
(`id` = '4');

Grundsätzlich kann das ein bisschen einfacher gemacht werden, das letzte Beispiel könnte man auch so schreiben:

DELETE FROM personaldaten WHERE id = 4;

Aber unser Trick besteht darin, dass wir die entsprechenden Manipulationen über das User-Interface der Workbench vornehmen, dann "Apply" klicken - und schon haben wir den entsprechenden Befehl. Die Workbench macht das eben ganz genau, mit Backticks und Angabe der Datenbank und so. Juckt aber nicht.

Jetzt wollen wir mal ein paar Tests machen, damit ich sehe, ob ihr das verstanden habt. Kopiert alle Anbweisungen in ein Textdokument (z.B. in Notepad++) und probiert sie dann in MySQL Workbench aus.

  1. Schauen wir erst mal die Tabelle an - Rechtsklick auf die Tabelle und "Select Rows".
  2. Wie würde der SQL-Befehl lauten, um Tiffany zurück in die Personalabteilung zu versetzen?
  3. Wie würde der SQL-Befehl lauten, um Smith zum Hauptkommissar zu befördern, seine Arbeitszeit auf 32 Stunden zu ändern und sein Gehalt auf 7900 Euro zu erhöhen?
  4. Wie würde der SQL-Befehl lauten, um den Datensatz von Kapoor zu löschen?
  5. Wie würde der SQL-Befehl lauten, um einen neuen Mitarbeiter einzufügen (Harry Hirsch, 1000 Monatsgehalt, Tätigkeit Tester, 100 Wochenstunden)?

Perfekt. Dann legen wir mal los. Damit keiner was merkt, erst mal NUR die Anweisungen in ein Textdokument kopieren, aber noch nicht ausführen.

  1. Gebt uns mal ein paar interessante Tätigkeiten, ein ordentliches Gehalt - und natürlich überschaubare Arbeitszeiten :-)
  2. Buttke weilt doch schon lange nicht mehr bei uns. Löscht ihn aus der Datenbank.
  3. Ösal hat eine Schwester - Latifa Duran. Die möchte er schon lange bei uns als CCO (Chief Communications Officer) unterbringen, natürlich mit entsprechendem Gehalt.
  4. Und wenn wir schon dabei sind … Wäre es nicht sinnvoll, Frau Rousseaus Gehalt dezent zu beschneiden? Aber übertreibt es nicht, sonst merkt sie es …

Ok - das sieht gut aus. Jetzt lassen wir die Anweisungen alle auf einmal laufen!

*tipp tipp tipp

Uuuuuund los - APPLY!