Was ist SQL und wofür wird SQL verwendet?
SQL (Structured Query Language) ist eine Datenbanksprache, mit der Datenbanken erstellt und bearbeitet sowie existierende Datenbestände innerhalb von Datenbanken abgefragt werden können. Die Datenbanksprache ist verhältnismäßig einfach aufgebaut und lehnt sich an englische Umgangssprache an. Wird eine SQL-Abfrage an einen Datenbankserver gesendet, werden alle in der Abfrage befindlichen Befehle der Reihe nach abgearbeitet.
Beispiele von SQL-Befehlen zur Datenauswahl
SELECT „Name“ FROM „Kunden“ WHERE „Kunden_ID“=’K00001′ – Dieser Befehl liefert den Namen des Kunden mit der Kundennummer „K00001“ aus der Tabelle „Kunden“ zurück.
SELECT „Name“, „EMail“ FROM „Kunden“ – Dieser Befehl liefert Namen und E-Mail-Adresse aller Kundendatensätze aus der Tabelle „Kunden“ zurück. Jeder Datensatz wird dabei mit einem Zeilenvorschub getrennt.
Per SQL ausgewählte Daten enthalten immer alle Datensätze, deren Kriterium übereinstimmt. Wenn es also im ersten Beispiel zwei Kunden mit der Kunden-ID „K00001“ gibt, liefert der SQL-Befehl auch zwei Datensätze zurück, die mit einem Zeilenvorschub getrennt werden. Vgl. FileMaker: Bei Bezugsdatensätzen zeigt FileMaker immer nur den ersten Datensatz aus der Bezugstabelle an. Mehrere Datensätze müssen über einen Ausschnitt angezeigt werden. In SQL können eindeutige Datensätze mit dem Zusatz „DISTINCT“ ausgewählt werden:
SELECT DISTINCT „EMail“ FROM „Adressen“ WHERE „Kunden_ID“=’K00001′ – Liefert die E-Mail-Adresse des ersten Bezugsdatensatzes zurück, dessen Kunden-ID „K00001“ ist, auch wenn es in der Bezugstabelle „Adressen“ mehrere Kunden-IDs mit diesem Wert gibt.
In SQL können auch Platzhalter verwendet werden:
SELECT * FROM „Kunden“ WHERE „Kunden_ID“=’K00001′ – Liefert die Werte aller Felder aus der Tabelle „Kunden“, wenn die Kunden-ID den Wert „K00001“ enthält.
FileMaker und SQL
Seit FileMaker 12 können Daten mit dem Befehl „SQLAusführen ()“ selektiert werden. Dieser Befehl wurde in den folgenden FileMaker-Versionen stetig erweitert und verbessert. Für die Erstellung von SQL-Abfragen in FileMaker sind einige Besonderheiten zu beachten. Zunächst sollte jede Feldbezeichnung in der SQL-Abfrage mit Anführungszeichen (Zoll-Zeichen „) versehen werden. Feldwerte, deren Zielfeld ein Zahlenfeld ist, dürfen keine umgebenden Zeichen enthalten, Feldwerte, deren Zielfeld ein Textfeld ist, müssen mit Hochkommata umgeben werden. Außerdem sind die FileMaker-spezifischen Regeln zu beachten, wenn eine SQL-Abfrage im Formeleditor erstellt wird. Wenn im FileMaker Formeleditor ein Anführungszeichen erstellt werden soll, muß innerhalb des Textstrings immer ein Backslash ( \ ) vorangehen, damit das Anführungszeichen nicht als Ende des Textstrings erkannt wird.
Beispiel für eine SQL-Abfrage im FileMaker Formeleditor
SQLAusführen ("SELECT \"Name\" FROM \"Kunden\" WHERE \"Kunden_ID\"='" & $kunden_id & "'"; ""; "")
Dieses Beispiel zeigt den kompletten Befehl „SQLAusführen“ mit einer einfachen SQL-Abfrage. Alle Feldnamen sind mit Anführungszeichen versehen, denen innerhalb des Textstrings jeweils ein Backslash vorangestellt ist. Da die Kunden-ID in diesem Beispiel einen Textstring darstellt, wird der entsprechende Wert aus der Variable $kunden_id mit Hochkommata umschlossen.
In FileMaker kann der Befehl „SQLAusführen“ in allen Funktionen ausgeführt werden, die einen Formeleditor zur Angabe von Werten zur Verfügung stellen. Damit kann der Befehl sowohl in Formelfeldern oder Feldern mit berechneten Werten oder auch im Scripteditor mit den Befehlen „Variable setzen“ oder „Feldwert setzen“ verwendet werden.
Welche SQL-Befehle in FileMaker zur Verfügung gestellt werden, hat FileMaker im FileMaker SQL Referenzhandbuch (PDF) zusammengefaßt.