Taulukoiden tai indeksien luominen tai muokkaaminen määrityskyselyllä

Tärkeää: Tämä on artikkeli on käännetty koneellisesti. Lue vastuuvapauslauseke. Tämän artikkelin englanninkielinen versio on täällä .

Voit luoda ja muokata taulukoita, rajoitteita, indeksejä ja yhteyksiä kirjoittamalla määrityskyselyitä SQL-näkymässä.

Tässä artikkelissa esitellään määrityskyselyt ja kerrotaan, miten niillä voi luoda taulukoita, rajoitteita, indeksejä ja yhteyksiä. Lisäksi artikkelissa on tietoja, jotka auttavat päättämään, milloin määrityskyselyitä kannattaa käyttää.

Huomautus: Näitä toimia ei voi tehdä WWW-tietokannassa.

Tämän artikkelin sisältö

Yleiskatsaus

Voit luoda tai muokata taulukon

Indeksin luominen

Rajoituksen tai suhteen luominen

Yleistä

Määrityskysely ei hae tietoja kuten muut kyselyt. Sen sijaan määrityskysely luo, muokkaa tai poistaa tietokantaobjekteja DDL-kielen komennoilla.

Huomautus: DDL (Data Definition Language) -kieli on SQL (Structured Query Language) -kielen osa.

Määrityskyselyt ovat hyvin käteviä. Voit poistaa ja luoda uudelleen tietokannan rakenteen yksinkertaisesti suorittamalla kyselyitä. Määrityskyselyiden käyttöä kannattaa harkita, jos osaat käyttää SQL-lauseita ja haluat poistaa sekä luoda uudelleen tiettyjä taulukoita, rajoitteita, indeksejä tai yhteyksiä.

Varoitus: Tietokantaobjektien muuttamiseen määrityskyselyillä sisältyy riskejä, sillä toiminnot suoritetaan ilman, että käyttäjää pyydetään vahvistamaan ne erillisissä valintaikkunoissa. Jos teet virheen, tietoja voi kadota tai voit tehdä tahtomattasi muutoksia taulukoiden rakenteeseen. Kun muutat tietokantaobjekteja määrityskyselyillä, ole varovainen. Jos et itse ole vastuussa käyttämäsi tietokannan ylläpidosta, ota yhteyttä tietokannan järjestelmänvalvojaan ennen määrityskyselyn suorittamista.

Tärkeää: Varmuuskopioi käsiteltävät taulukot ennen määrityskyselyn suorittamista.

DDL-avainsanat

Avainsana

Käyttö

CREATE

Luo indeksi tai taulukko, jota ei vielä ole olemassa.

ALTER

Muokkaa aiemmin luotua taulukkoa tai saraketta.

DROP

Poista aiemmin luotu taulukko, sarake tai rajoite.

ADD

Lisää taulukkoon sarake tai rajoite.

COLUMN

Käytä avainsanan ADD, ALTER tai DROP kanssa.

CONSTRAINT

Käytä avainsanan ADD, ALTER tai DROP kanssa.

INDEX

Käytä avainsanan CREATE kanssa.

TABLE

Käytä avainsanan ALTER, CREATE tai DROP kanssa.

Sivun alkuun

Taulukon luominen tai muokkaaminen

Voit luoda taulukon CREATE TABLE -komennolla. CREATE TABLE -komennon syntaksi on seuraava:

