Tietokannan peruskyselyt

Wikipediasta
(Ohjattu sivulta Hakukysely)
Siirry navigaatioon Siirry hakuun

Tietokannan peruskyselyt ovat kyselyitä, joilla voidaan hoitaa tietokantaan kohdistuvat haku-, lisäys- ja poistotoimenpiteet.

Kyselyille tyypilliset osa-alueet

[muokkaa | muokkaa wikitekstiä]
  1. Kentät
    • Käytössä vain hakukyselyssä, määrittelee mitkä kentät palautetaan tuloksen mukana
  2. Taulu
    • Taulu johon kysely vaikuttaa
  3. Arvot
    • Lisäys- ja muokkauskyselyssä tuotavat arvot sarakkeisiin
  4. Liitokset
    • Kyselyn palauttamien kenttien, ehdon tai järjestyslauseen vaatimat liitostaulut. Välillä liitos tarvitsee myös oman, erillisen ehdon
  5. Ehto
    • Ehto jolla rajataan kyselyn vaikutusta
  6. Järjestys
    • Järjestys mitä käytetään määrittämään tulosjoukon järjestys
  7. Rajoitus
    • Rajoituksella rajoitetaan tulosjoukon maksimikokoa

Hakukysely on ainoa kysely joka ei vaikuta tietokannan taulun sisältöön, vaan ainoastaan hakee tietoja taulusta sekä sen mahdollisista liitoksista. Hakukysely tarvitsee yleensä vähintään 1. ja 2. osa-alueen, ja monesti käyttää tehokkaasti hyväksi myös muita osa-alueita.

Esimerkki hakukyselystä SQL-kielellä:

SELECT a.name, b.city
FROM users AS a
LEFT JOIN cities AS b ON (a.cityId = b.id)
WHERE a.name LIKE 'a%'
ORDER BY a.name ASC;

Tämä esimerkin mukainen yksinkertainen hakukysely hakisi taulusta users kaikki a:lla alkavat nimet sekä relaatioavaimen mukaisen kaupungin järjestäen tuloksen nimen mukaan laskevaan järjestykseen.

Lisäys- ja muokkauskysely

[muokkaa | muokkaa wikitekstiä]

Lisäys- ja muokkauskyselyllä vaikutetaan tietokannan taulun sisältöön nimensä mukaisesti lisäävästi tai muokkaavasti. Kysely tarvitsee yleensä vähintään 2. ja 3. osa-alueen, ja muokkaustilanteessa myös ehdon sekä mahdollisen rajoituksen mikäli ei haluta vaikuttaa muokkauksella kaikkiin taulun tietueisiin.

Esimerkki lisäys- ja muokkauskyselystä SQL-kielellä:

# Lisäyskysely
INSERT INTO users (name, cityID)
VALUES ('Antonio Banderas', 1234);

# Muokkauskysely
UPDATE users
SET name = 'José Antonio Domínguez Bandera'
WHERE name = 'Antonio Banderas'
LIMIT 1;

Ensimmäisessä esimerkissä lisäsimme tauluun users Antonio Banderasin kaupunkitunnuksella 1234 joka vastaa Málagaa cities taulussa. Toisessa esimerkissä muokkasimme nimen oikeaksi nimeksi rajoittaen vaikutuksen mahdollisesti vain ensimmäiseen vastaantulevaan Antonio Banderakseen.

Poistokysely toimii periaatteessa aivan samoin kuin muokkauskysely, sillä erotuksella että tietojen muokkaamisen sijaan tiedot poistetaan taulusta. Kysely tarvitsee vähintään 2. osa-alueen, ja mikäli ei haluta poistaa kaikkia tietueita valitusta taulusta, myös ehdon sekä mahdollisen rajoituksen.

Esimerkki poistokyselystä SQL-kielellä:

DELETE FROM users
WHERE name = 'José Antonio Domínguez Bandera'
LIMIT 1;

Esimerkissä poistetaan tietokannan taulusta users ensimmäinen vastaantuleva tietue jonka name-kenttä sisältää arvon José Antonio Domínguez Bandera.

Näiden lisäksi monilla kyselykielillä on omia, erikoispiirteiden omaavia kyselyitä kuten yhdistämis- ja tyhjennyskysely. Näitä kyselytyyppejä ei kuitenkaan voi pitää tietokannan peruskyselyinä koska aivan kaikki tietokantakielet eivät näitä kyselytyyppejä tue.