Unterrichtsmaterialien für den Informatikunterricht

Tabellen und Datensätze in MySQL verändern (UPDATE, ALTER usw.)

FolienÜbungen #Datenbanken#SQL Stand 07.08.2010

Folien

Falls keine PDF-Präsentation zu sehen ist: Direktdownload der PDF-Präsentation

Aktualisierung eines Datensatzes durch UPDATE:

UPDATE tabellenname SET variablenname='neuer Inhalt' WHERE id=3
UPDATE tabellenname SET telefonnummer='neuer Inhalt', postleitzahl='neuer Inhalt' WHERE kunde_id=7

Statt id=3 kann auch ein anderes eindeutig identifizierendes Feld benutzt werden.

Ändern der Tabellenstruktur mit ALTER TABLE:

Mit ALTER TABLE tabellenname [Spezifikation] wird eine Tabelle verändert. Mögliche Spezifikationen:

RENAME – benennt die Tabelle um, z.B.

ALTER TABLE kunden RENAME bestandskunden

ADD COLUMN – fügt ein Feld hinzu, z.B.

ALTER TABLE kunden ADD COLUMN registrierungsdatum TIMESTAMP

Die Position kann mit FIRST und AFTER angegeben werden (FIRST = neues Feld wird an den Anfang gesetzt, AFTER feldname = neues Feld wird nach feldname eingefügt).

DROP COLUMN – löscht ein Feld, z.B.

ALTER TABLE kunden DROP COLUMN registrierungsdatum

CHANGE – Änderung eines Feldes, wobei die Attribute des Feldes neu angegeben werden müssen, z.B.

ALTER TABLE kunden CHANGE altername neuername VARCHAR(255) NOT NULL

oder um nur die Attribute zu ändern

ALTER TABLE search CHANGE altername altername VARCHAR(200) NOT NULL

Löschen von Daten mit DELETE

DELETE löscht einen/mehrere Datensätze aus einer Tabelle. Mit

DELETE FROM tabellenname

würden sämtliche Datensätze einer Tabelle gelöscht werden. Durch die Einschränkung WHERE

DELETE FROM tabellenname WHERE id=8

… würden im Beispiel alle Datensätze gelöscht werden, in denen das Feld id den Wert 8 hat.

Löschen einer ganzen Tabelle mit DROP TABLE

DROP TABLE tabellenname

Übungen

Zusätzliche Dateien (Bilder, Klassendiagramme, HTML-Vorlagen) finden Sie in der Materialsammlung. Diese Übungen können Sie als txt-Datei herunterladen.


Übungen: MySQL - UPDATE-ALTER-DELETE



Benutzen Sie für diese Übungen jeweils die Tabelle unter der Aufgabenstellung!

MySQL_4-1) Übungen zu UPDATE

Ändern Sie die Inhalte der Tabelle entsprechend der folgenden Ereignisse:

1. Heinrich Schmitt ist nach Dortmund umgezogen.
2. Sabine Müller hat geheiratet und heißt jetzt Sabine Müller-Schmitt.
3. Markus Mustermann hat seinen Namen geändert und heißt jetzt Michael Mussorgski.
4. Herr Doppelbrecher heißt mit Vornamen "Siegfried".
5. Frau Bulgur heißt mit Vornamen "Marianne", ihr Ländercode ist 1.
6. Frau Maier heißt mit Vornamen "Berta", sie wohnt in Stuttgart (Ländercode 1).



MySQL_4-2) Übungen zu ALTER TABLE und DELETE


Ändern Sie die Tabelle wie folgt:
1. Benennen Sie die Tabelle um in "bestandskunden".
2. Legen Sie ein Feld namens "postleitzahl' an, verwenden Sie einen sinnvollen Datentyp.
3. Sparen Sie Speicherplatz, indem Sie den Datentyp der Felder "vorname" und "nachname" auf varchar(150) ändern.
4. Da wir die Tabelle nachher noch brauchen, löschen Sie das Feld "postleitzahl" und benennen die Tabelle wieder um in "kunden".
5. Löschen Sie den Datensatz mit der kunde_id 23 (Albert Schulter).



Benutzen Sie für diese Übung die Tabelle unter der Aufgabenstellung

MySQL-4C) Kombinierte Übung zu UPDATE, ALTER, DELETE, DROP TABLE

1. Exportieren Sie die Tabelle mit phpMyAdmin.
2. Spielen Sie die exportierte Tabelle unter dem Namen "kunden_kopie" in die Datenbank ein.
3. Löschen Sie alle Datensätze, in denen der Wohnort Solingen ist.
4. Sie haben sicher bemerkt, dass wir das Feld land_id nicht besonders sinnvoll gehandhabt haben. Löschen Sie es.
5. Benennen Sie die Tabelle in "kunden_copy" um.
6. Benennen Sie das Feld "wohnort" in "ort" um.
7. Löschen Sie die Datensätze "Brunhild Sulcher" und "Maria Manta".
8. Aldi Bursel heißt in Wirklichkeit Alfred Buntschuh.
9. Herr Bismarck wohnt in Kirchzarten.
10. Exportieren Sie die Tabelle.
11. Löschen Sie die Tabelle.




Tabelle für die Übungen (mit Copy-Paste in phpmyadmin anlegen):

--
-- Tabellenstruktur für Tabelle kunden
--

CREATE TABLE kunden (
  kunde_id int(11) NOT NULL auto_increment,
    nachname varchar(255) default NULL,
   vorname varchar(255) default NULL,
  land_id int(11) default NULL,
  wohnort varchar(255) default NULL,
  PRIMARY KEY  (kunde_id)
);

--
-- Daten für Tabelle kunden
--

INSERT INTO kunden VALUES(1, 'Schmitt', 'Heinrich', 2, 'Bielefeld');
INSERT INTO kunden VALUES(2, 'Müller', 'Sabine', 2, 'Essen');
INSERT INTO kunden VALUES(3, 'Mustermann', 'Markus', 1, 'Wien');
INSERT INTO kunden VALUES(4, 'Maier', NULL, NULL, NULL);
INSERT INTO kunden VALUES(5, 'Bulgur', NULL, NULL, 'Rheinfelden');
INSERT INTO kunden VALUES(6, 'Manta', 'Maria', NULL, NULL);
INSERT INTO kunden VALUES(7, 'Fesenkampp', NULL, 3, 'Duisburg');
INSERT INTO kunden VALUES(8, NULL, 'Herbert', NULL, NULL);
INSERT INTO kunden VALUES(9, 'Schulter', 'Albert', 1, 'Duisburg');
INSERT INTO kunden VALUES(10, 'Sulcher', 'Brunhild', 1, 'Süderstade');
INSERT INTO kunden VALUES(11, 'Soder', 'Hermann', 2, 'Bayersbronn');
INSERT INTO kunden VALUES(12, 'Bursel', 'Aldi', 1, 'Emmendingen');
INSERT INTO kunden VALUES(13, 'Bismarck', 'Heinrich', 1, 'Dortmund');
INSERT INTO kunden VALUES(14, 'Güslick', 'Jochen', 2, 'Solingen');
INSERT INTO kunden VALUES(15, 'Schmied', 'Jochen', 2, 'Solingen');
INSERT INTO kunden VALUES(21, 'Doppelbrecher', '', 0, '');
INSERT INTO kunden VALUES(23, 'Schulter', 'Albert', 1, '');