CREATE TABLE table_name 
(field1 type [(size)] [NOT NULL] [index1]
[, field2 type [(size)] [NOT NULL] [index2]
[, ...][, CONSTRAINT constraint1 [, ...]])

CREATE TABLE -komennon ainoat pakolliset elementit ovat itse CREATE TABLE -komento ja taulukon nimi, mutta tavallisesti siinä määritetään myös kenttiä tai muita taulukon ominaisuuksia. Seuraavassa esitetään yksinkertainen esimerkki.

Oletetaan, että haluat luoda taulukon, johon tallennetaan niiden autojen nimi, vuosimalli ja hinta, joiden ostamista harkitset. Nimessä voi olla enintään 30 merkkiä ja vuosimallissa enintään neljä merkkiä. Voit luoda tämän taulukon määrityskyselyllä seuraavasti:

Huomautus: Ennen määrityskyselyn suorittamista tietokannan sisältö on ehkä otettava käyttöön:

  • Valitse sanomapalkista Ota sisältö käyttöön.

Taulukon luominen

  1. Valitse Luo-välilehden Makrot ja koodi -ryhmästä Kyselyn rakenne.

  2. Sulje Näytä taulukko -valintaikkuna.

  3. Valitse Rakenne-välilehden Kyselyn laji -ryhmästä Määrityskysely.

    Rakenneruudukko katoaa näkyvistä ja SQL-näkymän objektivälilehti tulee näkyviin.

  4. Kirjoita seuraava SQL-lause:

    LUO TAULUKON autot (nimi TEXT(30), vuoden TEXT(4), hinta VALUUTTA)

  5. Valitse Rakenne -välilehden Tulokset-ryhmästä Suorita.

Taulukon muokkaaminen

Voit muokata taulukkoa ALTER TABLE -komennolla. ALTER TABLE -komennolla voit lisätä, muokata ja poistaa sarakkeita tai rajoitteita. ALTER TABLE -komennon syntaksi on seuraava:

ALTER TABLE table_name predicate

jossa lause voi olla jokin seuraavista toimista:

ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT constraint]

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

Oletetaan, että haluat lisätä 10-merkkisen tekstikentän, jolla kuvailet kunkin auton kuntoa. Voit toimia seuraavasti:

  1. Valitse Luo-välilehden Makrot ja koodi -ryhmästä Kyselyn rakenne.

  2. Sulje Näytä taulukko -valintaikkuna.

  3. Valitse Rakenne-välilehden Kyselyn laji -ryhmästä Määrityskysely.

    Rakenneruudukko katoaa näkyvistä ja SQL-näkymän objektivälilehti tulee näkyviin.

  4. Kirjoita seuraava SQL-lause:

    MUUTA TAULUKON autojen Lisää SARAKKEEN ehdon TEXT(10)

  5. Valitse Rakenne -välilehden Tulokset-ryhmästä Suorita.

Sivun alkuun

Indeksin luominen

Voit luoda indeksin aiemmin luotuun taulukkoon CREATE INDEX -komennolla. CREATE INDEX -komennon syntaksi on seuraava:

CREATE [UNIQUE] INDEX index_name
ON table (field1 [DESC][, field2 [DESC], ...])
[WITH {PRIMARY | DISALLOW NULL | IGNORE NULL}]

Ainoat pakolliset elementit ovat CREATE INDEX -komento, indeksin nimi, ON-argumentti, indeksoitavat kentät sisältävän taulukon nimi ja indeksiin sisällytettävien kenttien luettelo.

  • DESC-argumentti luo indeksin laskevaan järjestykseen. Siitä voi olla hyötyä, jos suoritat säännöllisesti kyselyjä, jotka etsivät indeksoitujen kenttien suurimpia arvoja tai lajittelevat indeksoidut kentät laskevaan järjestykseen. Oletusarvoisesti järjestelmä luo indeksin nousevaan järjestykseen.

  • ENSISIJAINEN KANSSA argumentin muodostaa indeksoidun kentän tai kentät perusavain taulukon.

  • WITH DISALLOW NULL -argumentti määrittää, että indeksoidussa kentässä on oltava arvo. Se tarkoittaa, että tyhjäarvoa (null) ei hyväksytä. 

Oletetaan, että olet luonut Autot-nimisen taulukon, johon tallennat niiden autojen nimen, vuosimallin, hinnan ja kunnon, joiden ostamista harkitset. Oletetaan lisäksi, että taulukosta on tullut jo suuri ja käytät usein kyselyissäsi auton vuosimallia. Voit luoda Vuosimalli-kenttään indeksin, joka nopeuttaa kyselyiden suorittamista. Toimi seuraavasti:

  1. Valitse Luo-välilehden Makrot ja koodi -ryhmästä Kyselyn rakenne.

  2. Sulje Näytä taulukko -valintaikkuna.

  3. Valitse Rakenne-välilehden Kyselyn laji -ryhmästä Määrityskysely.

    Rakenneruudukko katoaa näkyvistä ja SQL-näkymän objektivälilehti tulee näkyviin.

  4. Kirjoita seuraava SQL-lause:

    LUO INDEKSI YearIndex edelleen autot (vuosi)

  5. Valitse Rakenne -välilehden Tulokset-ryhmästä Suorita.

