Abfrageentwurf

Die Ansicht Abfrage-Entwurf erlaubt Ihnen, eine Datenbank-Abfrage zu erstellen und zu 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‚Ķ


note

Die meisten Datenbanken verwenden Abfragen zum Filtern oder Sortieren von Datenbanktabellen, um Datens√§tze auf Ihrem Computer anzuzeigen. Ansichten bieten dieselbe Funktionalit√§t wie Abfragen, jedoch auf der Serverseite. Wenn sich Ihre Datenbank auf einem Server befindet, der Ansichten unterst√ľtzt, k√∂nnen Sie Ansichten verwenden, um die Datens√§tze auf dem Server zu filtern, um die Anzeigezeit zu beschleunigen.


note

Wenn Sie den Befehl Ansicht erstellen auf dem Register Tabellen eines Datenbankdokuments auswählen, sehen Sie das Fenster Ansichtsdesign, das dem hier beschriebenes Fenster Abfragedesign ähnelt.


Das Layout des Fensters Abfrageentwurf wird mit einer erstellten Abfrage gespeichert, kann aber nicht mit einer erstellten Ansicht gespeichert werden.

Die Ansicht Entwurf

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

Im unteren Bereich der Entwurfsansicht definieren Sie die Abfrage. Um eine Abfrage zu definieren, geben Sie die einzuschlie√üenden Datenbankfeldnamen und die Kriterien f√ľr die Anzeige der Felder an. Um die Spalten im unteren Bereich der Entwurfsansicht neu anzuordnen, ziehen Sie eine Spalten√ľberschrift an eine neue Position oder w√§hlen Sie die Spalte aus und dr√ľcken Sie +Pfeiltaste.

Oben im Fenster der Abfrageentwurfsansicht werden die Symbole der Leisten Abfragedesign und Design angezeigt.

Wenn Sie eine Abfrage testen möchten, doppelklicken Sie auf den Abfragenamen im Datenbankdokument. Das Abfrageergebnis wird in einer Tabelle ähnlich der Datenquellenansicht angezeigt. Hinweis: Die angezeigte Tabelle ist nur temporär.

Tastenkombinationen in der Ansicht Abfrageentwurf

Tastenkombination

Funktion

F4

Vorschau

F5

Abfrage ausf√ľhren

F7

Tabelle oder Abfrage hinzuf√ľgen


Durchsuchen

Wenn Sie den Abfrageentwurf erstmals √∂ffnen, sehen Sie einen Dialog, in dem Sie zun√§chst die Tabelle oder Abfrage ausw√§hlen m√ľssen, welche die Basis f√ľr Ihre neue Abfrage sein wird.

Doppelklicken Sie auf Felder, um sie der Abfrage hinzuzuf√ľgen. Verwenden Sie Ziehen-und-Ablegen zum Definieren von Relationen.

note

Während des Entwurfs einer Abfrage können Sie die ausgewählten Tabellen nicht verändern.


Tabellen entfernen

Um die Tabelle aus der Entwurfsansicht zu entfernen, klicken Sie auf den oberen Rand des Tabellenfensters und √∂ffnen Sie das Kontextmen√ľ. Sie k√∂nnen den Befehl L√∂schen verwenden, um die Tabelle aus der Entwurfsansicht zu entfernen. Eine andere M√∂glichkeit besteht darin, Entf zu dr√ľcken.

Tabelle verschieben und Tabellengröße ändern

Sie k√∂nnen die Tabellen nach Ihren W√ľnschen skalieren und anordnen. Um Tabellen zu verschieben, ziehen Sie den oberen Rand an die gew√ľnschte Position. Vergr√∂√üern oder verkleinern Sie die Anzeige der Tabelle, indem Sie den Mauszeiger auf einen Rand oder eine Ecke positionieren und die Tabelle auf die gew√ľnschte Gr√∂√üe ziehen.

Tabellen-Relationen

Wenn Datenrelationen zwischen den Feldnamen zweier Tabelle bestehen, k√∂nnen Sie diese Relationen f√ľr Ihre Abfrage verwenden.

Besitzen Sie beispielsweise eine Tabelle f√ľr Artikel, die durch eine Artikelnummer identifiziert werden, und eine Tabelle f√ľr Kunden, in der Sie alle Artikel erfassen, die ein Kunde mit den entsprechenden Artikelnummern bestellt, dann besteht ein Zusammenhang zwischen den beiden Datenfeldern "Artikelnummer". Wenn Sie nun eine Abfrage erstellen m√∂chten, die alle Artikel zur√ľckgibt, die ein Kunde bestellt hat, m√ľssen Sie Daten aus zwei Tabellen abrufen. Dazu m√ľssen Sie LibreOffice √ľber die Relation informieren, die zwischen den Daten in den beiden Tabellen besteht.

