Abfrageentwurf

In der Ansicht Abfrageentwurf k├Ânnen Sie neue Datenbankabfragen erstellen und vorhandene bearbeiten.

So greifen Sie auf diesen Befehl zu:

Klicken Sie in einem Datenbank-Dateifenster auf das Symbol Abfragen und w├Ąhlen Sie dann Bearbeiten - Bearbeiten.


Notizsymbol

Die meisten Datenbanken verwenden Abfragen, um Datens├Ątze aus Datenbanktabellen auf dem Computer gefiltert und sortiert anzuzeigen. Sichten bieten die gleiche Funktionalit├Ąt wie Abfragen, sind jedoch serverseitig angeordnet. Wenn Ihre Datenbank auf einem Server installiert ist, der Sichten unterst├╝tzt, k├Ânnen Sie mit diesen Sichten Datens├Ątze auf dem Server filtern, um die zur Anzeige ben├Âtigte Zeit zu verk├╝rzen.


Notizsymbol

Wenn Sie im Aufgabenfensters einer Datenbank im Bereich Tabellen den Befehl Ansicht erstellen w├Ąhlen, wird das Fenster Ansichtsentwurf ge├Âffnet, das dem hier beschriebenen Fenster Abfrageentwurf entspricht.


Das Aussehen der Abfrage-Entwurfsansicht wird mit der erzeugten Abfrage gespeichert. Sie kann aber nicht mit der erzeugten Ansicht gespeichert werden.

Die Entwurfsansicht

Um eine Abfrage zu erstellen, klicken Sie in einem Datenbankdokument auf das Symbol Abfragen und dann auf Abfrage in der Entwurfsansicht erstellen.

Im unteren Fensterbereich der Entwurfsansicht definieren Sie die Abfrage. Zur Definition einer Abfrage geben Sie die Feldnamen der in der Datenbank zu ber├╝cksichtigenden Felder sowie die Kriterien zur Anzeige der Felder an. Die Spalten im unteren Fensterbereich der Entwurfsansicht lassen sich durch Ziehen der Spaltenk├Âpfe oder Ausw├Ąhlen der Spalten und Dr├╝cken von +Pfeiltaste umordnen.

Am oberen Rand des Fensters Abfrageentwurfsansicht werden die Symbole der Symbolleisten Abfrageentwurf und Design angezeigt.

Zum Testen einer Abfrage klicken Sie auf das Symbol Abfrage ausf├╝hren in der Symbolleiste Abfrageentwurf. Das Abfrageergebnis wird in einer der Datenquellenansicht ├Ąhnlichen Tabelle angezeigt. Hinweis: Die Anzeige dieser Tabelle ist nur tempor├Ąr.

Tasten in der Ansicht Abfrageentwurf

Schl├╝ssel

Funktion

F4

Vorschau

F5

Abfrage ausf├╝hren

F7

Tabelle oder Abfrage hinzuf├╝gen


Durchsuchen

Wenn Sie den Abfrageentwurf zum ersten Mal ├Âffnen, sehen Sie einen Dialog, in dem Sie zuerst die Tabelle oder Abfrage ausw├Ąhlen m├╝ssen, welche die Basis f├╝r Ihre neue Abfrage wird.

Doppelklicken Sie auf Felder, um sie der Abfrage hinzuzuf├╝gen. Mit Ziehen-und-Ablegen definieren Sie Relationen.

Notizsymbol

W├Ąhrend Sie eine Abfrage erstellen, k├Ânnen Sie die ausgew├Ąhlten Tabellen nicht mehr ver├Ąndern.


Tabellen entfernen

Um eine Tabelle aus der Entwurfsansicht zu entfernen, klicken Sie auf den oberen Rand des Tabellenfensters und rufen Sie dann das Kontextmen├╝ auf. Mit dem Befehl L├Âschen wird die Tabelle aus der Entwurfsansicht entfernt. Alternativ k├Ânnen Sie auch die Taste Entfernen bet├Ątigen.

Tabellen verschieben und Tabellengr├Â├če ├Ąndern

Sie k├Ânnen die Tabellen nach Ihren W├╝nschen anordnen und sie in der Gr├Â├če ver├Ąndern. Um eine Tabelle zu verschieben, fassen Sie sie mit der Maus am oberen Rand und ziehen Sie sie in die gew├╝nschte Position. Um sie in der Darstellung zu vergr├Â├čern oder zu verkleinern, ziehen Sie den Rand oder eine Ecke.

Beziehungen zwischen Tabellen

