Lær og bruk database


Start med databaser

Lag tabellar

Rediger tabellar

Relasjonar

Skjema

Skjema

Spørringar

Når du har registrert testdata i skjemaene dine vil du gjerne ha utskrifter og rapporter. For å få gode rapporter som har med den informasjonen som vi treng, brukar vi spørringar, utsnitt (visning,views) og enten rapportveiviser eller lager våre eigne rapportar ved hjelp av tekstbehandlaren eller rekneark.

I denne rettleiinga kjem eg ikkje til å komme inn på korleis du lagar eigne raportar i writer og rekneark - kun ved bruk av spørringar, utsnitt og rapportvegvisaren.

Spørring med data frå ein tabell

For dei som tidlegare har brukt MS Access ser dette velkjent ut, men dersom du skal lage litt meir avanserte spørringar vil du for oppdage at her er store forskjellar.

Klikk på spørringar og velg Lag spørring i utformingsvisning Vi skal først lage ei enkel spørring der vi lagar ei bokliste sortert på FORFATTERETTERNAVN og deretter på BOKTITTEL.

Klikk på BOK og velg "Legg til". Lukk deretter denne dialogboksen. Vi kan legge til felt på 2 måtar:

  1. Vi kan ta feltet vi skal ha og dra det ned med musa - slipp når nedrullingsknappen forsvinn.
  2. Klikk på nedrullingsknappen under felt og velg feltet

Ta med felta FORFATTER_ETTERNAMN, FORFATTER_FORNAMN pg TITTEL, sorter deretter på FORFATTER_ETTERNAMN og på TITTEL. Spørringa skal sjå slik ut før vi køyrer den:

Spørring bokliste

Øverst i vinduet har du to rader med knapper - Nest bortest i øverste rada har du ein knapp med ei grønn hake - trykk på den for å køyre spørringa. Lagre den som "Bokliste Sortert". Lukk og start "Lag spørring i utformingsvisning" igjen.

Spørring med data frå fleire tabellar

Vi skal no lage ei adresseliste over alle låntakarane. Då treng vi tabellane Låntakar og Postadresse. Legg til desse og lukk dialogen for "Legg til tabeller".

Lag no ei spørring som ser slik ut:

Adresseliste spørring

Avgrensing i spørringane

  • Ynskjer vi t.d. å berre vise dei som bur i Volda kan vi legge inn Volda som kriterium under Poststad eller 6100 under Postnummer.
  • Vil du ha berre dei som har etternamn på O - legg du LIK O% under kriterium for Etternamn.
  • % er wildcard for etterfølgande tegn, er det eit tegn du er usikker på brukar du ?
  • Du kan bruke engelske spørreuttrykk - dei vert oversatt til norsk (bokmål eller nynorsk), men skriv du bokmål i nynorskversjonen eller nynorsk i bokmålsversjonen får du probelm

Tabellen nedanfor er henta frå hjelpa i OpenOffice og viser kva avgrensingar du kan bruke i spørringane.

OpenOffice.org command

SQL command

Meaning

Condition is satisfied if...

IS EMPTY

IS NULL

is null

... The field name is empty. For Yes/No fields with three states, this command automatically queries the undetermined state (neither Yes nor No).

IS NOT EMPTY

IS NOT NULL

is not empty

... the field name is not empty.

LIKE

(placeholder * for any number of characters

placeholder ? for exactly one character)

LIKE

(% placeholder for any number of characters

Placeholder _ for exactly one character)

is an element of

... 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 OpenOffice.org interface.

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

NOT LIKE

NOT LIKE

Is not an element of

... the field name does not contain the specified expression.

BETWEEN x AND y

BETWEEN x AND y

falls within the interval [x,y]

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

NOT BETWEEN x AND y

NOT BETWEEN x AND y

Does not fall within the interval [x,y]

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

IN (a; b; c...)

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

IN (a, b, c...)

contains a, b, c...

... 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 an Or link. The expressions a, b, c... can be either numbers or characters

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

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

does not contain a, b, c...

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

= TRUE

= TRUE

has the value True

... the field name has the value True.

= FALSE

= FALSE

has the value false

... the field name has the value false.

Spørring som finn ut kva bøker som er utlånte på ein spesiell dag

Lag ei ny spørring i utformingsvisning - ta med tabellane BOK og BOKLAAN. Spørringa kan først sjå slik ut - då viser den alle utlån og innleveringar:

Alle utlånte og innleverte bøker

Vi ynskjer no først å avgrense slik at vi kun ser dei som ikkje er innleveret. Det gjer vi ved å skrive ER TOM under kriterium på Innleveringsdato. For å finne ut kva for bøker som vart lånt ut ein dato - set vi datoen som kriterium under Utlånsdato t.d. 28.05.06. Dersom du vil at brukaren skal skrive inn datoen når spørringa køyrast - set du eit ? i feltet for kriterium under dato. Lagre spørringa med ein dato i kriteriumsfeltet for utlånsdato - lagre som Utlånte bøker 28 mai

Kor mange bøker vart lånt ut 28. mai?

Lukk spørringane dine - du ser no alle spørringane dine med namn - høgreklikk på den siste vi lagde og velg Lag som utsnitt (på engelsk: View) Du får då opp ein boks som det står tabell1 i - endre dette til t.d. Utlånte bøker.

Når du no skal lage ei ny spørring vil du sjå at den siste spørringa di som du lagra som utsnitt er komen inn blant tabellane. Det vil seie at vi kan lage ei spørring basert på ei anna spørring. Velg denne og Lukk vinduet.

Hent ned feltet Utlånsdato to gongar - under funksjon vel du på den første gruppe og på den andre Antall. Køyr spørringa og du får opp kor mange bøker som var lånt ut på denne datoen. Om du ikkje hadde avgrensa på data ville du fått opp dei ulike utlånsdatoane og kor mange bøker som var utlånt på dei ulike dagane.

Litt forskjellig "småsnacks"

Concat

Av og til har vi behov for å kunne vise fleire felt i t.d. ein listboks i eit skjema. For å få til det må vi lage ei concat spørring som vil brukar i listboksen. Desse bør du lage ved hjelp av "Lag spørring i SQL visning". For å slå saman t.d. FORNAMN og ETTERNAMN frå LÅNTAKAR-tabellen lagar vi ei slik spørring:

concat

Pass på at SQL-knappen er "inntrykt" når du køyrer spørringa - elles verkar den ikkje.

For ordens skuld - setninga som eg skreiv inn var: SELECT ("FORNAMN"|| ' '|| "ETTERNAMN") as NAMN, "KUNDENUMMER" FROM "LAANTAKER" "LAANTAKER" ORDER BY "ETTERNAMN" ASC

Rekneoperasjonar

Dersom felta er definert som tal (heiltal, desimalta e.l.) kan du bruke vanlege rekneoperasjonar som + - / og *. Dette kan du bruke frå utformingsvisning t.d. om du har felta Pris og Antall kan du finne Total ved å skrive; Pris*Total pass berre på at du gir feltet eit Alias. Hentar du felta frå ulike tabellar kan det vere lurt å bruke tabellnamnet slik:Vare.Pris*Bestilling.Antall.

Rapportar

Rapportvegvisaren er relativt enkel - du kan ikkje lage rapportar basert på meir enn ei spørring eller ein tabell. Derfor er det viktig at du kan lage spørringar som tek med den informasjonen som du vil ha med i rapporten.

Eg anbefaler deg å prøve deg litt fram.

Til slutt skal eg vise ein makro for å lage ein meny