Klicken Sie dazu in einer Tabelle auf einen Feldnamen (beispielsweise den Feldnamen "Artikelnummer" aus der Tabelle Kunde), halten Sie die Maustaste gedr√ľckt und ziehen Sie dann den Feldnamen auf den Feldnamen der anderen Tabelle ("Artikelnumber" aus der Tabelle Artikel). Wenn Sie die Maustaste loslassen, erscheint eine Linie, welche die beiden Felder zwischen den Tabellenfenstern verbindet. Die entsprechende Bedingung, dass der Inhalt der beiden Feldnamen identisch sein muss, wird in die resultierende SQL-Abfrage eingetragen.

Die Erstellung einer Abfrage, die auf mehreren zusammenh√§ngenden Bl√§ttern basiert, ist nur m√∂glich, wenn Sie LibreOffice als Schnittstelle f√ľr eine relationale Datenbank verwenden.

note

Sie können in einer Abfrage nicht auf Tabellen aus verschiedenen Datenbanken zugreifen. Abfragen mit mehreren Tabellen können nur innerhalb einer Datenbank erstellt werden.


Den Relationstyp festlegen

Wenn Sie auf die Verbindungslinie zweier verkn√ľpfter Felder doppelt anklicken oder im Men√ľ Einf√ľgen ‚Äď Neue Relation‚Ķ w√§hlen, k√∂nnen Sie im Dialog Relationen die Art der Relation festlegen.

Alternativ dr√ľcken Sie Tabulator, bis die Zeile markiert ist, dr√ľcken dann Umschalt+F10, um das Kontextmen√ľ anzuzeigen, und w√§hlen dort den Befehl Bearbeiten . Einige Datenbanken unterst√ľtzen nur eine Teilmenge der m√∂glichen Verbundtypen.

Relationen löschen

Um eine Relation zwischen zwei Tabellen zu l√∂schen, klicken Sie auf die Verbindungslinie und dr√ľcken Entf.

Alternativ l√∂schen Sie die entsprechenden Eintr√§ge in Beteiligte Felder im Dialog Relationen. Oder Sie dr√ľcken Tabulator, bis der Verbindungsvektor hervorgehoben angezeigt wird, dr√ľcken Sie dann Umschalt+F10, um das Kontextmen√ľ zu √∂ffnen, und w√§hlen Sie den Befehl L√∂schen .

Die Abfrage definieren

W√§hlen Sie Bedingungen aus, um die Abfrage zu definieren. Jede Spalte der Designtabelle akzeptiert ein Datenfeld f√ľr die Abfrage. Die Bedingungen in einer Zeile werden mit einem booleschen UND verkn√ľpft.

Feldnamen festlegen

W√§hlen Sie zun√§chst alle Feldnamen der Tabellen aus, die Sie der Abfrage hinzuf√ľgen m√∂chten. Dies k√∂nnen Sie entweder per Ziehen-und-Ablegen oder durch Doppelklick auf einen Feldnamen im Fenster Tabellen tun. Ziehen Sie mittels Ziehen-und-Ablegen einen Feldnamen aus dem Fenster Tabellen mit der Maus in den unteren Bereich des Fensters Abfrageentwurf. Dabei k√∂nnen Sie entscheiden, welche Spalte im Fenster Abfrageentwurf das ausgew√§hlte Feld erh√§lt. Ein Feldname kann auch per Doppelklick ausgew√§hlt werden. Es wird dann der n√§chsten freien Spalte im Fenster Abfrageentwurf hinzugef√ľgt.

Feldnamen löschen

Um einen Feldnamen aus der Abfrage zu entfernen, klicken Sie auf die Spalten√ľberschrift des Felds und w√§hlen Sie im Kontextmen√ľ der Spalte den Befehl L√∂schen.

Die Abfrage speichern

Verwenden Sie das Symbol Speichern in der Symbolleiste Standard, um die Abfrage zu speichern. Sie sehen einen Dialog, in dem Sie aufgefordert werden, einen Namen f√ľr die Abfrage einzugeben. Wenn die Datenbank Schemen unterst√ľtzt, k√∂nnen Sie auch einen Schemennamen eingeben.

Schema

Geben Sie den Namen des Schemas ein, das der Abfrage oder Tabellenansicht zugewiesen ist.

