Tabellen anlegen (CREATE TABLE)
In unserer Datenbank erstellen wir die Tabelle "kleidung", in der wir verschiedene Kleidungsstücke als Produkte anlegen werden.
Mit "CREATE TABLE
" können neue Tabellen angelegt werden.
Direkt nach den beiden Schlüsselwörtern geben wir den Namen an, den die Tabelle tragen soll.
Darauf folgen innerhalb von runden Klammern die Spalten, die wir erst namentlich beschreiben und darauf mit einem Datentyp versehen angeben.
Die Spaltenbezeichnungen werden mit einem Komma voneinander getrennt.
Tabellenstruktur
Die erste Spalte ist unsere "artikelnummer", sie besteht aus einer neunstelligen Ziffernfolge, weshalb wir den Datentyp "INT
" verwenden.
Gleichzeitig ist die "artikelnummer" auch unser Primärschlüssel.
Die zweite Spalte ist die "artikelbezeichnung", weil uns eine kurze Beschreibung des Artikels ausreicht, verwenden wir den Datentyp "VARCHAR(50)
".
Die dritte Spalte speichert die "farbe" des Kleidungsstückes, hier verwenden wir ebenfalls den Datentyp "VARCHAR(50)
".
In der vierten Spalte geben wir das "produktionsdatum" mit dem Datentyp "DATE
" an, daran erkennen wir unter anderem, wie alt das Kleidungsstück bereits ist.
Die fünfte Spalte soll den "preis" speichern, hier verwenden wir den Datentyp "DECIMAL(5,2)
".
Spaltenname | Datentyp | Beispielwert | Primärschlüssel |
---|---|---|---|
artikelnummer | INT | 123456789 | X |
artikelbezeichnung | VARCHAR(50) | Hose | |
farbe | VARCHAR(50) | Blau | |
produktionsdatum | DATE | 2020-02-10 | |
preis | DECIMAL(5,2) | 39,99 |
CREATE TABLE kleidung (
artikelnummer INT PRIMARY KEY,
artikelbezeichnung VARCHAR(50),
farbe VARCHAR(50),
produktionsdatum DATE,
preis DECIMAL(5,2)
);
Bei der Angabe der Datentypen muss sichergestellt sein, dass die Datenbank auch den Datentyp unterstützt.
INSERT
Um die Tabelle mit Informationen zu füllen, verwenden wir die "INSERT
"-Anweisung zusammen mit dem Schlüsselwort "INTO
", um der Datenbank zu sagen, in welche Tabelle die Daten eingetragen werden sollen.
Die Reihenfolge, in der die Daten angegeben werden, entspricht genau der Zuordnung in der Anweisung.
INSERT INTO kleidung (artikelnummer, artikelbezeichnung, farbe, produktionsdatum, preis)
VALUES (111222333, 'Winterjacke', 'Schwarz-Grau', '2020-10-28', 7990);
Wenn nach dem Tabellennamen keine Zuordnung aufgeführt ist, dann versteht die Datenbank die übergebenen Informationen in der Reihenfolge, wie die Tabelle aufgebaut wurde.
Das bedeutet, dass die nachfolgende Anweisung genau die gleichen Informationen übermittelt wie die vorherige.
INSERT INTO kleidung VALUES (111222333, 'Winterjacke', 'Schwarz-Grau', '2020-10-28', 7990);
Praktisches Beispiel
Zusammengefasst als PHP-Code sieht die Anfrage zum Erstellen und Eintragen der Daten in etwa so aus:
if ($db = mysqli_connect("localhost", "root", "", "training")) {
$anfrage = "CREATE TABLE kleidung (
artikelnummer INT PRIMARY KEY,
artikelbezeichnung VARCHAR(50),
farbe VARCHAR(50),
produktionsdatum DATE,
preis DECIMAL(5,2)
)";
if (mysqli_query($db, $anfrage)) {
echo "Tabelle wurde angelegt. <br>";
} else {
echo "Fehler beim Anlegen der Tabelle! <br>";
}
$anfrage = "INSERT INTO kleidung (artikelnummer, artikelbezeichnung, farbe, produktionsdatum, preis)
VALUES (111222333, 'Winterjacke', 'Schwarz-Grau', '2020-10-28', 79.90)";
if (mysqli_query($db, $anfrage)) {
echo "Artikel wurde angelegt. <br>";
} else {
echo "Fehler beim Anlegen des Artikels! <br>";
}
}
mysqli_close($db);
DROP TABLE
Genauso schnell wie eine Tabelle angelegt ist, kann sie auch wieder gelöscht werden.
Die Anweisung "DROP TABLE
" benötigt nur noch die Angabe, welche Tabelle gelöscht werden soll.
DROP TABLE kleidung;
PRIMARY KEY
Der "PRIMARY KEY
" ist ein Wert, der innerhalb einer Spalte einmalig und eindeutig vergeben sein muss.
Wenn ein doppelter Wert eingetragen wird, führt das zu einer Fehlermeldung von der Datenbank.
Auch wenn ein leerer Wert also "NULL" eingegeben wird, wird ein Fehler erzeugt.
Es steht jedem frei, einen unverwechselbaren Wert selber zu vergeben.
Allerdings gibt es bei Datenbanken auch die Möglichkeit, dass diese den Wert automatisch zuweisen.
CREATE TABLE Inventar (
inventarnummer TINYINT AUTO_INCREMENT PRIMARY KEY,
bezeichnung VARCHAR(50),
anschaffung DATE
);
Mit dieser Anweisung wird MySQL automatisch einen numerischen Wert für die Spalte inventarnummer vergeben und bei jeder neuen Eintragung den Wert um 1 erhöhen.
Info!
Bei der Autoinkrement-Spalte gibt es wieder Unterschiede zwischen den einzelnen Datenbanksystemen.
Hier ist es wieder ratsam, zuerst zu prüfen, welche Formate die gewählte Datenbank unterstützt. Bei PostgreSQL wird beispielsweise das Schlüsselwort SERIAL verwendet, während MS SQL Server-Datenbanken auf das Schlüsselwort IDENTITY setzen.
Weiter mit Einschränkungen (Auf Spalten)