Wenn es Datenbeziehungen zwischen einem Datenfeld in einer Tabelle zu einem Datenfeld in einer anderen Tabelle gibt, dann k├Ânnen Sie diese Beziehungen f├╝r Ihre Abfrage nutzen.

Nehmen wir beispielsweise an, Sie haben ein Tabellendokument f├╝r Artikel, in dem jeder Artikel durch eine Artikelnummer gekennzeichnet ist, und ein Tabellendokument f├╝r Kunden, in dem alle von den Kunden bestellten Artikel anhand der Artikelnummern verzeichnet sind. In diesem Fall besteht eine Beziehung zwischen den beiden Datenfeldern "Artikelnummer". Um nun eine Abfrage zu erstellen, die alle von einem Kunden bestellten Artikel ausgibt, m├╝ssen Sie Daten aus zwei Tabellendokumenten abrufen. Daf├╝r m├╝ssen Sie LibreOffice die Beziehung zwischen den Daten in den beiden Tabellendokumenten aufzeigen.

Klicken Sie dazu ein Datenfeld einer Tabelle an (z. B. das Datenfeld "Artikel-Nummer" aus der Kunden-Tabelle) und ziehen Sie dann bei gedr├╝ckt gehaltener Maustaste auf das Datenfeld der anderen Tabelle ("Artikel-Nummer" aus der Artikel-Tabelle). Wenn Sie nun die Maustaste loslassen, sehen Sie eine Linie, die die beiden Felder in den beiden Tabellenfenstern verbindet. In der resultierenden SQL-Abfrage wird die entsprechende Bedingung eingetragen, dass der Inhalt beider Datenfelder gleich sein muss.

Das Erstellen einer Abfrage, der mehrere in Beziehung zueinander stehende Tabellen zugrunde liegen, ist nur dann m├Âglich, wenn Sie LibreOffice als Oberfl├Ąche f├╝r eine relationale Datenbank verwenden.

Notizsymbol

In einer Abfrage kann nicht auf Tabellen aus verschiedenen Datenbanken zugegriffen werden. Abfragen, die auf mehreren Tabellen beruhen, k├Ânnen nur innerhalb einer Datenbank erstellt werden.


Festlegen des Verbindungstyps

Wenn Sie auf die Verbindungslinie zwischen zwei verkn├╝pften Feldern doppelklicken oder Einf├╝gen - Neue Relation... w├Ąhlen, k├Ânnen Sie im Dialog Verbundeigenschaften (Relationen) den gew├╝nschten Verbindungstyp angeben.

Alternativ dr├╝cken Sie die Tabulatortaste, bis die Verbindungslinie ausgew├Ąhlt ist. Dann dr├╝cken Sie Umschalt+F10, um das Kontextmen├╝ anzuzeigen und dort den Befehl Bearbeiten auszuw├Ąhlen. Einige Datenbanken unterst├╝tzen nur eine Teilmenge der m├Âglichen Verbindungsarten.

Beziehungen l├Âschen

Um eine Beziehung zwischen zwei Tabellen zu l├Âschen, klicken Sie die Verbindungslinie mit der Maus an und dr├╝cken Sie dann die Taste Entf.

Sie k├Ânnen auch die entsprechenden Eintr├Ąge aus der Liste beteiligte Felder im Dialog Verbundeigenschaften l├Âschen. Oder dr├╝cken Sie die Tabulatortaste, bis die Verbindungslinie hervorgehoben wird, dr├╝cken Sie Umschalt+F10 zum ├ľffnen des Kontextmen├╝s und w├Ąhlen Sie den Befehl L├Âschen.

Definieren der Abfrage

W├Ąhlen Sie die Bedingungen zum Definieren der Abfrage. Jede Spalte der Entwurfstabelle nimmt ein Datenfeld f├╝r die Abfrage auf. Die Bedingungen in einer Zeile werden durch ein logisches UND verkn├╝pft.

Festlegen von Feldnamen

W├Ąhlen Sie zun├Ąchst in den Tabellen alle Feldnamen aus, die in der Abfrage ber├╝cksichtigt werden sollen. Dies geschieht entweder mittels Ziehen-und-Ablegen oder durch Doppelklicken auf einen Feldnamen im Tabellenfenster. Beim Ziehen-und-Ablegen ziehen Sie einen Feldnamen mit der Maus aus dem Tabellenfenster in den unteren Fensterbereich des Abfrageentwurfs. Dabei k├Ânnen Sie entscheiden, in welche Spalte im Abfrageentwurf das Feld eingef├╝gt werden soll. Sie k├Ânnen auch einen Feldnamen ausw├Ąhlen, indem Sie darauf doppelklicken. Er wird dann in die n├Ąchste freie Spalte im Abfrageentwurf eingef├╝gt.