Name der Abfrage oder Tabellenansicht

Geben Sie den Namen der Abfrage oder Tabellenansicht ein.

Daten filtern

Um Daten f√ľr die Abfrage zu filtern, legen Sie im unteren Bereich des Fensters Abfrageentwurf die gew√ľnschten Kriterien fest. Folgende Optionen stehen zur Verf√ľgung:

Feld

Geben Sie den Namen des Datenfelds ein, auf das in der Abfrage verwiesen wird. Alle in den Filteroptionszeilen vorgenommenen Einstellungen beziehen sich auf dieses Feld. Wenn Sie hier eine Zelle per Mausklick aktivieren, sehen Sie eine Pfeilschaltfläche, mit der Sie ein Feld auswählen können. Die Option "Tabellenname.*" wählt alle Datenfelder aus, so dass die angegebenen Kriterien auf alle Tabellenfelder angewendet werden.

Alias

Gibt einen Alias an. Dieser Alias wird in der Abfrage anstelle des Feldnamens aufgef√ľhrt. Dadurch ist es m√∂glich, benutzerdefinierte Spaltenbezeichnungen zu verwenden. Wenn das Datenfeld beispielsweise ArtNr hei√üt und Sie statt dieses Namens ArtikelNr in der Abfrage erscheinen lassen m√∂chten, geben Sie ArtikelNr als Alias ein.

In einer SQL-Anweisung werden Aliase wie folgt definiert:

SELECT Spalte AS Alias FROM Tabelle.

Zum Beispiel:


SELECT "PtNo" AS "PartNum" FROM "Parts"

Tabelle

Hier wird die entsprechende Datenbanktabelle des ausgew√§hlten Datenfeldes aufgelistet. Wenn Sie diese Zelle per Mausklick aktivieren, erscheint ein Pfeil, der es Ihnen erm√∂glicht, eine andere Tabelle f√ľr die aktuelle Abfrage auszuw√§hlen.

Sortieren

Wenn Sie auf diese Zelle klicken, können Sie eine Sortieroption auswählen: aufsteigend, absteigend und unsortiert. Textfelder werden alphabetisch und numerische Felder numerisch sortiert. Bei den meisten Datenbanken können Administratoren die Sortieroptionen auf Datenbankebene festlegen.

Sichtbar

Wenn Sie die Eigenschaft Sichtbar f√ľr ein Datenfeld markieren, wird dieses Feld in der resultierenden Abfrage sichtbar angezeigt. Wenn Sie ein Datenfeld nur verwenden, um eine Bedingung zu formulieren oder eine Berechnung durchzuf√ľhren, m√ľssen Sie es nicht unbedingt anzeigen.

Kriterien

Legt ein erstes Kriterium fest, nach dem der Inhalt des Datenfeldes gefiltert werden soll.

oder

Hier k√∂nnen Sie f√ľr jede Zeile ein zus√§tzliches Filterkriterium eingeben. Mehrere Kriterien in einer einzelnen Spalte werden als boolesches ODER interpretiert.

Sie k√∂nnen auch √ľber das Kontextmen√ľ der Zeilen√ľberschriften im unteren Bereich des Fensters Abfragedesig einen Filter basierend auf einer Funktion einf√ľgen:

Funktionen

Die hier verf√ľgbaren Funktionen h√§ngen von denen ab, die von der Datenbank-Engine bereitgestellt werden.

Wenn Sie mit der eingebetteten HSQL-Datenbank arbeiten, bietet Ihnen das Listenfeld in der Zeile Funktion folgende Möglichkeiten:

Option

SQL

Effekt

Keine Funktion

Es wird keine Funktion ausgef√ľhrt.

Mittelwert

AVG

Berechnet das arithmetische Mittel eines Feldes.

Anzahl

COUNT

Bestimmt die Anzahl der Datensätze in der Tabelle. Leere Felder können entweder gezählt (a) oder ausgeschlossen (b) werden.

a) COUNT(*): Die Übergabe eines Sterns als Argument zählt alle Datensätze in der Tabelle.

b) COUNT(Spalte): Die Übergabe eines Feldnamens als Argument zählt nur die Datensätze, in denen das angegebene Feld einen Wert enthält. Datensätze, bei denen das Feld einen Nullwert hat (das heißt keinen Text- oder Zahlenwert enthält), werden nicht gezählt.

Maximum

MAX

Bestimmt den h√∂chsten Wert eines Datensatzes f√ľr dieses Feld.

Minimum

MIN

Bestimmt den niedrigsten Wert eines Datensatzes f√ľr dieses Feld.

