Lekérdezéstervező

A Lekérdezéstervező nézet lehetővé teszi adatbázis-lekérdezés létrehozását és szerkesztését.

Ennek a parancsnak az eléréséhez...

In a database file window, click the Queries icon, then choose Edit - Edit.


Jegyzet ikon

A legtöbb adatbázis lekérdezéseket használ a rekordok megjelenítésére a számítógépen az adatbázistáblák szűrése és rendezése által. A nézetek ugyanazt a funkcionalitást biztosítják, mint a lekérdezések, csak kiszolgálóoldalon. Ha a használt adatbázis olyan kiszolgálón van, amely támogatja a nézeteket, használhatja a nézeteket a rekordok kiszolgálón történő szűréséhez. A megjelenítési idő ilyenkor lecsökken.


Jegyzet ikon

Ha az adatbázis-dokumentum Táblázatok lapján a Nézet létrehozása parancsot választja, akkor megjelenik a Nézetterv ablak, amely hasonlít a Lekérdezéstervező ablakra.


A Lekérdezéstervező ablak elrendezése a létrehozott lekérdezéssel tárolódik, de nem tárolható létrehozott nézettel.

A tervezőnézet

Lekérdezés létrehozásához kattintson a Lekérdezés ikonra egy adatbázis-dokumentumban, majd kattintson a Lekérdezés létrehozása a tervezőnézetben lehetőségre.

The lower pane of the Design View is where you define the query. To define a query, specify the database field names to include and the criteria for displaying the fields. To rearrange the columns in the lower pane of the Design View, drag a column header to a new location, or select the column and press +arrow key.

A lekérdezés Tervezőnézet ablakának tetején megjelennek a Lekérdezéstervező eszköztár és a Tervezés eszköztár ikonjai.

Ha tesztelni kívánja a lekérdezést, akkor kattintson duplán a lekérdezés nevére az adatbázis-dokumentumban. A lekérdezés eredménye az Adatforrás nézethez hasonló táblában jelenik meg. Megjegyzés: a megjelenített tábla csak ideiglenes.

Billentyűk a Lekérdezéstervező nézetben

Billentyű

Funkció

F4

Előnézet

F5

Lekérdezés futtatása

F7

Tábla vagy lekérdezés hozzáadása


Tallózás

Ha először nyitja meg a lekérdezéstervezőt, akkor egy párbeszédablakot fog látni, amelyben ki kell választania a táblát vagy lekérdezést, amely az új lekérdezés alapja lesz.

Kattintson duplán a mezőkön a lekérdezéshez való hozzáadásukhoz. Fogd es vidd módszerrel határozza meg a kapcsolatot.

Jegyzet ikon

Lekérdezés tervezése közben nem módosíthatja a kiválasztott táblákat.


Táblák eltávolítása

A tábla Tervezőnézetből eltávolításához kattintson a táblaablak felső szegélyére, és jelenítse meg a helyi menüt. A Törlés parancs segítségével eltávolíthatja a táblát a Tervezőnézetből. Másik lehetőség a Delete billentyű megnyomása.

Tábla áthelyezése és méretének változtatása

A táblákat igényeinek megfelelően átméretezheti és elrendezheti. A táblák áthelyezéséhez húzza a felső szegélyt a kívánt helyre. Nagyítsa vagy csökkentse a tábla megjelenítési méretét: vigye az egérkurzort a szegélyre vagy a sarokra, és húzza addig a táblát, amíg el nem éri a kívánt méretet.

Táblakapcsolatok

Amennyiben adatreláció van két különböző tábla mezői között, ezeket a relációkat a lekérdezésben is használhatja.

If, for example, you have a spreadsheet for articles identified by an article number, and a spreadsheet for customers in which you record all articles that a customer orders using the corresponding article numbers, then there is a relationship between the two "article number" data fields. If you now want to create a query that returns all articles that a customer has ordered, you must retrieve data from two spreadsheets. To do this, you must inform LibreOffice about the relationship which exists between the data in the two spreadsheets.

