SQL ist nicht ganz einfach zu verstehen, speziell wenn es darum geht mehrere Tabellen mit joins zusammenzufassen bzw zu verknüpfen. Im Folgenden wird dem SQL Einsteiger sehr einfach mit Venn Diagrammen sowie einfachen SQL queries erklärt  wie die verschiedenen SQL joins funktionieren. Dazu werden zwei Beispieltabellen mit Daten benutzt und Joins beschrieben sowie deren Eingabedaten und Ergebnisse. Dateien zum Erstellen der Beispieldaten sowie die SQL queries können downloaded werden. Die Beispiele sind für mySQL und DB2.
 
sql_innerjoin.jpg sql_leftouterjoin.jpg sql_fullouterjoin.jpg sql_leftouterjoinminusintersection.jpg sql_fullouterjoinminusintersection.jpg

 

Interessanterweise gibt es bei manchen SQL DBMs die Möglichkeit rekursive queries zu erstellen. Das Feature bieten DB2 (kostenloser Download ), SQL Server und Oracle. Leider nicht mySQL. Allerdings geht eine Bearbeitung einer Hierarchie auch ohne Rekursion und es stellt sich die Frage ob das nicht eher eine nettes aber nicht unbedingt notwendiges DB Feature ist.  Trotzdem ist es ein nicht uninteressantes Thema.
  
References:
 
3) Trees and other hierachies (no recursion)
 
 
Wer die SQL Beispiele von dieser Seite ausprobieren will benötigt ein mySQLServer. Das ist schnell gemacht und im folgenden sind die Schritte beschrieben, wie man mySQL auf Mint11 installiert und konfiguriert. Auf anderen Linux Distributionen wird es sich nur bei der Art, wie mySQL installiert wird, unterscheiden.
 
 
Auf den folgenden Seiten habe ich mal diverse SQL Anfragen mit ihren Ergebnissen auf einer Beispielsdatenbank  zusammengestellt, die auf verschiedene Möglichkeiten SQL benutzen. Dieses hilft einfache SQL Queries zu lernen und zu verstehen sowie eben mal schnell die Schreibweise von häufigen Abfragen nachzusehen. EIn SQL Anfänger bekommt dadurch einen guten Überblick über die Möglichkeiten von SQL. Es werden Themen wie select, count, union, where, having, order, limit, views, NULL, like, subselects und joins behandelt.
 
Für jeden Befehl gibt es eine kurze Beschreibung was er tut, danach der eigentliche Befehl und dann das Ergebnis der Abfrage. Die SQL um die Beispielsdatenbank und -daten zu erzeugen können hier heruntergeladen werden. Alle SQL Beispiele befinden sich hier. Die Beispieldatenbank ist eine Modellierung einer kleinen Datenbank die ähnliche Relationen wie Facebook hat: Personen, Freunde, Geschwister, Städte, Adressen und Meldungen.
 
Die Installation von mySQL wird hier beschrieben und
 
mysql <frampsSQLByExampleData.sql
mysql --column-names --table <frampsSQLByExample.sql

 

installiert die BeispielDaten und führt dieBeispielQueries aus.