Tietokannan peruskyselyt

Wikipediasta
(Ohjattu sivulta Lisäyskysely)
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[muokkaa | muokkaa wikitekstiä]

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[muokkaa | muokkaa wikitekstiä]

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.

Katso myös[muokkaa | muokkaa wikitekstiä]