Pomoč LibreOffice 24.8
Pogled Oblikovanje poizvedbe omogoča ustvarjanje in urejanje poizvedbe zbirke podatkov.
Večina zbirk podatkov uporablja poizvedbe za filtriranje ali razvrščanje tabel zbirke podatkov za prikaz zapisov. Pogledi omogočajo enako mero funkcionalnosti kot poizvedbe, vendar na strani strežnika. Če se vaša zbirka podatkov nahaja na strežniku, ki podpira poglede, lahko uporabite te poglede za filtriranje zapisov na strežniku in tako skrajšate čas izpisovanja.
Če izberete ukaz Ustvari pogled v zavihku Tabele dokumenta zbirke podatkov, vidite okno Oblikovanje pogleda, ki je podobno oknu Oblikovanje poizvedbe in je opisano tukaj.
Postavitev okna Oblikovanje poizvedbe je shranjena z ustvarjenim povpraševanjem, z ustvarjenim pogledom pa je ni mogoče shraniti.
Za oblikovanje poizvedbe kliknite ikono Poizvedbe v dokumentu zbirke podatkov, zatem kliknite Ustvari poizvedbo v oblikovalnem pogledu.
Spodnje podokno okna Pogleda oblikovanja je tam, kjer določite poizvedbo. Če želite definirati poizvedbo, določite imena polj zbirke podatkov, ki bodo vključena, in pogoje za prikaz polj. Za prerazporeditev stolpcev v spodnjem podoknu Oblikovanja pogleda povlecite glavo stolpca na novo mesto ali pa izberite stolpec in pritisnite tipki +smerna tipka.
Na vrhu poizvedbe okna Oblikovalni pogled so prikazane ikone vrstice Oblikovanje poizvedbe in vrstice Oblikovanje.
Če želite preizkusiti poizvedbo, dvokliknite ime poizvedbe v dokumentu zbirke podatkov. Rezultat poizvedbe je prikazan v tabeli, ki je podobna Pogledu vira podatkov. Upoštevajte, da je prikazana tabela le začasna.
| Tipka | Funkcija | 
|---|---|
| F4 | Predogled | 
| F5 | Zaženi poizvedbo | 
| F7 | Dodaj tabelo ali poizvedbo | 
Ko boste prvič odprli oblikovanje poizvedbe, se odpre pogovorno okno, v katerem morate najprej izbrati tabelo, ki bo osnova za poizvedbo.
Dvokliknite polja, ki jih s tem dodate poizvedbi. Povlecite in spustite, če želite definirati relacije.
Med oblikovanjem poizvedbe ne morete spreminjati izbranih tabel.
Če želite tabelo odstraniti iz Oblikovalnega pogleda, kliknite zgornjo obrobo okna tabele in odprite kontekstni meni. Uporabite lahko ukaz Izbriši in tako odstranite tabelo iz Oblikovalnega pogleda. Druga možnost je, da pritisnete brisalko.
Spremenite lahko velikost in razporedite tabele glede na svoje nastavitve. Če želite premakniti tabele, povlecite njihov zgornji rob do želenega mesta. Povečajte ali zmanjšajte prikazano velikost tabele, tako da se s kazalcem miške postavite na rob ali v kot tabele in ga povlečete, dokler ne doseže želene velikosti.
Če obstajajo podatkovne relacije med imenom polja v eni tabeli in med imenom polja v drugi tabeli, lahko uporabite te relacije za svojo poizvedbo.
Če imate npr. preglednico za artikle, ki jih določa številka artikla, in preglednico za stranke, kamor zapisujete vse artikle, ki jih stranka naroči, in pri tem uporabite ustrezne številke artikla, potem obstaja relacija med podatkovnima poljema »številka artikla«. Če zdaj želite ustvariti poizvedbo, ki vrne vse artikle, ki jih je stranka naročila, morate dobiti podatke iz dveh preglednic. Če želite to storiti, morate LibreOffice povedati, kakšen odnos obstaja med podatki v teh dveh preglednicah.
To storite na sledeč način: kliknite ime polja v tabeli (npr. ime polja »Številka elementa« iz tabele Stranke), zadržite gumb miške in nato povlecite ime polja do imena polja druge tabele (»Številka elementa« iz tabele Element). Ko spustite gumb miške, se prikaže črta, ki povezuje ti polji iz oken. Ustrezni pogoj, da mora biti vsebina teh polj identična, se vstavi v poizvedbo SQL.
Ustvarjanje poizvedbe, ki temelji na več sorodnih delovnih listih, je možno le, če uporabljate LibreOffice kot vmesnik za relacijsko zbirko podatkov.
V poizvedbi ne morete dostopati do tabel iz različnih zbirk podatkov. Poizvedbe, ki vključujejo več tabel, lahko ustvarite le znotraj ene zbirke podatkov.
Če dvokliknete črto, ki povezuje dve povezani polji ali prikličete menijski ukaz Vstavi – Nova relacija, lahko določite vrsto povezave v pogovornem oknu Relacije.
Lahko tudi pritiskate tabulator, dokler ni izbrana črta, in potem pritisnete tipki dvigalka+F10 za prikaz kontekstnega menija, kjer izberete ukaz Uredi. Nekatere zbirke podatkov podpirajo le podmnožico možnih vrst spojev.
Če želite izbrisati relacijo med dvema tabelama, kliknite povezovalno črto in nato pritisnite brisalko.
Druga možnost je, da izbrišete posamezne vnose v Polja, ki so vključena v pogovornem oknu Relacije. Ali pa pritisnite tabulator in ga ne izpustite, dokler ni poudarjeno prikazan povezovalni vektor, nato pritisnite tipki dvigalka+F10, da odprete kontekstni meni, in izberite ukaz Izbriši.
Izberite pogoje, da definirate poizvedbo. Vsak stolpec oblikovalne tabele sprejme podatkovno polje za poizvedbo. Pogoji v eni vrstici so povezani z logičnim AND.
Najprej izberite vsa imena polj iz tabel, ki jih želite dodati poizvedbi. To lahko storite bodisi s povleci in spusti, bodisi z dvoklikom imena polja v oknu tabele. Z metodo povleci in spusti uporabite miško, da povlečete ime polja iz okna tabele v spodnje območje okna oblikovanja poizvedbe. Ko storite to, se lahko odločite, kateremu stolpcu v oknu oblikovanja poizvedbe boste dodali polje. Ime polja lahko izberete tudi z dvoklikom. Tako bo dodan naslednjemu prostemu stolpcu v oknu oblikovanja poizvedbe.
Če želite odstraniti ime polja iz poizvedbe, kliknite glavo stolpca polja in izberite ukaz Izbriši v kontekstnem meniju stolpca.
Če želite shraniti poizvedbo, uporabite ikono Shrani v standardni vrstici. Vidite pogovorno okno, ki povpraša za vnos imena poizvedbe. Če zbirka podatkov podpira sheme, lahko vnesete tudi shemo.
Vnesite ime sheme, ki je dodeljena poizvedbi ali pogledu tabele.
Vnesite ime poizvedbe ali pogleda tabele.
Če želite filtrirati podatke za poizvedbo, nastavite želene pogoje v spodnjem območju okna oblikovanja poizvedbe. Na voljo so naslednje možnosti:
Vnesite ime podatkovnega polja, na katerega se sklicuje poizvedba. Vse nastavitve v vrsticah možnosti filtra se nanašajo na to polje. Če tukaj aktivirate celico s klikom miške, boste zagledali puščični gumb, ki vam omogoča izbor polja. Možnost »Ime tabele.*« izbere vsa podatkovna polja, kar pomeni, da bodo vsi navedeni pogoji veljali za vsa polja tabele.
Določa vzdevek. Ta vzdevek bo naveden v poizvedbi namesto imena polja, kar omogoči rabo uporabniško določenih oznak stolpcev. Če ima podatkovno polje npr. ime StDl, namesto tega imena pa bi raje videli, da se v poizvedbi pojavi ime StDela, kot vzdevek vstavite StDela.
V izjavi SQL so vzdevki definirani na sledeč način:
SELECT stolpec AS vzdevek FROM tabela.
Primer:
SELECT "PtNo" AS "PartNum" FROM "Parts"
Ustrezna tabela zbirke podatkov izbranega podatkovnega polja je navedena tukaj. Če aktivirate to celico s klikom miške, se bo pojavila puščica, ki vam omogoča, da izberete drugo tabelo za trenutno poizvedbo.
Če kliknete to celico, lahko izbirate med možnostmi razvrščanja: naraščajoče, padajoče in nerazvrščeno. Polja z besedilom bodo razvrščena po abecednem redu, številska polja pa po številčnem. Pri večini zbirk podatkov lahko skrbniki nastavijo možnosti razvrščanja na ravni zbirke podatkov.
Če za podatkovno polje označite lastnost Vidno, bo to polje prikazano v končni poizvedbi. Če uporabljate podatkovno polje samo za določitev pogoja ali izvedbo izračuna, ga ni potrebno prikazati.
Določa prvi pogoj, po katerem bo filtrirana vsebina podatkovnih polj.
Tukaj lahko vstavite dodaten pogoj za filtriranje, v vsaki vrstici enega. Večkratni pogoji v enem stolpcu bodo povezani z logičnim ALi (OR).
Če želite vstaviti filter na osnovi funkcije, lahko uporabite tudi kontekstni meni glave vrstic v spodnjem območju okna oblikovanja poizvedbe:
Funkcije, ki jih je možno tukaj izvesti, so odvisne od ponujenih v pogonu zbirke podatkov.
Če delate z vdelano zbirko podatkov HSQL, vam seznamsko polje v vrstici Funkcija ponuja naslednje možnosti:
| Možnost | SQL | Učinek | 
|---|---|---|
| Brez funkcije | Nobena funkcija se ne bo izvedla. | |
| Povprečje | AVG | Izračuna aritmetično sredino polja. | 
| Števec | COUNT | Določi število zapisov v tabeli. Prazna polja so lahko všteta (a) ali pa ne (b). a) COUNT(*): Zvezdica je argument za preštevanje vseh zapisov v tabeli. b) COUNT(stolpec): Če kot argument navedete ime polja, bodo prešteti samo zapisi tistih polj, v katerih podano ime polja vsebuje neko vrednost. Polja z vrednostjo Null (t.j. prazna polja, ki ne vsebujejo besedilne ali številske vrednosti) ne štejejo. | 
| Največ | MAX | Ugotovi najvišjo vrednost zapisa za to polje. | 
| Najmanj | MIN | Ugotovi najnižjo vrednost zapisa za to polje. | 
| Vsota | SUM | Izračuna vsoto vrednosti zapisov povezanih polj. | 
| Združi | GROUP BY | Skupine vršijo poizvedbe podatkov glede na ime izbranega polja. Funkcije se izvajajo glede na izbrane skupine. V SQL ta možnost ustreza stavku GROUP BY. Če se doda pogoj, se ta vnos pojavi v izjavi SQL kot HAVING. | 
Klice funkcij lahko vnesete tudi neposredno v izjavo SQL. Skladnja je:
SELECT FUNCTION(stolpec) FROM tabela.
Klic funkcije za izračun vsote v SQL je npr.:
SELECT SUM("Cena") FROM "Artikel".
Z izjemo funkcije Združi so zgornje funkcije t.i. agregatne funkcije. To so funkcije, ki izračunajo podatke za izdelavo povzetkov iz rezultatov. Dodatne funkcije, ki niso navedene v seznamskem polju, so tudi možne. To je odvisno od dejanskega sistema zbirke podatkov, ki ga uporabljate, in od trenutnega funkcionalnosti gonilnika Base za povezavo s tem sistemom zbirke podatkov.
Če želite uporabiti druge funkcije, ki niso na voljo v seznamskem polju, jih morate vnesti ročno v Polje.
Vzdevke lahko dodelite tudi klicem funkcij. Če poizvedbe ne želite prikazati v glavi stolpca, vnesite želeno nadomestno ime pod Vzdevek.
Ustrezna funkcija v SQL-izjavi se glasi:
SELECT FUNCTION() AS vzdevek FROM tabela
Primer:
SELECT COUNT(*) AS števec FROM "Element"
Če zaženete to funkcijo, ne morete vstaviti nobenih dodatnih stolpcev za poizvedbo razen argumenta za funkcijo »Group«.
Primeri
V naslednjem primeru se poizvedba izvaja v dveh tabelah: tabeli »Element« s poljem »Št_elementa« in tabeli »Dobavitelji« s poljem »Ime_dobavitelja«. Poleg tega imata obe tabeli skupno ime polja »Št_dobavitelja«.
Da bi ustvarili poizvedbo, ki vsebuje vse dobavitelje, ki dostavljajo več kot tri elemente, so potrebni naslednji koraki.
Tabeli »Element« in »Dobavitelji« vstavite v oblikovanje poizvedbe.
Povežite polji »Št_dobavitelja« teh tabel, če še ne obstaja tovrstna relacija.
Dvokliknite polje »Št_elementa« iz tabele »Element«. Prikažite vrstico Funkcija, tako da uporabite kontekstni meni in izberete funkcijo Preštej.
Vstavite >3 kot pogoj in izključite polje Vidno.
Dvokliknite polje »Ime_dobavitelja« v tabeli »Dobavitelji« in izberite funkcijo Združi.
Zaženite poizvedbo.
Če polji »cena« (za posamezno ceno artikla) in »Št_dobavitelja« (za dobavitelja artikla) v tabeli »Element« obstajata, lahko dobite povprečno ceno elementa, ki ga ponuja dobavitelj, z naslednjo poizvedbo:
Tabelo »Element« vstavite v oblikovanje poizvedbe.
Dvokliknite polji »Cena« in »Št_dobavitelja«.
Omogočite vrstico Funkcija in izberite funkcijo Povprečje iz polja »Cena«.
Lahko vstavite tudi »Povprečje« v vrstici za ime vzdevka (brez narekovajev).
Izberite Združi za polje »Št_dobavitelja«.
Zaženite poizvedbo.
Na voljo so naslednji ukazi in simboli kontekstnega menija:
Pokaže ali skrije vrstico za izbor funkcij.
Pokaže ali skrije vrstico za ime tabele.
Pokaže ali skrije vrstico za ime vzdevka.
S poizvedbo prikliče samo različne vrednosti. To velja za zapise, ki vsebujejo podatke, ki se pojavijo večkrat v izbranih poljih. Če je ukaz Različne vrednosti aktiviran, poizvedba vrne samo en zapis (DISTINCT), v nasprotnem primeru vrne vse zapise, ki ustrezajo pogojem poizvedbe (ALL).
Če se npr. ime »Kovač« pojavi večkrat v vaši zbirki naslovov, lahko izberete ukaz Različne vrednosti in s tem v poizvedbi določite, da se bo ime »Kovač« pojavilo samo enkrat.
Kombinacija vrednosti iz vseh polj za poizvedbo, ki vključuje več polj, mora biti edinstvena, tako da se rezultat lahko oblikuje iz posameznega zapisa. Recimo, da so v vašem adresarju enkrat »Novak v Kranju« in dvakrat »Novak v Kopru». Z ukazom Različne vrednosti bo poizvedba uporabila polji »priimek« in »mesto« ter vrnila kot rezultat poizvedbe enkrat »Novak v Kranju« in enkrat »Novak v Kopru«.
V jeziku SQL ta ukaz ustreza predikatu DISTINCT.
Omogoča omejitev največjega števila zapisov, ki jih vrne poizvedba.
Če ste dodali Limit (angl. meja), boste dobili največ toliko vrstic, kot ste jih navedli s številom. Sicer boste videli vse zapise, ki ustrezajo pogojem poizvedbe.
Kadar oblikujete filtrirne pogoje, so vam na voljo različni operatorji in ukazi. Ne glede na relacijski operator obstajajo določeni SQL-ukazi, ki izvršujejo poizvedbe za vsebino polj zbirke podatkov. Če uporabite te ukaze v skladnji LibreOffice, LibreOffice samodejno pretvori le-te v ustrezno skladnjo SQL prek notranjega razčlenjevalnika. SQL-ukaz lahko vnesete tudi neposredno in obidete notranji razčlenjevalnik. Naslednje tabele podajajo pregled operatorjev in ukazov:
| Operator | Pomen | Pogoj je izpolnjen, če ... | 
|---|---|---|
| = | enako | ... je vsebina polja enaka označenemu izrazu. Operator = ne bo prikazan v poizvedbenih poljih. Če vnesete vrednost brez operatorja, bo samodejno uporabljen operator =. | 
| <> | ni enako | ... vsebina polja ne ustreza določenemu izrazu. | 
| > | večje kot | ... je vsebina polja večja kot navedeni izraz. | 
| < | manjše kot | ... je vsebina polja manjša kot navedeni izraz. | 
| >= | večje ali enako | ... je vsebina polja večja kot ali enaka določenemu izrazu. | 
| <= | manjše ali enako | ... je vsebina polja manjša kot ali enaka določenemu izrazu. | 
| ='Ga.' | Vrne imena polj z vsebino polja »Ga.« | 
| <'2001-01-10' | Vrne datume pred 10. januarjem 2001 | 
| LIKE 'g?be' | Vrne zapise z vsebino polja, kot je »gobe« in »grbe«. | 
| LIKE 'S*' | Vrne zapise z vsebinami polj, kot je »Slovenija«. | 
| BETWEEN 10 AND 20 | Vrne zapise z vsebino polja med vrednostma 10 in 20 (polja so lahko polja z besedilom ali številska polja). | 
| IN (1; 3; 5; 7) | Vrne zapise z vrednostmi 1, 3, 5, 7. Če ime polja vsebuje številko elementa, lahko npr. ustvarite poizvedbo, ki vrne element z določeno številko. | 
| NOT IN ('Kovač') | Vrne zapise, ki ne vsebujejo »Kovač«. | 
Ubežno zaporedje za Like (kot): {escape 'ubežni-znak'}
SELECT * FROM Item WHERE ItemName LIKE 'The *%' {escape '*'}
Primer vrne vse vnose, kjer se ime elementa začne s 'Ta *'. To pomeni tudi, da lahko iščete tudi znake, ki bi jih drugače tolmačili kot ograde, kot so *, ?, _, % ali pika.
Ubežno zaporedje za Outer Join (zunanji spoj): {oj outer-join}
SELECT Article.* FROM {oj item LEFT OUTER JOIN orders ON item.no=orders.ANR}
Če želite izvršiti poizvedbo vsebine besedilnega polja morate postaviti izraz v enojna narekovaja. Razlika med velikimi črkami in malimi črkami je odvisna od vrste uporabljene zbirke podatkov. LIKE po definiciji ne razlikuje velikih in malih črk (čeprav nekatere zbirke podatkov tega ne interpretirajo tako strogo).
Datumska polja so predstavljena kot #Datum#, da jih jasno prepoznate kot datume. Konstante datuma, časa in datuma/časa so lahko v privzeti skladnji SQL2 ali ubežni skladnji SQL.
| Element vrste Datum | Ubežna skladnja SQL #1 – morda je zastarela | Ubežna skladnja SQL #2 | Skladnja SQL2 | 
|---|---|---|---|
| Datum | {D'YYYY-MM-DD'} | {d 'YYYY-MM-DD'} | 'YYYY-MM-DD' | 
| Čas | {D'HH:MM:SS'} | {t 'HH:MI:SS[.SS]'} | 'HH:MI:SS[.SS]' | 
| Datum s časom | {D'YYYY-MM-DD HH:MM:SS'} | {ts 'YYYY-MM-DD HH:MI:SS[.SS]'} | 'YYYY-MM-DD HH:MI:SS[.SS]' | 
SELECT {d '1999-12-31'} FROM world.years
SELECT * FROM mytable WHERE years='1999-12-31'
Vsi datumski izrazi (datumski nizi) morajo biti v enojnih narekovajih (podrobnosti si oglejte v referenčnih virih za določeno zbirko podatkov in konektor, ki ju uporabljate).
Za izvrševanje poizvedb po poljih Da/Ne uporabite naslednjo skladnjo za tabele dBASE:
| Stanje | Pogoji poizvedbe | Primer | 
|---|---|---|
| Da | Za tabele dBASE: ni enako nobeni podani vrednosti | =1 vrne vse zapise, kjer ima polje Da/Ne stanje »Da« ali »Ne« (izbrano v črni). | 
| Ne | . | =0 vrne vse zapise, za katere ima polje Da/Ne stanje »Da« ali »Ne« (ni izbora). | 
| Null | IS NULL | IS NULL vrne vse zapise, za katere polje Da/Ne nima nobenega od stanj Da ali Ne (izbrano v sivi). | 
Skladnja je odvisna od vrste uporabljene zbirke podatkov. Upoštevajte tudi, da lahko polja Da/Ne definirate različno (samo dve stanji namesto treh).
Poizvedbe parametra uporabnikom omogočajo vnos vrednosti med izvajanjem. Te vrednosti se uporabljajo s pogoji za izbor zapisov, ki bodo prikazani. Vsaka takšna vrednost je povezana z imenom parametra, po katerem je med izvedbo poizvedbe uporabnik povprašan.
Imena parametrov predhaja dvopičje tako v pogledu oblikovanja kot v SQL-pogledu poizvedbe. To lahko uporabite kadar koli se lahko prikaže vrednost. Če naj se ista vrednost pojavi večkrat v poizvedbi, se uporablja isto ime parametra.
Enostaven primer: ko uporabnik vnese vrednost, za katero išče enakost, enostavno vnese ime parametra z njegovim prehajajočim dvopičjem v vrstico Pogoj. V načinu SQL je slednje treba vnesti kot WHERE "Polje" = :Ime_parametra
Imena parametrov ne smejo vsebovati znakov <presledek>`!"$%^*()+={}[]@'~#<>?/,. Prav tako ne smejo biti enaka imenom polj ali rezerviranim besedam za SQL. Lahko so enaka vzdevkom.
Uporabna konstrukcija za izbiranje zapisov glede na podlagi delov besedila iz vsebine besedilnih polj je dodajanje skritega stolpca s pogojem "LIKE '%' || :Del_polja || '%'". Tako izberete zapise z natančnim ujemanjem. Če ne želite razlikovati med velikimi in malimi črkami, je možna rešitev s poljem LOWER (Ime_polja) in pogojem LIKE LOWER ( '%' || :Del_polja || '%' ). Pazite na presledke v pogoju; če jih izpustite, bo razčlenjevalnik SQL interpretiral celoten pogoj kot iskani niz. V SQL-načinu bi to zapisali tako: LOWER ( "Ime_polja" ) LIKE LOWER ( '%' || :Del_polja || '%' ).
Poizvedbe parametra se uporabljajo tudi kot vir podatkov za podobrazce, ki omogočajo uporabniku omejiti prikazane zapise.
Pogovorno okno Vnos parametra vas povpraša po vnosu vrednosti parametrov. Vnesite vrednost za vsako spremenljivko v poizvedbi in potrdite, tako da kliknete V redu ali pritisnete vnašalko.
Vrednosti, ki jih vnese uporabnik, so lahko sestavljene iz poljubnega znaka, ki je dovoljen za SQL za relevanten pogoj; to je lahko odvisno od sistema zbirke podatkov.
Uporabnik lahko uporabi nadomestne znaka SQL »%« (poljuben niz) in »_« (poljuben znak) kot dela vrednosti za pridobivanje zapisov s kompleksnejšimi pogoji.
SQL pomeni »Structured Query Language« (jezik za strukturirano poizvedovanje) in opisuje navodila za posodabljanje in upravljanje relacijskih zbirk podatkov.
V LibreOffice za večino poizvedb ne potrebujete nikakršnega predznanja o SQL, saj vam ni treba vnesti kode SQL. Če ustvarite poizvedbo z oblikovalcem poizvedbe, LibreOffice samodejno pretvori vaša navodila v ustrezno skladnjo SQL. Če s pomočjo gumba Vključi/izključi oblikovalni pogled preidete na pogled SQL, lahko vidite ukaze SQL za poizvedbo, ki je že bila ustvarjena.
Svojo poizvedbo lahko oblikujete neposredno v kodi SQL. Vendar upoštevajte, da je posebna skladnja odvisna od sistema zbirk podatkov, ki ga uporabljate.
Če ročno vnesete kodo SQL, lahko ustvarite poizvedbe, značilne za SQL, ki jih grafični vmesnik v Oblikovanju poizvedbe ne podpira. Te poizvedbe morajo biti izvedene v izvirnem načinu SQL.
Ko kliknete ikono Neposredno zaženi ukaz SQL v SQL-pogledu, lahko ustvarite poizvedbo, ki se ne obdela v LibreOffice, ampak se pošlje neposredno mehanizmu zbirke podatkov.