Loki5ac:SQL-mallit

Radioamatööriwikistä
Versio hetkellä 6. tammikuuta 2006 kello 15.37 – tehnyt >Oh5xp (Siirretty Loki5ac:sta kyselymallit ja muokattu irralleen sopivaksi.)
(ero) ← Vanhempi versio | Nykyinen versio (ero) | Uudempi versio → (ero)
Siirry navigaatioon Siirry hakuun
Loki5ac:n SQL-ristikko

Tämän artikkelin tarkoitukena on tarjota pääasiassa vinkkejä ja esimerkkejä Loki5ac:n SQL-ristikon käyttöön. Muita Loki5ac:een liittyviä käyttövinkkejä löytyy OH2KXO:n Niksinurkasta.

Alla olevat esimerkkien esittelykappaleet on järjestetty siten että ensin on SQL-esimerkit, sen jälkeen vasta on tarkemmat kuvaukset eri funktioista. Tämä siksi että tarkemmat funktiokuvaukset menevät hyvin pitkälle ohjelmointitekniikkaan, eikä ole tarkoitus olettaa että kaikki Loki5ac:n ja SQL-ristikon käyttäjät ovat ohjelmoijia.

SELECT perusteita

SELECT on avainsana hakuja tehtäessä, sen jälkeen tulee mitkä tiedot lokista näytetään. Jos haluat kaikki tiedot näkyville voi käyttää tähteä.

Esimerkki bandi, mode ja DXCC hakuehtojen antamasta lopputuloksesta

Kun SQL-ristikon ehtokenttiin syötetään seuraavat tiedot

saadaan tulokseksi lauseke:

KenttäEhtoArvoFunktio
1Bandi=3.5 AND
2Mode=CW AND
3DXCC=230,14Napsauta Loki5ac sql-ristikko luo kysely painike.gif

SELECT * FROM loc4ac
WHERE
[Bandi] = '3.5'
AND
[Mode] = 'CW'
AND
DXCC = '230,14';

Ylläkirjoitettu hakukysely tarkoittaa samaa kuin: Valitse kaikista QSO'ista tässä lokissa ne joissa bandi on 3.5 ja mode CW. Kun klikataan painiketta <Suorita> lauseke suoritetaan ja alle SQL-ristikkoon ilmestyvät ne lokissa olevat QSO:t, jotka täyttävät nämä ehdot. Kenttien ympärille tulee hakasulut. Välttämättä niitä ei tarvita kuin kentissä, joiden nimessä on välilyöntejä (esim. [QSL saatu]).

Näytä vain valitut kentät

Esimerkki kenttien valinnasta

SQL-ristikossa on mahdollista näyttää vain valitut kentät. Tällöin kyselytekstikenttään on kirjoitettava kysely itse. Periaate on seuraava: SELECT kenttä1, kenttä2, kenttä3 .... Kenttien leveyksiin ei voi vaikuttaa kyselyn luontivaiheessa, mutta suorityksen jälkeen kenttien leveyksiä voi muuttaa vanhaan tapaan.

SELECT Asema, Päivä, Aika, Bandi, Mode
FROM loc4ac;

Tässä tulostuvat nuo viisi kenttää luetellussa järjestyksessä. Tässä ei ole käytetty []-sulkuja, koska kenttien nimissä ei ole välilyöntejä.

Erisuuruus

Erisuuruusmerkkejä voidaan käyttää esimerkiksi aikavalinnoissa ottamalla kentäksi DTfield, joka on muotoa VVVVKKPPTTMM (esim. 200512311930 tarkoittaa 31.12.2005 19:30). Lopusta alkaen voidaan korvata aikamääreitä nollilla, jos niitä ei haluta ottaa huomioon. Kun aikaa ei huomioida pannaan sen tilalle 4 nollaa, edellä olevan esimerkin mukaan siis 200512310000. Ohjelma osaa lisätä loppuun nollat, jos käytetään edellä olevassa kappaleessa kuvattua valintamenetelmää. Jos kysely kirjoitetaan käsin tekstikenttään, pitää nollat lisätä itse perään. (Nollia käytetty siksi että silloin on vuorokauden vaihto, jolloin QSO:ja ei tule väärältä päivältä.)

SELECT * FROM loc4ac WHERE DTfield >= 199911230000 AND DTfield < 200601010000

Näytetään ne lokin rivit, joissa pvm on suurempi tai yhtäsuuri kuin 23.11.1999 kello 00:00 ja pienempi kuin 1.1.2006 kello 00:00 (eli 23.11.1999 ja 31.12.2005 välillä pidetyt QSOt).

ORDER BY

Tuloksen lajittelu tapahtuu ORDER BY -avainsanoilla.

Esimerkki ORDER BY -kyselyn lopputuloksesta

SELECT * FROM loc4ac ORDER BY Bandi, Mode;

Järjestää ristikon niin, että QSO't ovat ensisijaisesti bandin ja toissijaisesti moden mukaan järjestyksessä.

LIKE

Kyselylauseissa voit käyttää merkkijonojen kohdalla korvaavia merkkejä: % tarkoittaa mitä merkkejä tahansa, kuinka monta tahansa. _ tarkoittaa yksi merkki, mikä tahansa. Näissä yhteyksissä = merkki on korvattava LIKE-avainsanalla.

SELECT * FROM loc4ac WHERE QTH LIKE '%Vaasa%';

Palauttaa kaikki QSOt, joiden QTH:sta löytyy Vaasa jostain kohdasta.

SELECT * FROM loc4ac WHERE Asema LIKE 'OH_MM';

Merkitsee kaikkia OH-asemia, joissa tunnus=MM ja piirinumero mikä tahansa.

Esimerkkikokoelma (yksinkertaiset)

Eri tapoja maiden listaukseen

Maan numeron saa helposti selville kun kirjaa prefiksin Asemakenttään, jolloin kenttien 'Nr' ja 'CQ' arvot kirjoitetaan peräkkäin pilkulla erotettuna, aivan kuten ne näkyvät tietokantaristikossa. Ne saa selville myös klikkaamalla pääikkunan työkalupalkissa olevaa Maapallo-kuvaketta, mikä avaa maaluettelon. Siellä näkyy mm. rivi Germany_EU ;DL _14__(230)_, jossa suluissa on maan numero (230) ja 14 on CQ.

SELECT Asema, Päivä, Aika, Bandi, Mode FROM loc4ac WHERE DXCC = '230,14';

Tässä tulostuvat nuo viisi kenttää kaikista saksalaistunnusten kanssa pidetyistä QSO'ista. (maa 230 ja CQ 14)

SELECT * FROM loc4ac WHERE DXCC LIKE "291,%";

Tässä tehty sama temppu USA -kusoille kuin yllä tehtiin Saksan kusoille. USA:n kusoissa CQ-arvot vaihtelevat tai ovat "?", tästä syystä jouduttiin määrittämään että DXCC:n CQ-osa saa olla mitä tahansa. (maa 291)

WHERE Asema LIKE '9A%';

Palauttaa kaikki QSOt, joiden asema kentän alussa on "9A", ts. kaikki Croatialaisten asemien kanssa pidetyt QSOt. (aseman prefix 9A)