Datenfelder l├Âschen

Um ein Datenfeld aus der Abfrage zu entfernen, klicken Sie mit der rechten Maustaste in den Spaltenkopf des Feldes und rufen Sie dann den Befehl L├Âschen im Kontextmen├╝ der Spalte auf.

Speichern der Abfrage

Mit dem Symbol Speichern in der Symbolleiste Standard speichern Sie die Abfrage. Sie sehen einen Dialog, der Sie zum Eingeben eines Namens f├╝r die Abfrage auffordert. Wenn die Datenbank Schemata unterst├╝tzt, k├Ânnen Sie auch einen Schemanamen eingeben:

Schema

Geben Sie den Namen des Schemas ein, dem die Abfrage/Tabellenansicht zugeordnet wird.

Name der Abfrage/Tabellenansicht

Geben Sie den Namen der Abfrage/Tabellenansicht ein.

Filterung der Daten

Zum Filtern der Daten f├╝r die Abfrage geben Sie im unteren Fensterbereich der Entwurfsansicht die gew├╝nschten Kriterien ein. Die folgenden Optionen stehen zur Verf├╝gung:

Feld

Geben Sie den Namen des Datenfelds ein, auf das sich die Abfrage bezieht. Alle Einstellungen in der Zeilen Filteroptionen gelten f├╝r dieses Feld. Wenn Sie hier eine Zelle per Mausklick aktivieren, wird eine Pfeilschaltfl├Ąche eingeblendet, die zum Ausw├Ąhlen von Feldern dient. Mit der Option "Tabellenname.*" w├Ąhlen Sie alle Datenfelder aus, sodass die eingegebenen Kriterien auf alle Tabellenfelder angewendet werden.

Alias

Dient zur Angabe eines Aliasnamens. Der Aliasname wird in einer Abfrage anstelle des Feldnamens angezeigt. Diese Funktion erm├Âglicht den Einsatz benutzerdefinierter Spaltenbeschriftungen. Hei├čt das Datenfeld in der Tabelle beispielsweise Teilenr. und Sie m├Âchten, dass in der Abfrage stattdessen der Name Teilenummer erscheint, so geben Sie Teilenummer als den Aliasnamen ein.

In einer SQL-Anweisung werden Aliasnamen wie folgt festgelegt:

SELECT column AS alias FROM table.

Beispiel:

SELECT "ArtikelNr" AS "Artikel-Nummer" FROM "Artikel"

Tabelle

Hier ist die zugeh├Ârige Datenbanktabelle des ausgew├Ąhlten Datenfelds angegeben. Wenn Sie die Zelle per Mausklick aktivieren, wird eine Pfeilschaltfl├Ąche eingeblendet, die zur Auswahl einer anderen Tabelle der aktuellen Abfrage dient.

Sortierung

Wenn Sie diese Zelle anklicken, k├Ânnen Sie eine Sortieroptionen w├Ąhlen: aufsteigend, absteigend oder unsortiert. Text-Felder werden alphabetisch sortiert, numerische Felder numerisch. F├╝r die meisten Datenbanken k├Ânnen die Administratoren die Sortieroptionen auf der Datenbankebene setzen.

Sichtbar

W├Ąhlen Sie die Eigenschaft Sichtbar f├╝r ein Datenfeld, wird dieses Feld in der resultierenden Abfrage sichtbar dargestellt. Um ein Datenfeld nur zur Formulierung einer Bedingung oder f├╝r eine Berechnung zu nutzen, brauchen Sie es f├╝r die Abfrage nicht unbedingt anzuzeigen.

Kriterien

Hier legen Sie ein erstes Kriterium fest, nach dem der Inhalt des Datenfeldes gefiltert werden soll.

oder

Hier k├Ânnen Sie in jede Zeile je ein weiteres Filterkriterium eingeben. Mehrere Kriterien in einer einzelnen Spalte werden als ODER-Verkn├╝pfung interpretiert.

Dar├╝ber hinaus k├Ânnen Sie ├╝ber das Kontextmen├╝ der Zeilenk├Âpfe im unteren Bereich des Fensters Abfrageentwurf noch einen auf einer Funktion basierenden Filter einf├╝gen:

Funktionen

Die hier verf├╝gbaren Funktionen h├Ąngen dabei von den unterschiedlichen M├Âglichkeiten des von Ihnen verwendeten Datenbanksystems ab.

Falls Sie mit der eingebetteten HSQL-Datenbank arbeiten, bietet Ihnen das Listenfeld in der Zeile Funktion die folgenden Optionen:

Option

SQL

Auswirkung

keine Funktion

Es wird keine Funktion ausgef├╝hrt.

Durchschnitt

AVG

Berechnet das arithmetische Mittel eines Feldes.

Anzahl

COUNT

Bestimmt die Anzahl der Datens├Ątze in der Tabelle. Dabei k├Ânnen leere Felder entweder gez├Ąhlt (a) oder ausgeschlossen (b) werden.

a) COUNT(*): Wenn Sie als Argument ein Sternchen ├╝bergeben, werden alle Datens├Ątze der Tabelle gez├Ąhlt.

b) COUNT(Spalte): Wenn Sie einen Feldnamen als Argument ├╝bergeben, werden nur die Datens├Ątze gez├Ąhlt, in denen das angegebene Feld einen Wert enth├Ąlt. Datens├Ątze, in denen das Feld einen Nullwert hat (das hei├čt keinen Text- oder Zahlenwert enth├Ąlt), werden nicht gez├Ąhlt.

Maximum

MAX

Ermittelt den h├Âchsten Wert eines Datensatzes f├╝r das Feld.

Minimum

MIN

Ermittelt den niedrigsten Wert eines Datensatzes f├╝r das Feld.

Summe

SUM

Berechnet die Summe der Werte des Datensatzes f├╝r das zugeh├Ârige Feld.

Gruppierung

GROUP BY

Gruppiert Abfragedaten nach dem ausgew├Ąhlten Feldnamen. Die Funktionen werden f├╝r die angegebenen Gruppen ausgef├╝hrt. Diese Option entspricht in SQL der Klausel GROUP BY. Wenn Sie ein Kriterium hinzuf├╝gen, erscheint dieser Eintrag in SQL nach dem Unterabschnitt HAVING.


Es besteht auch die M├Âglichkeit, Funktionsaufrufe direkt in den SQL-Ausdruck einzugeben. Die Syntax lautet:

SELECT FUNCTION(column) FROM table.

Im SQL lautet der Funktionsaufruf zur Summenberechnung beispielsweise:

SELECT SUM("Preise") FROM "Artikel".

Bis auf die Funktion Gruppierung hei├čen die obigen Funktionen alle Aggregat-Funktionen. Das sind Funktionen, die Daten durch Berechnungen zu Ergebnissen zusammenfassen. Weitere Funktionen sind m├Âglich, die nicht im Listenfeld aufgef├╝hrt sind. Diese h├Ąngen spezifisch vom verwendeten Datenbanksystem und von der vom aktuellen Base-Treiber f├╝r die Verbindung zum Datenbanksystem zur Verf├╝gung gestellten Funktionalit├Ąt ab.

Um andere Funktionen zu benutzen, die nicht im Listenfeld aufgef├╝hrt sind, m├╝ssen Sie sie manuelle unter Feld eingeben.

F├╝r Funktionsaufrufe k├Ânnen Sie ebenfalls Aliasnamen zuweisen. Wenn die Abfragezeichenkette nicht im Spaltenkopf anzeigen werden soll, geben Sie den gew├╝nschten Namen unter Alias ein.

Im SQL-Statement lautet ein entsprechender Funktionsaufruf:

SELECT FUNCTION() AS alias FROM table

Beispiel:

SELECT COUNT(*) AS count FROM "Artikel"

Notizsymbol

Wenn Sie eine solche Funktion ausf├╝hren, k├Ânnen Sie keine weiteren Spalten f├╝r die Abfrage einf├╝gen, au├čer als ein Argument in einer Funktion "Gruppierung".


Beispiele

Im folgenden Beispiel wird eine Abfrage ├╝ber zwei Tabellen ausgef├╝hrt: eine Tabelle "Artikel" mit dem Feld "Artikel_Nr" und eine Tabelle "Lieferanten" mit dem Feld "Lieferanten_Name". Au├čerdem besitzen beide Tabellen ein gemeinsames Datenfeld "Lieferanten_Nr".

Um eine Abfrage zu erstellen, die alle Lieferanten beinhaltet, die mehr als drei Artikel liefern, sind folgende Schritte n├Âtig:

  1. Die Tabelle "Artikel" und "Lieferanten" in den Abfrageentwurf einf├╝gen.

  2. Die Felder "Lieferanten_Nr" beider Tabellen verbinden, falls es nicht schon eine entsprechende Relation zwischen den Tabellen gibt.

  3. Klicken Sie doppelt auf das Feld "Artikel_Nr" in der Tabelle "Artikel". Blenden Sie die Zeile Funktion ├╝ber das Kontextmen├╝ ein und w├Ąhlen Sie die Funktion Anzahl aus.

  4. Als Kriterium >3 eingeben und das Sichtbar-Feld ausschalten.

  5. Das Feld "Lieferanten_Name" aus der Tabelle "Lieferanten" doppelt anklicken, und die Funktion Gruppierung ausw├Ąhlen.

  6. F├╝hren Sie die Abfrage aus.