To do this, click a field name in a table (for example, the field name "Item-Number" from the Customer table), hold down the mouse button and then drag the field name to the field name of the other table ("Item-Number" from the Item table). When you release the mouse button, a line connecting the two fields between the two table windows appears. The corresponding condition that the content of the two field names must be identical is entered in the resulting SQL query.

Olyan lekérdezés létrehozása, amely több relációban lévő munkalapon alapul, csak akkor lehetséges, ha a LibreOffice-t egy relációs adatbázis előtét-felületeként használja.

Jegyzet ikon

Egy lekérdezésben nem férhet hozzá különböző adatbázisban levő táblákhoz. Több táblára vonatkozó lekérdezések csak egy adatbázison belül hozhatók létre.


Specifying the relation type

If you double-click on the line connecting two linked fields or call the menu command Insert - New Relation, you can specify the type of relation in the Relations dialog.

Megnyomhatja többször a Tab billentyűt, amíg a sort ki nem jelöli a rendszer, majd nyomja meg a Shift+F10 billentyűkombinációt a helyi menü megjelenítéséhez, és itt válassza ki a Szerkesztés parancsot. Egyes adatbázisok csak egy részhalmazát támogatják a lehetséges összekapcsolás-típusoknak.

Kapcsolatok törlése

Két táblázat közötti reláció törléséhez kattintson az összeköttetésre, és nyomjuk meg a Delete billentyűt.

Vagy törölje a megfelelő bejegyzéseket a Relációk párbeszédablak Érintett mezőiből. Vagy nyomja le a Tab billentyűt addig, amíg a kapcsolati vektor ki nem lesz jelölve, majd nyomja meg a Shift és F10 billentyűt a helyi menü megnyitásához, és válassza a Törlés parancsot.

Defining the query

Válassza ki a feltételeket a lekérdezés megadásához. A tervezőtábla minden oszlopa elfogadja a lekérdezés egyik adatmezőjét. Az egy sorban lévő feltételek logikai ÉS operátorral vannak összekapcsolva.

Specifying field names

First, select all field names from the tables that you want to add to the query. You can do this either by drag-and-drop or by double-clicking a field name in the table window. With the drag-and-drop method, use the mouse to drag a field name from the table window into the lower area of the query design window. As you do this, you can decide which column in the query design window will receive the selected field. A field name can also be selected by double-clicking. It will then be added to the next free column in the query design window.

Mezőnevek törlése

A mezőnév lekérdezésből eltávolításához kattintson a mező oszlopfejlécére és az oszlop helyi menüjéből válassza ki a Törlés parancsot.

Saving the query

Use the Save icon on the Standard toolbar to save the query. You will see a dialog that asks you to enter a name for the query. If the database supports schemas, you can also enter a schema name.

Séma

Adja meg a lekérdezés- vagy táblanézethez rendelni kívánt séma nevét.

A lekérdezés vagy a táblanézet neve

Írja be a lekérdezés vagy a táblanézet nevét.

Adatok szűrése

To filter data for the query, set the desired criteria in the lower area of the query design window. The following options are available:

Mező

Enter the name of the data field that is referred to in the Query. All settings made in the filter option rows refer to this field. If you activate a cell here with a mouse click you'll see an arrow button, which enables you to select a field. The "Table name.*" option selects all data fields with the effect that the specified criteria will be applied to all table fields.

Álnév

Specifies an alias. This alias will be listed in the query instead of the field name. This makes it possible to use user-defined column labels. For example, if the data field is named PtNo and, instead of that name, you would like to have PartNum appear in the query, enter PartNum as the alias.

In a SQL statement, aliases are defined as follows:

SELECT oszlopnév AS álnév FROM táblanév.

Például:

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

Tábla

The corresponding database table of the selected data field is listed here. If you activate this cell with a mouse click, an arrow will appear which enables you to select a different table for the current query.

Rendezés

If you click on this cell, you can choose a sort option: ascending, descending and unsorted. Text fields will be sorted alphabetically and numerical fields numerically. For most databases, administrators can set the sorting options at the database level.

Látható

If you mark the Visible property for a data field, that field will be visibly displayed in the resulting query. If you are only using a data field to formulate a condition or make a calculation, you do not necessarily need to display it.

Feltételek

Specifies a first criteria by which the content of the data field is to be filtered.

