ZurŸck Nach oben Vor

Der WHERE-Block

Im optionalen WHERE-Clause lassen sich mit Booleschen Ausdrücken zusätzliche Einschränkungen machen. Dabei gibt es natürlich die gewohnten Konstanten TRUE und FALSE. Folgende Abfrage gibt z.B. niemals Werte zurück:

Vergleichsoperatoren

Wertegleichheit überprüft man mit dem "="-Operator, Ungleichheit mit "!=".

Für numerische Vergleiche gibt es außerdem "<",">", "<=" und ">=".

Für Strings gibt es den praktischen "LIKE"-Operator, der außerdem den "*"-Platzhalter für beliebig viele Zeichen unterstützt. Normalerweise werden Groß-und Kleinbuchstaben dabei unterschieden, will man dies nicht, verwendet man die Option "IGNORE CASE".

Beispiele:

Logische Operatoren

Wie üblich gibt es die drei Operatoren NOT, AND und OR. Bei zusammengesetzten Ausdrücken hat NOT die höchste Priorität, OR die niedrigste. Natürlich kann man Klammern verwenden.

Einige Typfunktionen

Um Literale, Resourcen und URIs zu identifizieren, gibt es die eingebauten Funktionen isResource(), isLiteral() und isURI(), beispielsweise findet
SELECT V FROM {R} prop {V} WHERE isURI(V) alle benutzten URIs.

WHERE-Blöcke in optionalen Pfaden

Um Bedingungen an optionale Pfade zu stellen, muss man kleine WHERE-Blöcke direkt in die optionalen Pfade mit einbauen:

Pro Optionalen Pfad darf es einen WHERE-Block geben.

LIMIT und OFFSET

Will man nicht gleich alle Datensätze bekommen, sondern nur z.B. die ersten 50, schreibt man einfach LIMIT 50. Mittels OFFSET x kann man die ersten x Datensätze auslassen, d.h. die nächsten 50 bekommt man nun mit LIMIT 50 OFFSET 50, danach LIMIT 50 OFFSET 100 usw.

Der USING NAMESPACE Block

Mit USING NAMESPACE kann man beliebig viele Namensabkürzungen definieren, die in der restlichen Abfrage dann für abgekürzte URIs verwendet werden können. Beispiel:

Einige Namespaces sind schon vordefiniert, da sie sehr häufig benutzt werden:

Präfix Namespace
rdf http://www.w3.org/1999/02/22-rdf-syntax-ns#
rdfs http://www.w3.org/2000/01/rdf-schema#
xsd http://www.w3.org/2001/XMLSchema#
owl http://www.w3.org/2002/07/owl#
serql http://www.openrdf.org/schema/serql#