Springe zu: Hauptnavigation, Themennavigation, Seiteninhalt, Spezielle Seiten

Erste Schritte beim Arbeiten mit Tabellen

In diesem Artikel zeige ich dir an Beispielen, wie du neue Tabellen anlegen und diese mit Daten füllen kannst. Natürlich kannst du auch gezielt bestimmte Daten abfragen, diese aktualisieren oder löschen.

Auswählen einer Datenbank

Bevor du Tabellen anlegen oder Daten abfragen kannst, musst du eine Standard-Datenbank auswählen. Wenn du dich mit dem MySQL-Server verbindest, bist du standardmäßig in keiner Datenbank. Mit der Anweisung USE kannst du eine Datenbank auswählen, wie folgender Screenshot zeigt:

mysql> use simon;
Database changed
mysql>

Wenn du dich mit dem Programm mysql mit dem Server verbindest, kannst du die zu verwendende Datenbank gleich mit angeben:

simon@etch:~$ mysql -u simon -pgeheim simon

Erstellen einer Tabelle für Kontaktinformationen

Nun soll eine Tabelle mit dem Namen Kontakte erstellt werden. Für jede Spalte der Tabelle ist ein Spaltenname und der Datentyp anzugeben. Der Datentyp einer Spalte legt fest, welche Informationen in ihr gespeichert werden können. Es gibt Typen, die nur einzeilige Texte zulassen oder auch mehrzeilige Eingaben gestatten. Zum Speichern von Datums- und Uhrzeit-Werten stehen gesonderte Typen bereit. Ausführliche Informationen zu verfügbaren Typen findest du in der MySQL-Dokumentation im Kapitel 11. Datentypen.

Im folgenden Beispiel wird die Tabelle Kontakte mit den Spalten Anrede, Vorname, Nachname, Email und Geburtsdatum angelegt. Der Tabellenname und die Spalten werden in Kleinbuchstaben notiert:

CREATE TABLE kontakte (
anrede varchar(5), vorname varchar(20), nachname varchar(20),
email varchar(50), geburtsdatum date
);

Der Datentyp VARCHAR ist für einzeilige Strings mit variabler Länge gut geeignet. Die Zahl in den Klammern gibt die maximale Feldgröße an. Die Spalte Anrede nimmt z. B. nur 5 Zeichen auf. Längere Angaben werden einfach abgeschnitten.

Die Tabelle mit Datensätzen füllen

Eine Zeile innerhalb einer Tabelle nennt man Datensatz. Ein neuer Datensatz kann mit der INSERT-Anweisung erstellt werden. In der einfachsten Form müssen die Werte durch Komma getrennt in der Reihenfolge angegeben werden, wie sie in der CREATE TABLE-Anweisung verwendet wurden.

Meine Kontaktinformationen fügt die folgende Anweisung ein:

insert into kontakte
values (
'Herr', 'Simon', 'Bienlein', 'simon@bienlein.com', '1983-12-18'
);

Text- und Daten-Werte sind in Anführungszeichen einzuschließen. Ein Datum ist außerdem im Format YYYY-MM-DD einzugeben, was evtl. etwas ungewohnt ist. Einen fehlenden Wert kann man durch die Eingabe von NULL eingeben:

insert into kontakte
values (
'Frau', 'Maria', 'Muster', NULL, NULL
);

Die E-Mail-Adresse und das Geburtsdatum von Frau Maria Muster sind also unbekannt.

Möchte man nur bestimmte Spalten mit Werten füllen, kann man dies wie im folgenden Beispiel tun. Die fehlenden Spalten werden automatisch mit ihren Standard-Werten gefüllt:

insert into kontakte
(anrede, vorname, nachname, geburtsdatum)
values ('Herr', 'Maximilian', 'Mustermann', '1974-03-03');

Die E-Mail-Adresse von Maximilian Mustermann wird mit dem Wert NULL gefüllt und besagt, dass diese unbekannt ist.

Daten aus Textdatei lesen

Die obigen Datensätze könnte man alternativ auch in eine Textdatei schreiben und in einem Rutsch einfügen. Die einzelnen Spalten sind hier durch ein Tabulatorzeichen zu trennen. NULL-Werte werden in einer Textdatei durch die Zeichen \N angegeben.

Hier der Inhalt der Datei kontakte.txt, die sich in meinem Heimatverzeichnis befindet und die in den obigen Beispielen gezeigten Einträge enthält:

Herr    Simon    Bienlein    simon@bienlein.com    1983-12-18
Frau    Maria    Muster    \N    \N
Herr    Maximilian    Mustermann    \N    1974-03-03

Der folgende Screenshot zeigt den Befehl, der die Zeilen in die Datenbank einfügt:

mysql> load data local infile 'kontakte.txt' into table kontakte;
Query OK, 3 rows affected (0.01 sec)
Records: 3  Deleted: 0  Skipped: 0  Warnings: 0
mysql>

Informationen aus der Tabelle abfragen

Mit der SELECT-Anweisung können gezielt beliebige Informationen aus Tabellen abgefragt werden. Im folgenden Screenshot werden alle Spalten der Tabelle kontakte in der Reihenfolge ausgegeben, wie sie erstellt wurden. Der Stern steht für die Ausgabe aller Spalten:

mysql> select * from kontakte;
+--------+------------+------------+--------------------+--------------+
| anrede | vorname    | nachname   | email              | geburtsdatum |
+--------+------------+------------+--------------------+--------------+
| Herr   | Simon      | Bienlein   | simon@bienlein.com | 1983-12-18   |
| Frau   | Maria      | Muster     | NULL               | NULL         |
| Herr   | Maximilian | Mustermann | NULL               | 1974-03-03   |
+--------+------------+------------+--------------------+--------------+
3 rows in set (0.00 sec)
mysql>

Die Zeilen lassen sich z. B. auch nach dem Nachnamen aufsteigend sortiert ausgeben, wie das folgende Beispiel zeigt:

mysql> SELECT * FROM kontakte ORDER BY nachname ASC;
+--------+------------+------------+--------------------+--------------+
| anrede | vorname    | nachname   | email              | geburtsdatum |
+--------+------------+------------+--------------------+--------------+
| Herr   | Simon      | Bienlein   | simon@bienlein.com | 1983-12-18   |
| Frau   | Maria      | Muster     | NULL               | NULL         |
| Herr   | Maximilian | Mustermann | NULL               | 1974-03-03   |
+--------+------------+------------+--------------------+--------------+
3 rows in set (0.00 sec)
mysql>

Durch die Großschreibung soll die Lesbarkeit verbessert werden. Der Befehl könnte aber auch in Kleinbuchstaben abgesetzt werden.

Im folgenden Beispiel werden Vor- und Nachname ausgegeben und dabei in absteigender Reihenfolge nach dem Vornamen sortiert:

mysql> SELECT vorname, nachname FROM kontakte ORDER BY vorname DESC;
+------------+------------+
| vorname    | nachname   |
+------------+------------+
| Simon      | Bienlein   |
| Maximilian | Mustermann |
| Maria      | Muster     |
+------------+------------+
3 rows in set (0.00 sec)
mysql>

Daten aktualisieren

Zum Aktualisieren von Datensätzen steht die Anweisung UPDATE zur Verfügung. Das folgende Beispiel aktualisiert, bzw. speichert das Geburtsdatum für Frau Muster:

update kontakte set geburtsdatum = '1978-10-27' where nachname = 'Muster';

In einem Vorgang können auch mehrere Spalten aktualisiert werden, wie das folgende Beispiel zeigt:

update kontakte
set nachname = 'Muster', email = 'max@muster.de'
where nachname = 'Mustermann';

Aus Maximilian Mustermann wurde so Maximilian Muster. Seine E-Mail-Adresse wurde im selben Vorgang aktualisiert.

Datensätze löschen

Mit der DELETE-Anweisung kann ein oder mehrere Datensätze gelöscht werden. Das folgende Beispiel entfernt meinen Eintrag aus der Tabelle:

mysql> delete from kontakte where nachname = 'Bienlein';
Query OK, 1 row affected (0.02 sec)
mysql>

Wie man der Ausgabe entnehmen kann, wurde genau ein Datensatz gelöscht. Dies liegt daran, dass nur ein passender Eintrag gefunden wurde.

Wenn man eine Tabelle komplett leeren möchte, kann die TRUNCATE-Anweisung verwendet werden:

truncate kontakte;

Eine Tabelle löschen

Selbstverständlich kann man auch eine Tabelle komplett löschen, was folgender Aufruf zeigt:

drop table kontakte;

Datum der Veröffentlichung: Samstag, 03.03.2007

Nach oben

Diese Seite drucken