Wenn in der Tabelle "Artikel" die Felder "Preis" (f├╝r den Einzelpreis eines Artikels) und "Lieferanten_Nr" (f├╝r den Lieferanten des Artikels) existieren, k├Ânnen Sie mit folgender Abfrage den Durchschnittspreis der Artikel erhalten, die ein Lieferant bereitstellt:

  1. Die Tabelle "Artikel" in den Abfrageentwurf einf├╝gen.

  2. Die Felder "Preis" und "Lieferanten_Nr" doppelt anklicken.

  3. Die Zeile Funktion einschalten und bei dem Feld "Preis" die Funktion Durchschnitt ausw├Ąhlen.

  4. Auf Wunsch in der Zeile f├╝r den Aliasnamen "Durchschnitt" eintragen (ohne Anf├╝hrungsstriche).

  5. Bei dem Feld "Lieferanten_Nr" die Gruppierung ausw├Ąhlen.

  6. F├╝hren Sie die Abfrage aus.

Folgende Kontextmen├╝befehle und Symbole sind vorhanden:

Funktionen

Blendet eine Zeile f├╝r die Auswahl von Funktionen ein oder aus.

Tabellenname

Blendet die Zeile f├╝r den Tabellennamen ein oder aus.

Aliasname

Blendet die Zeile f├╝r den Aliasnamen ein oder aus.

Eindeutige Werte

Ruft nur eindeutige Werte ├╝ber die Abfrage ab. Dies gilt f├╝r mehrere Datens├Ątze, welche mehrere wiederholt vorkommende Daten in den ausgew├Ąhlten Feldern enthalten k├Ânnten. Ist der Befehl Eindeutige Werte aktiv, wird nur ein Datensatz in der Abfrage angezeigt (DISTINCT). Anderenfalls sind alle die Abfragekriterien erf├╝llenden Datens├Ątze sichtbar (ALL).

Wenn beispielsweise der Name "Schmitt" mehrmals in der Adressendatenbank vorkommt, k├Ânnen Sie mithilfe des Befehls Eindeutige Werte angeben, dass er in der Abfrage nur einmal erscheinen soll.

Bei Abfragen ├╝ber mehrere Felder muss die Kombination der Werte aus allen Feldern eindeutig sein, damit das Ergebnis eines Datensatzes aufgenommen wird. Nehmen wir an, das Adressbuch enth├Ąlt einmal "Schmitt in Hamburg" und zweimal "Schmitt in Mainz". Mit dem Befehl Eindeutige Werte liefert die Abfrage ├╝ber die Felder "Nachname" und "Stadt" als Ergebnis einmal "Schmitt in Hamburg" und einmal "Schmitt in Mainz".

Dieser Befehl entspricht in SQL dem Pr├Ądikat DISTINCT.

Limit

Erlaubt Ihnen, die maximale Anzahl an Datens├Ątzen, welche die Anfrage zur├╝ckgibt, zu begrenzen.

Wenn ein Parameter Limit hinzugef├╝gt wurde, werden Sie nur so viele Zeilen angezeigt bekommen, wie Sie festgelegt haben. Andernfalls werden Sie alle Datens├Ątze entsprechend der Abfragekriterien sehen.

Formulieren von Filterbedingungen

F├╝r das Formulieren von Filterbedingungen stehen Ihnen verschiedene Operatoren und Befehle zur Verf├╝gung. Au├čer den relationalen Operatoren gibt es auch SQL-spezifische Befehle zum Abfragen der Inhalte von Datenbankfeldern. Wenn Sie diese Befehle in der LibreOffice-Syntax verwenden, konvertiert LibreOffice sie automatisch in die entsprechende SQL-Syntax mittels eines internen Parsers. Sie k├Ânnen SQL-Befehle auch direkt eingeben und den internen Parser so umgehen. Die folgenden Tabellen bieten einen ├ťberblick ├╝ber die Operatoren und Befehle:

Operator

Bedeutung

Bedingung ist erf├╝llt, wenn...

=

ist gleich

... der Feldinhalt mit dem angegebenen Ausdruck identisch ist.

