![]() ![]() ![]() |
Online Suche im Handbuch | ![]() |
Welche weiteren Informationen brauchen wir ? Z.B Ereignisse, die mit Datum, Typ und Bemerkungen festgehalten werden. Darin könnte man z.B. Geburten von Nachkommen, Tierarztbesuche o.ä. festhalten. Nicht, daß wir nun eine komplette Datenbank für Tierärzte aufbauen möchten....man könnte sie aber dafür nehmen, wenn sie fertig ist.....Wir legen also ohne weitere Überlegungen eine neue Tabelle in der Datenbank an:
mysql> CREATE TABLE ereignis (name VARCHAR(20), datum DATE,
-> typ VARCHAR(15), bemerkung VARCHAR(255));
Laden wir nun eine ASCII Tabelle ein:
Fluffy 1995-05-15 spitz 4 kittens, 3 weiblich, 1 männlich
Buffy 1993-06-23 spitz 5 welpen, 2 weiblich, 3 männlich
Buffy 1994-06-19 spitz 3 welpen, 3 weiblich,
Chirpy 1999-03-21 küken gelb weiss
Slim 1997-08-03 Küken gebrochene rippe
Bowser 1991-10-12 perser
Fang 1991-10-12 perser
Fang 1998-08-28 birthday
Claws 1998-03-17 birthday
Whistler1998-12-09 birthday
Laden wir nun die ASCII Tabelle in die Datenbank ein:
mysql> LOAD DATA LOCAL INFILE "ereignis.txt" INTO TABLE ereignis;
Wir haben nun zwei Datenbanken. Beide möchten wir zusammen benutzen. Hier also einfach einmal ein Beispiel für eine Abfrage über zwei Tabellen hinweg:
mysql> SELECT tier.name, (TO_DAYS(date) - TO_DAYS(birth))/365 AS alter, bemerkung
-> FROM tier, ereignis
-> WHERE tier.name = ereignis.name AND type = "spitz";
+--------+------+-----------------------------------+
| name | alter| bemerkung |
+--------+------+-----------------------------------+
| Fluffy | 2.27 | 4 kittens, 3 weiblich, 1 männlich |
| Buffy | 4.12 | 5 welpen, 2 weiblich, 3 männlich |
| Buffy | 5.10 | 3 welpen, 3 weiblich |
+--------+------+-----------------------------------+
Einige Dinge bedürfen noch der Erklärung:
Um Tabellen miteinander zu verknüpfen, benutzt man gewöhnlich den JOIN Befehl. Man muß aber nicht zwangsläufig zwei verschiedene Tabellen nutzen, um einen JOIN auszuführen. Manchmal kann es auch sinnvoll sein, Einträge in einer Tabelle mit anderen Einträgen in derselben Tabelle miteinander zu vergleichen. Das Schlüsselwort JOIN muß in diesem Beispiel auch nicht explizit angegeben werden:
mysql> SELECT p1.name, p1.geschlecht, p2.name, p2.geschlecht, p1.spezies
-> FROM tier AS p1, tier AS p2
-> WHERE p1.spezies = p2.spezies AND p1.geschlecht = "f" AND p2.geschlecht = "m";
+--------+-------------+--------+-------------+---------+
| name | geschlecht | name | geschlecht | spezies |
+--------+-------------+--------+-------------+---------+
| Fluffy | w | Claws | m | cat |
| Buffy | w | Fang | m | dog |
| Buffy | w | Bowser | m | dog |
+--------+-------------+--------+-------------+---------+
In dieser Abfrage werden zwei Aliase für den Tabellennamen angegeben, um es überhaupt zu ermöglichen, daß man sich mehrfach auf eine spezielle Spalte ein-und derselben Tabelle beziehen kann. Ohne die Aliase würde dies nicht funktionieren.
![]() ![]() ![]() |
Online Suche im Handbuch | ![]() |