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
buildingsmit den Spaltenbuilding_nameundcapacity, sowie eine Tabelleemployeesmit den Spaltenrole,name,buildingundyears_employed. - Datentypen rechts: Die Spalte
capacityhat den DatentypINTEGERund enthält demnach Ganzzahlen. Die Spaltebuilding_namehat den DatentypTEXTund speichert Zeichenketten. (Sie müssen die SQL-Datentypen nicht lernen.) - Pfeil: Die Tabelle
employeeshat eine Relation mit der Tabellebuildings. Genauer: Die Daten in der Spaltebuildingin der Tabelleemployeesentsprechen den Daten in der Spaltebuilding_namein 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 Tabellebuildingsgar nicht existiert. - Schlüssel: Die Tabelle
buildingshat eine Spaltebuilding_nameals Primärschlüssel. Das bedeutet, dass jeder Datensatz der Tabelle anhand vonbuilding_nameeindeutig identifiziert werden kann. Ebenso hatemployeesdie Spaltenameals 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
buildingsundemployeesist 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. INNERist optional und ist nur vorhanden, damit Datenbanken auch mit früheren Versionen von SQL kompatibel bleiben.