Der Operator = wird in den Abfragefeldern nicht angezeigt. Geben Sie einen Wert ohne Operator ein, wird der Operator = automatisch angenommen.

<>

ist ungleich

... der Feldinhalt dem angegebenen Ausdruck nicht entspricht.

>

ist gr├Â├čer

... der Feldinhalt gr├Â├čer ist als der angegebene Ausdruck.

<

ist kleiner

... der Feldinhalt kleiner ist als der angegebene Ausdruck.

>=

ist gr├Â├čer oder gleich

... der Feldinhalt gr├Â├čer oder gleich dem angegebenen Ausdruck ist.

<=

ist kleiner oder gleich

... der Feldinhalt kleiner oder gleich dem angegebenen Ausdruck ist.


LibreOffice-Befehl

SQL-Befehl

Bedeutung

Bedingung ist erf├╝llt, wenn...

IS EMPTY

IS NULL

ist leer

... das Datenfeld leer ist. Bei Ja/Nein-Feldern mit drei m├Âglichen Zust├Ąnden fragt dieser Befehl den unbestimmten Zustand ab (weder Ja noch Nein).

IS NOT EMPTY

IS NOT NULL

ist nicht leer

... das Datenfeld nicht leer ist. Beispielsweise enth├Ąlt es Daten.

LIKE

Platzhalter (*) f├╝r beliebig viele Zeichen

Platzhalter (?) f├╝r genau ein Zeichen

LIKE

Platzhalter (%) f├╝r beliebig viele Zeichen

Platzhalter (_) f├╝r genau ein Zeichen

ist Bestandteil von

... das Datenfeld den angegebenen Ausdruck enth├Ąlt. Platzhalter (*) geben hierbei an, ob der Ausdruck x am Anfang (x*), am Ende (*x) oder innerhalb des Feldinhalts (*x*) vorkommt. Als Platzhalter k├Ânnen Sie in SQL-Abfragen das SQL-Zeichen % eingeben, in der LibreOffice Oberfl├Ąche die aus dem Dateisystem gewohnten Platzhalter (*).

Der Platzhalter (*) oder (%) steht f├╝r beliebig viele Zeichen. F├╝r genau ein Zeichen dient in der LibreOffice Oberfl├Ąche das Fragezeichen (?) oder in SQL-Abfragen der Unterstrich (_) als Platzhalter.

NOT LIKE

NOT LIKE

ist nicht Bestandteil von

... das Datenfeld den angegebenen Ausdruck nicht enth├Ąlt.

BETWEEN x AND y

BETWEEN x AND y

liegt im Intervall [x,y]

... das Datenfeld einen Wert enth├Ąlt, der zwischen den beiden Werten x und y liegt.

NOT BETWEEN x AND y

NOT BETWEEN x AND y

liegt nicht im Intervall [x,y]

... das Datenfeld einen Wert enth├Ąlt, der nicht zwischen den beiden Werten x und y liegt.

IN (a; b; c...)

Achten Sie auf Semikolons als Trennzeichen in allen Wertelisten!

IN (a, b, c...)

enth├Ąlt a, b, c...

... das Datenfeld einen der angegebenen Ausdr├╝cke a, b, c,... enth├Ąlt. Es k├Ânnen beliebig viele Ausdr├╝cke angegeben werden, das Abfrageergebnis wird durch einen boolesche Operator ODER ermittelt. Die Ausdr├╝cke a, b, c... k├Ânnen sowohl Zahlen als auch Zeichen sein.

NOT IN (a; b; c...)

NOT IN (a, b, c...)

enth├Ąlt nicht a, b, c...

... das Datenfeld einen der angegebenen Ausdr├╝cke a, b, c,... nicht enth├Ąlt.

= TRUE

= TRUE

hat den Wert True

... das Datenfeld den Wert True hat.

= FALSE

= FALSE

hat den Wert False

... das Datenfeld den Wert FALSCH enth├Ąlt.


Beispiele

='Ms.'

liefert Datenfelder mit dem Feldinhalt "Frau".

<'2001-01-10'

liefert Daten, die vor dem 10 Januar 2001 liegen

LIKE 'g?ve'

liefert Datens├Ątze mit Feldinhalten wie "Hallo" und "Hello".

LIKE 'S*'

liefert Datens├Ątze mit Feldinhalten wie "Sun".

BETWEEN 10 AND 20

liefert Datens├Ątze mit Feldinhalten zwischen den Werten 10 und 20. (Dabei kann es sich sowohl um Textfelder als auch um Zahlenfelder handeln.)

IN (1; 3; 5; 7)