Sivun alkuun

Rajoitteen tai yhteyden luominen

Rajoite muodostaa loogisen ehdon, jonka mukaisia kenttään tai kenttien yhdistelmään lisättävien arvojen on oltava. Esimerkiksi UNIQUE-rajoite estää kenttää hyväksymästä arvoa, joka on sama kuin kenttään aiemmin määritetty arvo.

Yhteys on rajoite, joka sisältää viittauksen toisessa taulukossa olevaan kenttään tai kenttien yhdistelmään ja määrittää sen perusteella, mitä arvoja rajoitettuun kenttään tai kenttien yhdistelmään voi lisätä. Mikään tietty avainsana ei osoita, että rajoite on yhteys.

Voit luoda rajoitteen CONSTRAINT-lauseella CREATE TABLE- tai ALTER TABLE -komennossa. CONSTRAINT-lauseita on kahta tyyppiä: toisella luodaan rajoite yksittäiseen kenttään ja toisella useisiin kenttiin.

Yhden kentän rajoitteet

Yhden kentän CONSTRAINT-lause sijaitsee heti sen kentän määrityksen jälkeen, jota rajoite koskee. Sen syntaksi on seuraava:

CONSTRAINT constraint_name {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES foreign_table [(foreign_field)]
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

Oletetaan, että olet luonut Autot-nimisen taulukon, johon tallennat niiden autojen nimen, vuosimallin, hinnan ja kunnon, joiden ostamista harkitset. Oletetaan lisäksi, että unohdat usein antaa auton kuntoa kuvaavan arvon, jonka kuitenkin haluat tallentaa kunkin auton tietojen mukana. Voit luoda Kunto-kenttään rajoitteen, joka estää jättämästä kenttää tyhjäksi, toimimalla seuraavasti:

  1. Valitse Luo-välilehden Makrot ja koodi -ryhmästä Kyselyn rakenne.

  2. Sulje Näytä taulukko -valintaikkuna.

  3. Valitse Rakenne-välilehden Kyselyn laji -ryhmästä Määrityskysely.

    Rakenneruudukko katoaa näkyvistä ja SQL-näkymän objektivälilehti tulee näkyviin.

  4. Kirjoita seuraava SQL-lause:

    ALTER TAULUKON autojen ALTER SARAKKEESSA ehto TEKSTIN RAJOITUKSEN ConditionRequired ei OLE TYHJÄ

  5. Valitse Rakenne -välilehden Tulokset-ryhmästä Suorita.

Oletetaan seuraavaksi, että huomaat Kunto-kentän arvoissa useita erilaisia arvoja, joiden merkitys on sama. Esimerkiksi joidenkin autojen kunnoksi on merkitty huono ja toisten kunnoksi heikko.

Huomautus: Jos haluat noudattaa jatko-ohjeita, lisää edellisissä vaiheissa luomaasi Autot-taulukkoon joitakin tietoja.

Kun olet korjannut arvot yhdenmukaisiksi, voit luoda taulukon nimeltä AutonKunto, jonka ainoa kenttä, Kunto, sisältää kaikki autojen kunnon kuvaamisessa käytettävät arvot:

  1. Valitse Luo-välilehden Makrot ja koodi -ryhmästä Kyselyn rakenne.

  2. Sulje Näytä taulukko -valintaikkuna.

  3. Valitse Rakenne-välilehden Kyselyn laji -ryhmästä Määrityskysely.

    Rakenneruudukko katoaa näkyvistä ja SQL-näkymän objektivälilehti tulee näkyviin.

  4. Kirjoita seuraava SQL-lause:

    LUO TAULUKON CarCondition (ehto TEXT(10))

  5. Valitse Rakenne -välilehden Tulokset-ryhmästä Suorita.

  6. Luo taulukkoon perusavain ALTER TABLE -lauseella:

    MUUTA TAULUKON CarCondition ALTER SARAKKEESSA ehto TEKSTIN RAJOITUKSEN CarConditionPK PERUSAVAIN

  7. Voit siirtää Autot-taulukon Kunto-sarakkeen arvot uuteen AutonKunto-taulukkoon kirjoittamalla SQL-näkymän objektivälilehteen seuraavan SQL-lauseen:

    LISÄÄ YHDEKSI CarCondition SELECT DISTINCT-autot;-ehto

    Huomautus: Tässä vaiheessa SQL-lause on liittämiskysely. Toisin kuin määrityskysely liittämiskyselyn päättyy puolipisteellä.

  8. Valitse Rakenne -välilehden Tulokset-ryhmästä Suorita.

Yhteyden muodostaminen rajoitteella

Jos haluat määrittää, että Autot-taulukon Kunto-kenttään lisättävät uudet arvot vastaavat jotakin AutonKunto-taulukon Kunto-kentän arvoista, voit luoda AutonKunto- ja Autot-taulukoiden Kunto-kenttien välille yhteyden seuraavasti:

  1. Valitse Luo-välilehden Makrot ja koodi -ryhmästä Kyselyn rakenne.

  2. Sulje Näytä taulukko -valintaikkuna.

  3. Valitse Rakenne-välilehden Kyselyn laji -ryhmästä Määrityskysely.

    Rakenneruudukko katoaa näkyvistä ja SQL-näkymän objektivälilehti tulee näkyviin.

  4. Kirjoita seuraava SQL-lause:

    MUUTA TAULUKON autojen ALTER SARAKKEEN ehdon TEKSTIN RAJOITUKSEN FKeyCondition VIITTAUKSET CarCondition (ehto)

  5. Valitse Rakenne -välilehden Tulokset-ryhmästä Suorita.

Usean kentän rajoitteet

Usean kentän CONSTRAINT-lausetta voi käyttää vain kenttämäärityslauseen ulkopuolella. Sen syntaksi on seuraava:

CONSTRAINT constraint_name 
{PRIMARY KEY (pk_field1[, pk_field2[, ...]]) |
UNIQUE (unique1[, unique2[, ...]]) |
NOT NULL (notnull1[, notnull2[, ...]]) |
FOREIGN KEY [NO INDEX] (ref_field1[, ref_field2[, ...]])
REFERENCES foreign_table
[(fk_field1[, fk_field2[, ...]])] |
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

Tarkastellaan vielä yhtä esimerkki, jossa käytetään Autot-taulukkoa. Oletetaan, että haluat varmistaa, ettei Autot-taulukossa ole tietueita, joissa on samat Nimi-, Vuosimalli-, Kunto- ja Hinta-arvot. Voit luoda näitä kenttiä koskevan UNIQUE-rajoitteen seuraavasti:

  1. Valitse Luo-välilehden Makrot ja koodi -ryhmästä Kyselyn rakenne.

  2. Sulje Näytä taulukko -valintaikkuna.

  3. Valitse Rakenne-välilehden Kyselyn laji -ryhmästä Määrityskysely.

    Rakenneruudukko katoaa näkyvistä ja SQL-näkymän objektivälilehti tulee näkyviin.

  4. Kirjoita seuraava SQL-lause:

    MUUTA TAULUKON autojen Lisää RAJOITE NoDupes YKSILÖLLINEN (nimen, vuosi, ehto, hinta)

  5. Valitse Rakenne -välilehden Tulokset-ryhmästä Suorita.

Sivun alkuun

Huomautus: Konekäännöksestä ilmoittava vastuusvapauslauseke: Tämä artikkeli on käännetty tietokonejärjestelmällä, eikä kieliasiantuntija ole muokannut sitä. Microsoft tarjoaa nämä konekäännökset avuksi muille kuin englantia puhuville käyttäjille, jotta he saavat lisätietoja Microsoftin tuotteista, palveluista ja tekniikoista. Koska artikkeli on koneellisesti käännetty, se saattaa sisältää sanasto-, lauseoppi- ja kielioppivirheitä.

Kehitä taitojasi
Tutustu koulutusmateriaaliin
Saat uudet ominaisuudet ensimmäisten joukossa
Liity Office Insider -käyttäjiin

Oliko näistä tiedoista hyötyä?

Kiitos palautteesta!

Kiitos palautteestasi! Näyttää siltä, että Office-tukiedustajamme avusta voi olla sinulle hyötyä.

×