vagy

Here you can enter one additional filter criterion for each line. Multiple criteria in a single column will be interpreted as boolean OR.

You can also use the context menu of the line headers in the lower area of the query design window to insert a filter based on a function:

Függvények

The functions which are available here depend on those provided by the database engine.

If you are working with the embedded HSQL database, the list box in the Function row offers you the following options:

Beállítás

SQL

Hatás

Semmi

Nem lesz függvény végrehajtva.

Average

AVG

Kiszámolja egy mező számtani középértékét.

Darab

COUNT

Determines the number of records in the table. Empty fields can either be counted (a) or excluded (b).

a) COUNT(*): A csillag argumentum megadásával megszámolhatja a tábla összes rekordját.

b) COUNT(column): Passing a field name as an argument counts only the records in which the specified field contains a value. Records in which the field has a Null value (i.e. contains no textual or numeric value) will not be counted.

Maximum

MAX

Determines the highest value of a record for that field.

Minimum

MIN

Determines the lowest value of a record for that field.

Összeg

SUM

Calculates the sum of the values of records for the associated fields.

Csoportosítás

GROUP BY

Groups query data according to the selected field name. Functions are executed according to the specified groups. In SQL, this option corresponds to the GROUP BY clause. If a criterion is added, this entry appears in the SQL HAVING sub-clause.


Függvényhívásokat közvetlenül SQL-utasítás formájában is megadhat. A szintaxis az alábbi:

SELECT FÜGGVÉNYNÉV(oszlop) FROM tábla.

Például az összeg kiszámítására szolgáló függvényhívás az SQL-nyelvben a következőképpen néz ki:

SELECT SUM("ár") FROM "cikk".

Except for the Group function, the above functions are called Aggregate functions. These are functions that calculate data to create summaries from the results. Additional functions that are not listed in the list box might be also possible. These depend on the specific database engine in use and on the current functionality provided by the Base driver used to connect to that database engine.

To use other functions not listed in the list box, you must enter them manually under Field.

You can also assign aliases to function calls. If you do not want to display the query string in the column header, enter a desired substitute name under Alias.

Az SQL-nyelvben a megfelelő függvény a következő:

SELECT FÜGGVÉNYNÉV() AS álnév FROM tábla

Példa:

SELECT COUNT(*) AS számlálás FROM "elem"

Jegyzet ikon

If you run such a function, you cannot insert any additional columns for the query other than as an argument in a "Group" function.


Példák

A következő példába a lekérdezés két táblán fut végig: egy "Elem" tábla "Elemszám" mezővel és egy "Szállító" tábla "Szállító_neve" mezővel. Ezen felül mindkét tábla rendelkezik egy közös "Szállító_száma" mezővel.

A következő lépések szükségesek ahhoz, hogy olyan lekérdezést hozzon létre, amely tartalmazza az összes szállítót, aki több mint három cikket szállít:

  1. Szúrja be a "Tétel" és "Szállítók" táblákat a lekérdezéstervbe.

  2. Kapcsolja össze a két tábla "Szállító_száma" mezőjét, ha még nincs ilyen típusú kapcsolat.

  3. Double-click on the "Item_No" field from the "Item" table. Display the Function line using the context menu and select the Count function.

  4. Adja meg a >3 feltételt, és kapcsolja ki a Látható mezőt.

  5. Kattintson duplán a "Szállítók" tábla "Szállító_neve" mezőjére, és válassza a Csoport függvényt.

  6. Futtassa a lekérdezést.

Ha az "ár" (egy cikk egyedi ára) és a "Szállító_száma" (a cikk szállítójához tartozó) mező létezik az "Elem" táblában, akkor következő lekérdezéssel lekérdezheti az elem átlagos árát, amelyet a szállító biztosít:

  1. Szúrja be az "Elem" táblát a lekérdezéstervbe.

  2. Kattintson duplán az "Ár" és "Szállító_száma" mezőkre.

  3. Engedélyezze a Függvény sort, és az "Ár" mezőből válassza ki az Average (átlag) függvényt.

  4. Az "Average"-et (átlagot) az álnév sorában is megadhatja (idézőjelek nélkül).

  5. Válassza a Csoportosítást a "Szállító_száma" mezőhöz.

  6. Futtassa a lekérdezést.