liefert Datens├Ątze mit den Werten 1, 3, 5, 7. Beinhaltet das Datenfeld beispielsweise eine Artikel-Nummer, k├Ânnen Sie eine Abfrage erstellen, die bestimmte Artikel mit der angegebenen Nummer liefert.

NOT IN ('Smith')

liefert Datens├Ątze, die nicht "M├╝ller" enthalten.


Like Escape Sequence: {escape 'escape-character'}

Beispiel: select * from Artikel where Artikelname like 'Der *%' {escape '*'}

Das Beispiel liefert alle Eintr├Ąge, wo der Artikelname mit 'Der *' beginnt. Sie k├Ânnen somit auch nach Zeichen suchen, die sonst als Platzhalter interpretiert werden, wie *, ?, _, % oder der Punkt.

Outer Join Escape Sequence: {oj outer-join}

Beispiel: select Artikel.* from {oj Artikel LEFT OUTER JOIN Bestellungen ON Artikel.Nr=Bestellungen.ANR}

Abfrage von Textfeldern

Um den Inhalt eines Textfeldes abzufragen, m├╝ssen Sie den Ausdruck in einfache Anf├╝hrungszeichen setzen. Die Unterscheidung zwischen Gro├č- und Kleinschreibung h├Ąngt von der verwendeten Datenbank ab. LIKE unterscheidet per Definition Gro├č- und Kleinschreibung (obwohl einige Datenbanken dies nicht strikt interpretieren).

Abfrage von Datumsfeldern

Datumsfelder werden als #Date# dargestellt, um sie eindeutig als Daten zu identifizieren. Datum-, Zeit- und Datum-/Zeitkonstanten (Literale), die in Bedingungen verwendet werden, k├Ânnen entweder vom Typ SQL-Excape-Syntax oder Standard-SQL2-Syntax sein.

Datentypelement

SQL-Abbruchsyntax #1 - kann veraltet sein

SQL-Abbruchsyntax #2

SQL2 Syntax

Datum

{D'YYYY-MM-DD'}

{d 'YYYY-MM-DD'}

'YYYY-MM-DD'

Zeit

{D'HH:MM:SS'}

{t 'HH:MI:SS[.SS]'}

'HH:MI:SS[.SS]'

DatumZeit

{D'YYYY-MM-DD HH:MM:SS'}

{ts 'YYYY-MM-DD HH:MI:SS[.SS]'}

'YYYY-MM-DD HH:MI:SS[.SS]'


Beispiel: select {d '1999-12-31'} from world.years

Beispiel: select * from mytable where years='1999-12-31'

Alle Datumausdr├╝cke (date literals) m├╝ssen in Hochkommata eingeschlossen werden. (Schlagen Sie f├╝r weitere Details die Referenz f├╝r die spezielle Datenbank und den Verbinder, die Sie benutzen, nach.)

Abfrage von Ja/Nein-Feldern

Um Ja/Nein-Felder abzufragen, verwenden Sie f├╝r dBase-Tabellen die folgende Syntax:

Zustand

Abfragekriterium

Beispiel

Ja

bei dBase-Tabellen: ungleich zu jedem Wert

=1 liefert alle Datens├Ątze, bei denen das Ja/Nein-Feld den Zustand "Ja" oder "an" hat (schwarze Markierung).

Nein

.

=0 liefert alle Datens├Ątze, bei denen das Ja/Nein-Feld den Zustand "Nein" oder "aus" hat (keine Markierung).

Leer

IS NULL

IS NULL liefert alle Datens├Ątze, bei denen das Ja/Nein-Feld keinen der beiden Zust├Ąnde Ja oder Nein hat (graue Markierung).


Notizsymbol

Die Syntax ist von dem jeweiligen Datenbanksystem abh├Ąngig. Beachten Sie au├čerdem, dass Ja/Nein-Felder unterschiedlich definiert sein k├Ânnen (nur zwei anstelle von 3 Zust├Ąnden).


Parameterabfragen

Parameterabfragen erlauben es dem Benutzer, w├Ąhrend der Laufzeit Werte einzugeben. Diese Werte werden innerhalb der Kriterien zur Auswahl der anzuzeigenden Datens├Ątze verwendet. Jeder dieser Werte hat einen damit verbundenen Parameternamen, welcher dazu benutzt wird, den Benutzer w├Ąhrend der Abfrage zur Eingabe aufzufordern.

Parameternamen wird sowohl in der Entwurfs- als auch in der SQL-Ansicht einer Abfrage ein Doppelpunkt vorangestellt. Dies kann immer dort geschehen, wo ein Wert erscheinen kann. Falls derselbe Wert mehr als einmal in der Abfrage erscheint, wird derselbe Parametername benutzt.

