SQL-kysely

Sisällysluettelo

SQL-kyselyt

SKJ-kassajärjestelmän tietokantana toimii Pervasive.SQL -tietokanta, joka käyttää 'ohjelmointikielenään' SQL:ää (SQL = Structured Query Language).

Perusoppaita SQL-kyselyihin löytyy täältä.

Koottuja sql-lauseita löytyy tiedostopalvelimen sql kansiosta.

Kyselyiden ajaminen eri ympäristöissä

Pervasive.SQL v8

Kyselyitä ajetaan seuraavasti:

  1. Avaa SQL Data Manager (Käynnistä->Suorita..-> sqldmgr).
  • Käynnistä->Ohjelmat (tai Kaikki ohjelmat..) > Pervasive.SQL v8 > SQL Data Manager.
  1. Valitse tietokanta, johon kyselyn haluat tehdä.
  2. Kirjoita tai liitä haluamasi kysely yläpuoleiseen laatikkoon ja valitse kyselyn ensimmäinen suoritettava rivi.
  3. Valitse Tools->Query->Run all SQL statements.

Pervasive.SQL v9 ->

Kyselyitä ajetaan seuraavasti:

  1. Avaa Pervasive Control Center. Vaihtoehtoisesti voit valita käynnistä->suorita ja kirjoittaa siihen komennoksi pcc.
  2. Valitse File -> New SQL Document. Voit klikata myös kohdasta 'Common tasks' -> 'Execute SQL command'.
  3. Valitse haluttu palvelin ja tietokanta.
  4. Kirjoita tai liitä haluamasi kysely yläpuoleiseen laatikkoon ja valitse kyselyn ensimmäinen suoritettava rivi.
  5. Valitse SQL -> Execute in Grid (myös F9) tai SQL -> Execute in Text (myös Shift+F9).

SKJSQL

Voit ajaa kyselyitä myös komentorivipohjaisella skjsql.exe:llä, jonka voi hakea osoitteesta http://testi.skj.fi/winskj/skjsql_update.exe.

  1. Käynnistä skjsql (Käynnistä->Suorita.. -> C:\WINSKJ\SKJSQL.EXE).
  2. Valitse käytettävä tietokanta kirjoittamalla 'use TIETOKANTA'.
  3. Kirjoita tai liitä haluamasi kysely ja paina Enter.

Ohjelmasta poistutaan kirjoittamalla 'exit'.

Toimittaessa paljon komentokehotteessa voi ajaa toistuvia sql-lauseita myös esim. seuraavasti:

skjsql TIETOKANTA "select count(*) from tuote"

tai tiedostosta

skjsql TIETOKANTA /f:TIEDOSTONIMI

.

Sql lauseissa voi käyttää puolipistettä ; tai risuaitamerkkiä (#) erottimena.
Tällöin tulee huolehtia, että ennen merkkiä on välilyönti.

Kyselyn parametreja voidaan välittää /P: parametrilla esim. sql.sql tiedostossa lause:

  • select sum(summa) from tuotemyy where asiakas=:asnro and pvm=:pvm ;
  • select max(summa) from tuotemyy where asiakas=:asnro and pvm=:pvm ;
    voidaan ajaa

    skjsql YRITYS {{/p:ASNRO=100 /p:pvm=$spvm /f:}}sql.sql

    $spvm korvautuu yyyymmdd päivällä ja $pvm korvautuu yyyy-mm-dd päiväyksellä. Päiväyksenä käytetään aina kuluvaa päivää.

Muut komentoriviparametrit:

Lue lisää: SKJSQL Komentoriviparametrit

  • /O:tiedosto vie tulokset tähän tiedostoon. Ajettaesssa /f parametrilla pelkkä /o ohjaa tuloksen näytölle.
  • /H tulostaa myös otsikot eli kenttien nimet tuloslistaan.
  • /K:toinenkanta, voidaan määrätä toinen tietokanta. Sql-lauseessa se pitää olla $apukanta$.
  • /A tulostiedosto jatketaan perään (append).
  • /L:logtiedosto vie login tähän tiedostoon, pelkkä /L: tuottaa login näytölle.
  • /C lukee sql-lauseen leikepöydältä.
  • /OF:arvo=muoto määrittelee muotoiluja (Output Format). Arvo voi olla alla olevan taulukon mukainen



MuotoSeliteEsimerkki

shortdate

päivän lyhyt muotoyyyymmdd tai dd.mm.yyyy

longtime

ajan pitkä muotohh:nn:ss
decimalsepdesimaali erotin
Alla mainituilla ei ole vaikutusta TimeStamp, Date, Time kenttiin

shorttime

ajan lyhyt muoto (ei vaikutusta time kentissä)

longdate

päivän mitkä muoto (ei vaikutusta date kentissä)

datesep

päivän erotin
skjsql YRITYS /of:decimalsep=. /of:shortdate=yyyymmdd /of:longtime=hhnnss "select tuote,saldo, muutospvm, muutosklo from varsaldo"




WinSKJ

WinSKJ:n alta voidaan ajaa SELECT kyselyitä (ei UPDATE / DELETE / ALTER jne.). Nämä kyselyt voidaan myös siirtää esim. Exceliin. Ajo tapahtuu valikosta tiedostojen selailu>export toiminnolla. SQL -lause kirjoitetaan ylös ja painetaan Suorita kysely. Kun tulokset halutaan viedä Exceliin, painetaan Vie tulokset. Jos halutaan viedä myös otsikot, ruksataan Vie myös otsikot.