Erklärvideo
Datenbank-Schema
Stellen wir uns im Folgenden vor, wir hätten zwei Tabellen mit folgenden Daten, die wir anhand der Gebäudenamen zusammenführen möchten.
Bei Datenbanken hat jede dieser Spalten einen fixen Datentypen. Man würde diese in einem sogenannten Schema darstellen, das so aussehen könnte:
Einige Beobachtungen, damit Sie sehen, was hier alles dargestellt ist:
- Boxen: Es gibt eine Tabelle
buildings
mit den Spaltenbuilding_name
undcapacity
, sowie eine Tabelleemployees
mit den Spaltenrole
,name
,building
undyears_employed
. - Datentypen rechts: Die Spalte
capacity
hat den DatentypINTEGER
und enthält demnach Ganzzahlen. Die Spaltebuilding_name
hat den DatentypTEXT
und speichert Zeichenketten. (Sie müssen die SQL-Datentypen nicht lernen.) - Pfeil: Die Tabelle
employees
hat eine Relation mit der Tabellebuildings
. Genauer: Die Daten in der Spaltebuilding
in der Tabelleemployees
entsprechen den Daten in der Spaltebuilding_name
in der Tabellebuildings
. Das Datenbanksystem kann solche Beziehungen überwachen und je nach Konfiguration sicherstellen, dass es keine Mitarbeiter geben kann, die einem Gebäude zugeordnet sind, das in der Tabellebuildings
gar nicht existiert. - Schlüssel: Die Tabelle
buildings
hat eine Spaltebuilding_name
als Primärschlüssel. Das bedeutet, dass jeder Datensatz der Tabelle anhand vonbuilding_name
eindeutig identifiziert werden kann. Ebenso hatemployees
die Spaltename
als Primärschlüssel definiert. Das Datenbanksystem garantiert uns, dass es keine zwei Gebäude mit dem gleichen Namen oder zwei Angestellte mit exakt demselben Namen geben wird. (Das ist ganz offensichtlich keine sehr intelligente Wahl des Primärschlüssels…) - Beziehungstyp: Die Beziehung zwischen
buildings
undemployees
ist eine 1:n-Beziehung (one-to-many). Ein Gebäude kann mehrere Mitarbeiter haben, aber jeder Mitarbeiter arbeitet in genau einem Gebäude (oder in keinem, falls NULL erlaubt ist).
Mit SQL können Sie dem Datenbanksystem die mühselige Arbeit überlassen, diese Daten zusammenzuführen. Dazu brauchen Sie die JOIN-Befehlen, von denen es mehrere Varianten gibt. Ein Tipp: Wenn Sie sich die Gebäudenamen in einem Venn-Diagramm vorstellen, sind die Befehle einfacher verständlich.
JOIN
Gibt nur die Zeilen zurück, bei denen es in beiden Tabellen eine Übereinstimmung gibt. INNER
ist optional und ist nur vorhanden, damit Datenbanken auch mit früheren Versionen von SQL kompatibel bleiben.