Im einfachsten Fall, bei dem der Benutzer einen Wert eingibt, der auf Gleichheit ├╝berpr├╝ft werden soll, wird der Parametername mit seinem vorangestellten Doppelpunkten in der Kriteriumszeile eingeben. Im SQL-Modus sollte dies als WHERE "Feld" = :Parametername eingegeben werden.

Warnsymbol

Parameternamen d├╝rfen keines der Zeichen <Leerstelle>`!"$%^*()+={}[]@'~#<>?/, enthalten. Sie d├╝rfen nicht gleich Feldnamen oder f├╝r SQL reservierten W├Ârter sein. Sie k├Ânnen aber gleich Aliasen sein.


Tippsymbol

Eine n├╝tzliche Konstruktion, um Datens├Ątze basierend auf Inhaltsteilen eines Textfelds auszuw├Ąhlen, besteht darin, eine versteckte Spalte mit "LIKE '%' || :Teil_des_Felds || '%'" als Kriterium hinzuzuf├╝gen. Dies wird Datens├Ątze mit einem exakten Treffer ausw├Ąhlen. Falls ein Test ohne Ber├╝cksichtigung der Gro├č- und Kleinschreibung ben├Âtigt wird, besteht eine L├Âsung darin LOWER (Feldname) als Feld und LIKE LOWER ( '%' || :Teil_des_Felds || '%' ) als Kriterium zu benutzen. Beachten Sie, dass die Leerzeichen im Kriterium wichtig sind; falls sie weggelassen werden, interpretiert der SQL-Parser das gesamte Kriterium als eine passende Zeichenkette. Im SQL-Modus sollte dies als LOWER ( "Feldname" ) LIKE LOWER ( '%' || :Teil_des_Felds || '%' ) eingegeben werden.


Parameterabfragen k├Ânnen als Datenquelle f├╝r Unterformulare verwendet werden, um es dem Benutzer zu erlauben, die angezeigten Datens├Ątze einzuschr├Ąnken.

Parameter-Eingabe

Der Dialog Parametereingabe fordert den Benutzer zur Eingabe der Parameterwerte auf. Geben Sie einen Wert f├╝r jeden Abfrageparameter ein und best├Ątigen mit einem Klick auf OK oder durch Dr├╝cken der Eingabetaste.

Die eingegebenen Werte des Benutzers k├Ânnen jegliche Zeichen enthalten, die f├╝r SQL f├╝r das relevante Kriterium zul├Ąssig sind; dies kann vom zugrundeliegenden Datenbanksystem abh├Ąngen.

Tippsymbol

Der Benutzer kann die SQL-Platzhalter "%" (beliebige Zeichenkette) oder "_" (beliebiges einzelne Zeichen) als Teil des Werts benutzen, um Datens├Ątze mit komplexeren Kriterien abzufragen.


SQL-Modus

SQL steht f├╝r "Structured Query Language" und beschreibt Anweisungen, um relationale Datenbanken abzufragen, zu aktualisieren und zu verwalten.

Da LibreOffice nicht die Eingabe des SQL-Codes verlangt, k├Ânnen Sie die meisten Abfragen auch ohne SQL-Kenntnisse durchf├╝hren. W├Ąhrend Sie eine Abfrage im Abfrageentwurf erstellen, setzt LibreOffice Ihre Anweisungen automatisch in die entsprechende SQL-Syntax um. Wenn Sie mit der Schaltfl├Ąche Entwurfsansicht ein/aus in die SQL-Ansicht wechseln, sehen Sie die SQL-Befehle einer bereits erstellten Abfrage.

Sie k├Ânnen Ihre Abfrage direkt in SQL-Code formulieren. Dabei ist jedoch zu beachten, dass die spezielle Syntax von Ihrem verwendeten Datenbanksystem abh├Ąngt.

Wenn Sie den SQL-Code von Hand eingeben, k├Ânnen Sie SQL-spezifische Abfragen anlegen, die nicht von der grafischen Oberfl├Ąche im Abfrageentwurf unterst├╝tzt werden. Diese Abfragen m├╝ssen im Native-SQL-Modus ausgef├╝hrt werden.

Indem Sie auf das Symbol SQL-Befehl direkt ausf├╝hren in der SQL-Ansicht klicken, haben Sie die M├Âglichkeit, eine Abfrage zu formulieren, die nicht von LibreOffice verarbeitet, sondern direkt an das Datenbankmodul gesendet wird.

Bitte unterst├╝tzen Sie uns!