Summe

SUM

Berechnet die Summe der Werte der Datens√§tze f√ľr die zugeordneten Felder.

Gruppierung

GROUP BY

Gruppiert Abfragedaten nach dem ausgew√§hlten Feldnamen. Funktionen werden gem√§√ü den angegebenen Gruppen ausgef√ľhrt. In SQL entspricht diese Option der GROUP BY-Klausel. Wenn ein Kriterium hinzugef√ľgt wird, erscheint dieser Eintrag in der SQL HAVING-Unterklausel.


Sie können Funktionsaufrufe auch direkt in die SQL-Anweisung eingeben. Die Syntax lautet:

SELECT FUNCTION(Spalte) FROM Tabelle.

Beispielsweise lautet der Funktionsaufruf in SQL zum Berechnen einer Summe:


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

Bis auf die Funktion Gruppierung hei√üen die obigen Funktionen alle Aggregatfunktionen. 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 verwenden, 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 Abfragezeichenfolge 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 Tabelle

Beispiel:


SELECT COUNT(*) AS count FROM "Artikel"
note

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, welche 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. Doppelt auf das Feld "Artikel_Nr" in der Tabelle "Artikel" klicken. Die Zeile Funktion √ľber das Kontextmen√ľ einblenden und die Funktion Anzahl ausw√§hlen.

  4. Als Kriterium >3 eingeben und das Feld Sichtbar deaktivieren.

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

  6. Die Abfrage ausf√ľhren.

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. Die Abfrage ausf√ľhren.

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 "Schmidt" 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 "Schmidt in Hamburg" und zweimal "Schmidt in Mainz". Mit dem Befehl Eindeutige Werte liefert die Abfrage √ľber die Felder "Nachname" und "Stadt" als Ergebnis einmal "Schmidt in Hamburg" und einmal "Schmidt 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 nur so viele Zeilen angezeigt, wie festgelegt wurden. Anderenfalls werden alle Datens√§tze entsprechend der Abfragekriterien zu sehen sein.

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 eine √úbersicht √ľ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. Wenn Sie einen Wert ohne Operator eingeben, 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

='Frau.'

liefert Datenfelder mit dem Feldinhalt "Frau".

<'2001-01-10'

liefert Daten, die vor dem 10 Januar 2001 liegen

LIKE 'H?llo'

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 ('Schmidt')

liefert Datensätze, die nicht "Schmidt" enthalten.


Like Abbruchsequenz: {escape 'Abbruchzeichen'}

Beispiel:


SELECT * FROM Item WHERE ItemName LIKE 'The *%' {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 Abbruchsequenz: {oj outer-join}

Beispiel:


SELECT Article.* FROM {oj item LEFT OUTER JOIN orders ON item.no=orders.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-Abbruchsyntax 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 verwendeten Verbinder 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).


note

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 verwendet 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 verwendet.

Im einfachsten Fall, wenn der Benutzer einen Wert eingibt, der auf Gleichheit pr√ľft, wird einfach der Parametername mit vorangestelltem Doppelpunkt in die Zeile Kriterium eingetragen. Im SQL-Modus sollte dies als WHERE "Field" = :Parametername eingegeben werden.

warning

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.


tip

Eine n√ľtzliche Konstruktion zum Ausw√§hlen von Datens√§tzen basierend auf Teilen des Inhalts eines Textfelds ist das Hinzuf√ľgen einer versteckten Spalte mit "LIKE '%' || :Teil_des_Feldes || '%'" als Kriterium. Dadurch werden Datens√§tze mit einer genauen √úbereinstimmung ausgew√§hlt. Wenn ein Test ohne Ber√ľcksichtigung der Gro√ü-/Kleinschreibung erw√ľnscht ist, besteht eine L√∂sung darin, LOWER (Feldname) als Feld und LIKE LOWER ( '%' || :Teil_des_Feldes || '%' ) als Kriterium zu verwenden. Beachten Sie, dass die Leerzeichen im Kriterium wichtig sind; Wenn sie weggelassen werden, interpretiert der SQL-Parser das gesamte Kriterium als zu vergleichende Zeichenfolge. Im SQL-Modus sollte dies als LOWER ( "Feldname" ) WIKE LOWER ( '%' || :Teil_des_Feldes || '%' ) 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 von Eingabe.

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.

tip

Der Benutzer kann die SQL-Platzhalter "%" (beliebige Zeichenfolge) oder "_" (beliebiges einzelne Zeichen) als Teil des Werts verwenden, 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!