A következő helyi menüparancsokat és szimbólumokat használhatja:

Függvények

Shows or hides a row for the selection of functions.

Tábla neve

Megjeleníti vagy elrejti a tábla nevét tartalmazó sort.

Álnév

Megjeleníti vagy elrejti az álnevet tartalmazó sort.

Különböző értékek

Retrieves only distinct values from the query. This applies to multiple records that might contain several repeating occurrences of data in the selected fields. If the Distinct Values command is active, you should only see one record in the query (DISTINCT). Otherwise, you will see all records corresponding to the query criteria (ALL).

Ha például a "Kovács" név többször jelenik meg a címadatbázisban, akkor kiválaszthatja a Különböző értékek parancsot annak megadásához, hogy a lekérdezés eredményében a "Kovács" név csak egyszer jelenjen meg.

Több mezőt tartalmazó lekérdezés esetén az összes mező értékei kombinációjának egyedinek kell lennie, így az eredmény kialakítható egy adott rekordból. Tegyük fel, hogy a "Kovács Szegeden" egyszer, a "Kovács Budapesten" kétszer szerepel a címjegyzékben. A Különböző értékek paranccsal a lekérdezés két mezőt használ, a "vezetéknév" és "város" mezőt, az eredményben visszaadja egyszer a "Kovács Szegeden" és egyszer a "Kovács Budapesten" értéket.

Az SQL-nyelvben ez a parancs a DISTINCT predikátumnak felel meg.

Határ

Allows you to limit the maximum number of records returned by a query.

If a Limit construction is added, you will get at most as many rows as the number you specify. Otherwise, you will see all records corresponding to the query criteria.

Szűrőfeltételek kialakítása

When formulating filter conditions, various operators and commands are available to you. Apart from the relational operators, there are SQL-specific commands that query the content of database fields. If you use these commands in the LibreOffice syntax, LibreOffice automatically converts these into the corresponding SQL syntax via an internal parser. You can also enter the SQL command directly and bypass the internal parser. The following tables give an overview of the operators and commands:

Operátor

Jelentés

Feltétel kielégítve, ha ...

=

egyenlő

... a mező tartalma megegyezik a megadott kifejezéssel.

The operator = will not be displayed in the query fields. If you enter a value without any operator, the = operator is automatically assumed.

<>

nem egyenlő

... a mező tartalma nem egyezik meg a megadott kifejezéssel.

>

nagyobb mint

... a mező tartalma nagyobb, mint a megadott kifejezés.

<

kisebb mint

... a mező tartalma kisebb, mint a megadott kifejezés.

>=

nagyobb vagy egyenlő

... a mező tartalma nagyobb vagy egyenlő, mint a megadott kifejezés.

<=

kisebb vagy egyenlő

... a mező tartalma kisebb vagy egyenlő, mint a megadott kifejezés.


LibreOffice-parancs

SQL-parancs

Jelentés

Feltétel kielégítve, ha ...

IS EMPTY

IS NULL

null

... the field contains no data. For Yes/No fields with three possible states, this command automatically queries the undetermined state (neither Yes nor No).

IS NOT EMPTY

IS NOT NULL

nem üres

... the field is not empty, i.e it contains data.

LIKE

placeholder (*) for any number of characters

placeholder (?) for exactly one character

LIKE

placeholder (%) for any number of characters

Placeholder (_) for exactly one character

eleme

... the data field contains the indicated expression. The (*) placeholder indicates whether the expression x occurs at the beginning of (x*), at the end of (*x) or inside the field content (*x*). You can enter as a placeholder in SQL queries either the SQL % character or the familiar (*) file system placeholder in the LibreOffice interface.

The (*) or (%) placeholder stands for any number of characters. The question mark (?) in the LibreOffice interface or the underscore (_) in SQL queries is used to represent exactly one character.

NOT LIKE

NOT LIKE

Nem eleme

... the field does not contain data having the specified expression.

BETWEEN x AND y

BETWEEN x AND y

az [x,y] intervallumba esik

