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 (beispielsweise 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 Fenstern 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.


Verknüpfungsart festlegen

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.

Abfrage definieren

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.

Datenfelder festlegen

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 das Feld eingefügt werden soll. Wählen Sie einen Feldnamen aus, indem Sie darauf doppelklicken. Er wird dann in die nächste freie Spalte 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.

Abfrage speichern

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 Schemen unterstützt, können Sie auch ein Schema 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 nehmen Sie im unteren Fensterbereich der Entwurfsansicht die gewünschten Einstellungen vor. Die folgenden Zeilen stehen zur Verfügung:

Feld

Geben Sie den Namen des Datenfelds ein, auf das sich die Abfrage bezieht. Alle Einstellungen in den unteren Zeilen gelten für dieses Feld. Wenn Sie 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, und die Kriterien gelten dann für alle Tabellenfelder.

Alias

Dient zur Angabe eines Aliasnamens. Der Aliasname wird in der 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 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 eine Zelle per Mausklick aktivieren, wird eine Pfeilschaltfläche eingeblendet, die zur Auswahl einer anderen Tabelle der aktuellen Abfrage dient.

Sortierung

Wenn Sie die Zelle anklicken, können Sie zwischen folgenden Sortieroptionen wählen: aufsteigend, absteigend oder nicht sortiert. Text-Felder werden alphabetisch sortiert, numerische Felder numerisch. Für die meisten Datenbanken können die Administratoren die Sortieroptionen setzen.

Sichtbar

Wählen Sie die Eigenschaft Sichtbar für ein Datenfeld, dann wird dieses in der Abfrage sichtbar aufgeführt. Um ein Datenfeld nur zur Formulierung einer Bedingung zu nutzen, brauchen Sie es für die Abfrage nicht unbedingt einzublenden.

Kriterien

Hier legen Sie die Kriterien fest, nach denen der Inhalt des Datenfeldes gefiltert werden soll.

oder

Hier können Sie in jeder Zeile je ein weiteres Kriterium für die Filterung eingeben. Mehrere Kriterien in einer Spalte werden mit einer ODER-Verknüpfung verbunden.

Darüber hinaus können Sie über das Kontextmenü der Zeilenköpfe im unteren Bereich des Abfrageentwurfs noch eine Zeile für Funktionen einfügen:

Funktionen

Sie können in Abfragen Funktionen ausführen, wobei die unterschiedlichen Möglichkeiten von dem von Ihnen verwendeten Datenbanksystem abhängen.

Falls Sie mit der HSQL-Datenbank arbeiten, bietet Ihnen das Listenfeld in der Funktion-Reihe 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 übersprungen (b) werden.

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

b) COUNT(column): Wenn Sie als Argument ein Datenfeld übergeben, werden nur die Felder gezählt, in denen das jeweilige Datenfeld einen Wert enthält. Null-Werte (leere Felder) werden dabei nicht mitgezählt.

Maximum

MAX

Ermittelt den höchsten Wert eines Feldes.

Minimum

MIN

Ermittelt den niedrigsten Wert eines Feldes.

Summe

SUM

Berechnet die Summe der Werte des zugehörigen Feldes.

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 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 handelt es sich bei den obigen Funktionen um sogenannte 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 von dem speziellen Datenbanksystem, das Sie verwenden, als auch vom gegenwärtigen Zustand des Base-Treibers ab.

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

Für Funktionsaufrufe können Sie ebenfalls Aliasnamen vergeben. Wenn die Abfrage nicht den Funktionsnamen im Spaltenkopf anzeigen 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 Funktion ausführen, können Sie keine weiteren Spalten für die Abfrage einfügen, außer diese Spalten erhalten als 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. Aus der Tabelle "Artikel" das Feld "Artikel_Nr" doppelt anklicken. Die Zeile Funktion über das Kontextmenü einblenden und die Funktion Anzahl auswählen.

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

Wendet nur eindeutige Werte auf die Abfrage an. Dies gilt für Datensätze mit Daten, die in den ausgewählten Feldern mehrmals auftreten. 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.

Limes

Erlaubt Ihnen die Anzahl der Datensätze zu maximieren, die die Anfrage zurückgibt.

Wenn Sie ein Limit hinzufügen, werden Sie allenfalls so viele Zeilen zurückbekommen wie die Anzahl, die Sie spezifiziert haben. Ansonsten 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. Sie können SQL-Befehle auch direkt eingeben. 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 = 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 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.

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 die 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 eine Oder-Verknüpfung 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 False hat.


Beispiele

='Frau'

liefert Datenfelder mit dem Feldinhalt "Frau".

<'10.01.2001'

liefert Daten, die vor dem 10 Januar 2001 liegen

LIKE 'H?llo'

liefert Datenfelder mit Feldinhalten wie "Hallo" und "Hello".

LIKE 'S*'

liefert Datenfelder mit Feldinhalten wie "Sun".

BETWEEN 10 AND 20

liefert Datenfelder 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 Datenfelder 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 ('Müller')

liefert Datenfelder, 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. Zwischen Groß- und Kleinschreibung wird nicht unterschieden.

Abfrage von Datumsfeldern

Datenfelder 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'JJJJ-MM-TT'}

{d 'JJJJ-MM-TT'}

'JJJJ-MM-TT'

Zeit

{D'HH:MM:SS'}

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

'HH:MM:SS[.SS]'

DatumZeit

{D'JJJJ-MM-TT HH:MM:SS'}

{ts 'JJJJ-MM-TT HH:MM:SS[.SS]'}

'JJJJ-MM-TT HH:MM:SS[.SS]'


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

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

Alle Datumausdrücke (Literale) 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 zuvor erstellten Abfrage.

Sie können Ihre Abfrage direkt im 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-Kommando direkt ausführen in der SQL-Ansicht klicken, haben Sie die Möglichkeit, eine Abfrage zu formulieren, die nicht von LibreOffice verarbeitet wird.