In der folgenden Lektion lernst Du die Datenmanipulation, die die Datenbank in ihrer Struktur verändert, kennen. Um es kurzzufassen, behandeln wir nur das Einfügen, Ändern und Löschen von Daten. Diese drei Vorgänge kann man aber nicht nur mit einzelnen Datensätzen durchführen, sondern auch mit Tabellen und ganzen Datenbanken.
Um eine Datenbank auf deinem PC zu erstellen, brauchst Du eine Datenbanksoftware wie zum Beispiel mariaDB (diese empfiehlt sich hier sehr, da sich das Tutorial auf diese Datenbank bezieht). Die Befehle gibst Du in der Konsole deiner Datenbanksoftware ein.
Bevor wir damit beginnen, eine Datenbank zu erstellen und zu manipulieren, ist es uns sehr wichtig, dass Du Folgendes verstehst: Alle Dateinamen, dazu zählen auch die Namen von Datenbanken, die der Tabellen, die der Primärschlüssel usw. dürfen keine Leerzeichen und Sonderzeichen enthalten. Um längere Ausdrücke gut lesbar als Namen benutzen zu können, wenden wir entwederDieKamelSchreibweise an, oder_benutzen_Unterstriche.
Um eine Datenbank zu erstellen, brauchen wir genau drei Wörter und ein Semikolon:
CREATE DATABASE {Datenbankname};
Bsp.: Wir erstellen eine Datenbank namens Schule.
CREATE DATABASE Schule;
Wenn Du mehr als eine Datenbank hast, brauchst Du folgenden Befehl auf jeden Fall:
USE {Name der Datenbank, die wir benutzen wollen};
Bsp.: Wir wählen die gerade erstellte Datenbank aus:
USE Schule;
Um eine Tabelle zu erstellen, brauchen wir etwas mehr Zeichen, als um eine Datenbank zu erstellen.
Wir benutzen folgenden Befehl:
CREATE TABLE {Tabellenname} ({Attributdefinitionen und Beschränkungen});
Attributdefinitionen und Beschränkungen sind Angaben darüber, wie ein Attribut heißt, was für einen Datentypen es hat und ob dieser von seiner Länge her beschränkt ist.
Bsp.: Wir erstellen eine Tabelle Lehrer mit den Attributen LID auto_increment — der Wert erhöht sich automatisch beim Eintragen eines neuen Datensatzes —, Vname, Nname, Ort, PLZ, Strasse_Nr, Email und Telefon.
CREATE TABLE Lehrer(
LID INT NOT NULL AUTO_INCREMENT,
Vname VARCHAR(20) NOT NULL,
Nname VARCHAR(30) NOT NULL,
Ort VARCHAR(20) NOT NULL,
PLZ INT(5) NOT NULL,
Strasse_Nr VARCHAR(30) NOT NULL,
Email VARCHAR(30),
Telefon VARCHAR(20),
PRIMARY KEY (LID)
);
Wenn Du nun wissen willst, welche Tabellen sich schon in deiner Datenbank befinden, benutzt Du:
SHOW TABLES;
Möchtest Du Dir die Struktur einer Tabelle genauer ansehen, benutzt Du:
DESCRIBE | DESC {Tabellenname};
Wenn wir nun feststellen, dass wir vergessen haben die Spalte "Geburtstagsdatum" hinzuzufügen, brauchen wir nicht die ganze Tabelle zu löschen und neu erstellen, sondern können der Tabelle die Spalte hinzufügen.
Das machen wir mit folgendem Befehl:
ALTER TABLE {Tabellenname}
ADD COLUMN {Spaltenname}
{Attributdefinitionen und Beschränkungen}
[FIRST | AFTER {Spaltenname nach der die neue Spalte eingefügt werden soll}];
Wenn man keine der Attribute in den eckigen Klammern [ ] benutzt, wird die neue Spalte automatisch am Ende der Tabelle eingefügt.
Bsp.: Wir fügen nun die Spalte Geburtstagsdatum ein:
ALTER TABLE Lehrer
ADD COLUMN Geburtstagsdatum DATE NOT NULL AFTER Nname;
Traurigerweise müssen wir feststellen, dass der Spaltenname Geburtstagsdatum viel zu lang ist, und beschließen die Spalte in gbd umzubenennen.
Das machen wir mit einem ähnlichen Befehl wie dem vorherigen:
ALTER TABLE {Tabellenname}
RENAME COLUMN {alter Tabellenname}
TO {neuer Tabellenname};
Dies würde dann so aussehen:
ALTER TABLE Lehrer
RENAME COLUMN Geburtstagsdatum TO gbd;
Mittels seiner Richtlinienkompetenz beschließt der Bundeskanzler, dass die Schule das Geburtstagsdatum der Lehrer nicht mehr speichern darf. Deswegen müssen wir die Spalte löschen.
Dies machen wir mit folgendem Befehl:
ALTER TABLE {Tabellenname}
DROP COLUMN {Spaltenname};
Dies sieht so aus:
ALTER TABLE Lehrer DROP COLUMN gbd;
Die Schule beschließt, als ersten Lehrer Hans Maier einzustellen. Da wir vorher festgelegt hatten, dass die LID automatisch hochgezählt wird, und es der erste Lehrer ist, erhält er die LID 1.
Um einen Datensatz, auch Tupel genannt, in eine Tabelle einzufügen, benutzen wir folgenden Befehl:
INSERT INTO {Tabellenname}
({Spaltenname1, Spaltenname2, Spaltenname3, ...})
VALUES ({Wert1, Wert2, Wert3, ...});
Auf unser Beispiel angewendet wird das so aussehen:
INSERT INTO Lehrer
(Vname, Nname, Ort, PLZ, Strasse_Nr, Email, Telefon, gbd) VALUES
('Hnas', 'Maier', 'Langen', 63225, 'Wichtstraße 33',
'maierhans345@gmail.com', '01938 939383930', '1953-02-13');
Wie Dir vielleicht schon aufgefallen ist, haben wir beim Einfügen des Tupels den Vornamen falsch geschrieben. Das müssen wir nun korrigieren.
Das geht mit folgendem Befehl:
UPDATE {Tabellenname}
SET {Spalte1 = neuer Wert, Spalte2 = neuer Wert, Spalte3 = neuer Wert, ...}
WHERE {Bedingung};
Dabei ist darauf zu achten, dass alle Feldwerte bis auf Zahlenfelder in Hochkommata gesetzt werden müssen.
In unserem Beispiel:
UPDATE Lehrer
SET Vname = ‘Hans‘
WHERE LID = 1;
Hans war schon sehr alt und wurde von einem Bus überfahren, deswegen wird er aus der Tabelle Lehrer gelöscht.
Um ein Tupel aus einer Tabelle zu löschen, benutzt man folgenden Befehl:
DELETE FROM {Tabellenname}
WHERE {Bedingung};
Auf unser Beispiel bezogen:
DELETE FROM Lehrer
WHERE LID = 1;
Ein Schüler beschließt nun, die Lehrertabelle zu löschen, um die Schulleitung zu ärgern.
Um eine Tabelle zu löschen, benutzen wir folgenden Befehl:
DROP TABLE {Tabellenname};
Auf unser Beispiel bezogen:
DROP TABLE Lehrer;
Nach diesem bedauernswerten Vorfall entsteht ein Gasleck, und die Schule explodiert. Das zuständige Kultusministerium beschließt, die Datenbank 'Schule' zu löschen.
Um eine Datenbank zu löschen, benutzen wir folgenden Befehl:
DROP DATABASE {Datenbankname};
In unserem Fall:
DROP DATABASE Schule;
Nun kennst Du die wichtigsten Operatoren, um eine Datenbank zu verändern. Natürlich gibt es weitere Befehle, und auch die vorgestellten lassen sich D erweitern. Wenn du noch tiefer in MySQL eintauchen möchtest, empfehlen wir Dir, die MySQL-Dokumentation zu lesen.