... the field contains a data value that lies between the two values x and y.

NOT BETWEEN x AND y

NOT BETWEEN x AND y

Nem esik az [x,y] intervallumba

... the field contains a data value that does not lie between the two values x and y.

IN (a; b; c...)

Note that semicolons are used as separators in all value lists!

IN (a, b, c...)

tartalmazza a-t, b-t, c-t...

... the field name contains one of the specified expressions a, b, c,... Any number of expressions can be specified, and the result of the query is determined by a boolean OR operator. The expressions a, b, c... can be either numbers or characters

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

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

nem tartalmazza a-t, b-t, c-t...

... the field does not contain one of the specified expressions a, b, c,...

= TRUE

= TRUE

az értéke Igaz

... a mező Igaz értéket vesz fel.

= FALSE

= FALSE

a mező értéke Hamis

... the field data value is set to false.


Példák

='Ms.'

a "Ms." értéket tartalmazó mezőneveket adja vissza

<'2001-01-10'

a 2001. január 10. előtti dátumokat adja vissza.

LIKE 'g?ve'

returns records with field content such as "give" and "gave".

LIKE 'S*'

returns records with field contents such as "Sun".

BETWEEN 10 AND 20

returns records with field content between the values 10 and 20. (The fields can be either text fields or number fields).

IN (1; 3; 5; 7)

returns records with the values 1, 3, 5, 7. If the field name contains an item number, for example, you can create a query that returns the item having the specified number.

NOT IN ('Smith')

returns records that do not contain "Smith".


Like Escape-szekvencia: {escape 'kilépési karakter'}

Példa: select * from Cikk where CikkNév like 'Az *%' {escape '*'}

A példa megadja az összes bejegyzést, amelyben az elem neve az „Az *” karakterekkel kezdődik. Ez azt jelenti, hogy olyan karaktereket is kereshet, amelyek ellenkező esetben helykitöltőként kerülnének megjelenítésre, mint például a *, ?, _ , % vagy a pont.

Outer Join Escape-szekvencia: {oj outer-join}

Példa: select Cikk.* from {oj cikk LEFT OUTER JOIN rendelések ON cikk.szám=rendelések.cikkszám}

Szövegmezők lekérdezése

To query the content of a text field, you must put the expression between single quotes. The distinction between uppercase and lowercase letters depends on the database in use. LIKE, by definition, is case-sensitive (though some databases don't interpret this strictly).

Dátummezők lekérdezése

A Dátummezők #Dátum#-ként kerülnek ábrázolásra, hogy tisztán dátumként kerüljenek azonosításra. A feltételekben használt dátum, idő, és dátum/idő állandók (literálok) lehetnek SQL Escape szintaxis típusúak vagy az alapértelmezett SQL2 típusúak.

Dátum típusú elem

SQL Escape szintaxis #1 - elavult lehet

SQL Escape szintaxis #2

SQL2 szintaxis

Dátum

{D'YYYY-MM-DD'}

{d 'YYYY-MM-DD'}

'YYYY-MM-DD'

Idő

{D'HH:MM:SS'}

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

'HH:MI:SS[.SS]'

Dátum és idő

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

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

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


Példa: select {d '1999-12-31'} from world.years

Példa: select * from mytable where years='1999-12-31'

All date expressions (date literals) must be enclosed with single quotation marks. (Consult the reference for the particular database and connector you are using for more details.)

Igen/Nem típusú mezők lekérdezése

Igen/Nem típusú mezők lekérdezésénél használja a következő szintaxist dBASE-táblák esetén:

Állapot

Lekérdezési feltétel

Példa

Igen

dBASE-táblák esetén: nem egyenlő bármely adott értékkel

=1 visszaadja az összes rekordot, amelyben az Igen/Nem mező állapota "Igen" vagy "Be" (feketével kijelölve),

Nem

.

=0 visszaadja az összes rekordot, amelyek Igen/Nem mezője "Nem" vagy "Ki" állapotban van (nincs kijelölés).

Null

IS NULL

IS NULL azon rekordokat adja vissza, amelyeknél az Igen/Nem mező állapota sem nem Igen, sem nem Nem (szürkével kiválasztva).


Jegyzet ikon

A szintaxis a használt adatbázistól függ. Azt is jegyezze meg, hogy az Igen/Nem mezők különbözően adhatók meg (csak 2 állapottal 3 helyett).


Paraméteres lekérdezések

A paraméteres lekérdezések lehetővé teszik az értékek futásidejű megadását. Ezek az értékek a megjelenítendő rekordok kiválasztására szolgáló feltételeken belül kerülnek felhasználásra. Minden ilyen értékhez tartozik egy paraméternév, amely a felhasználó megkérdezésére kerül felhasználásra a lekérdezés futtatásakor.

A paraméterneveket pontosvessző előzi meg a lekérdezés Tervező és SQL nézeteiben is. Ez mindenütt használható, ahol érték jelenhet meg. Ha ugyanannak az értéknek többször is meg kell jelennie a lekérdezésben, akkor ugyanaz a paraméternév kerül felhasználásra.

A legegyszerűbb esetben, amikor a felhasználó megad egy értéket, amelynek az egyenlősége vizsgálatra kerül, akkor a paraméternevet a megelőző pontosvesszővel együtt kell bevinni a Feltételek sorba. Az SQL módban ezt így kell megadni: WHERE "mező" = :paraméternév

Figyelmeztetés ikon

A paraméternek nem tartalmazhatják a következő karaktereket: <szóköz>`!"$%^*()+={}[]@'~#<>?/,. Nem lehetnek azonosak mezőnevekkel vagy SQL foglalt szavakkal. Azonosak lehetnek álnevekkel.


Tipp ikon

Hasznos módszer rekordok egy szövegmező tartalma alapján való kiválasztására egy rejtett oszlop hozzáadása a következő feltétellel: "LIKE '%' || :mező_része || '%'". Ez a pontosan illeszkedő rekordokat fogja kiválasztani. Ha kis- és nagybetűkre érzéketlen teszt szükséges, akkor megoldás lehet a LOWER (mezőnév) használata a mezőként és LIKE LOWER ( '%' || :mező_része|| '%' ) használata feltételként. Vegye észre, hogy a szóközök a feltételben fontosak, ha kimaradnak, az SQL elemző a teljes feltételt az illesztendő karakterláncként értelmezi. SQL módban ezt így kell beírni: LOWER ( "mezőnév" ) LIKE LOWER ( '%' || :mező_része || '%' ).


A paraméteres lekérdezések használhatók adatforrásként alűrlapokhoz, hogy a felhasználó korlátozhassa a megjelenített rekordokat.

Paraméter bevitele

A Paraméter bevitele ablak megkéri a felhasználót a paraméterértékek bevitelére. Írjon be egy értéket minden lekérdezésparaméterhez és erősítse meg az OK gomb vagy az Enter megnyomásával.

A felhasználó által bevitt értékek tetszőleges karakterekből állhatnak, amelyeket a vonatkozó feltételhez az SQL engedélyez, ez függhet a használt adatbázisrendszertől.

Tipp ikon

A felhasználó használhatja az „%” (tetszőleges karakterlánc) vagy „_” (tetszőleges karakter) SQL helyettesítő karaktereket az érték részeként rekordok lekérdezéséhez összetettebb feltételekkel.


SQL-mód

Az SQL a "Structured Query Language (strukturált lekérdezőnyelv)" rövidítése, és utasításokat tartalmaz relációs adatbázisok frissítéséhez és adminisztrációjához.

In LibreOffice you do not need any knowledge of SQL for most queries, since you do not have to enter the SQL code. If you create a query in the query designer, LibreOffice automatically converts your instructions into the corresponding SQL syntax. If, with the help of the Switch Design View On/Off button, you change to the SQL view, you can see the SQL commands for a query that has already been created.

You can formulate your query directly in SQL code. Note, however, that the special syntax is dependent upon the database system that you use.

If you enter the SQL code manually, you can create SQL-specific queries that are not supported by the graphical interface in the Query designer. These queries must be executed in native SQL mode.

By clicking the Run SQL command directly icon in the SQL view, you can formulate a query that is not processed by LibreOffice and sent directly to the database engine.

Please support us!