Tabelite ja registrite loomine ja muutmine andmekirjelduspäringu abil

NB! :  See artikkel on masintõlgitud, vaadake lahtiütlust. Selle artikli ingliskeelse versiooni leiate aadressilt (viiteks).

SQL-i vaates andmekirjelduspäringute kirjutamise teel saate luua ja muuta tabeleid, kitsendusi, registreid ja seoseid.

Selles artiklis selgitatakse andmekirjelduspäringute olemust ja seda, kuidas nende abil luua tabeleid, kitsendusi, registreid ja seoseid. Samuti aitab see artikkel teil otsustada, millal andmekirjelduspäringut kasutada.

Märkus. : Veebiandmebaasis ei saa neid toiminguid kasutada.

Selle artikli teemad

Ülevaade

Luua või muuta tabeli

Registri loomine

Piirangu või seose loomine

Ülevaade

Erinevalt muudest päringutest ei too andmekirjelduspäring andmeid. Selle asemel loob, muudab või kustutab see päring andmekirjelduskeele abil andmebaasiobjekte.

Märkus. : Andmekirjelduskeel (DDL) on osa struktuurpäringukeelest (SQL).

Andmekirjelduspäringute abil on väga mugav vaid mõne päringu käitamise teel oma andmebaasiskeemi osi regulaarselt kustutada ja uuesti luua. Andmekirjelduspäringu kasutamist võiksite kaaluda juhul, kui olete tuttav SQL-lausetega ja plaanite tabeleid, kitsendusi, registreid või seoseid kustutada ja uuesti luua.

Hoiatus. : Andmebaasiobjektide muutmine andmekirjelduspäringute abil võib olla riskantne, kuna toimingute kinnitamiseks ei kuvata kinnituse dialoogibokse. Kui teete vea, võivad andmed kaotsi minna või võite tahtmatult muuta tabeli kujundust. Olge andmekirjelduspäringu abil andmebaasiobjektide muutmisel ettevaatlik. Kui te ei vastuta kasutatava andmebaasi haldamise eest, pidage enne andmekirjelduspäringu käivitamist nõu andmebaasi administraatoriga.

NB! : Tehke enne andmekirjelduspäringu käivitamist kõigist kaasatud tabelitest varukoopia.

DDL-i võtmesõnad

Võtmesõna

Kasutus

CREATE

Saate luua registri või tabeli, mida pole veel olemas.

ALTER

Saate muuta olemasolevat tabelit või veergu.

DROP

Saate kustutada olemasoleva tabeli, veeru või kitsenduse.

ADD

Saate lisada tabelile veeru või kitsenduse.

COLUMN

Saate kasutada koos võtmesõnaga ADD, ALTER või DROP.

CONSTRAINT

Saate kasutada koos võtmesõnaga ADD, ALTER või DROP.

INDEX

Saate kasutada koos võtmesõnaga CREATE.

TABLE

Saate kasutada koos võtmesõnaga ALTER, CREATE või DROP.

Lehe algusse

Tabeli loomine ja muutmine

Tabeli saate luua käsu CREATE TABLE abil. Käsul CREATE TABLE on järgmine süntaks:

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

Käsu CREATE TABLE ainsad nõutavad elemendid on käsk CREATE TABLE ise ja tabeli nimi, kuid tavaliselt määratletakse ka mõni tabeli väli või muu aspekt. Seda toimingut kirjeldab järgmine lihtne näide.

Oletame, et soovite luua tabeli võimalike ostetavate kasutatud autode nime, väljalaskeaasta ja hinnateabe talletamiseks. Soovite lubada nime jaoks kuni 30 märki ja aasta jaoks 4 märki. Tabeli loomiseks andmekirjelduspäringu abil tehke järgmist.

Märkus. : Võimalik, et peate andmekirjelduspäringu käivitamiseks esmalt andmebaasi sisu lubama.

  • Klõpsake teateribal nuppu Luba sisu.

Tabeli loomine

  1. Klõpsake menüü Loo jaotises Makrod ja kood nuppu Päringu kujundus.

  2. Sulgege dialoogiboks Tabeli kuvamine.

  3. Klõpsake menüü Kujundus jaotises Päringutüüp nuppu Andmekirjeldus.

    Kujundusruudustik peidetakse ja kuvatakse SQL-i vaate objektivahekaart.

  4. Tippige järgmine SQL-lause:

    LOOGE TABEL auto (nime TEXT(30), aasta TEXT(4), VALUUTA hind)

  5. Klõpsake menüü Kujundus jaotises Tulemid nuppu Käivita.

Tabeli muutmine

Tabelit saate muuta käsu ALTER TABLE abil. Käsu ALTER TABLE abil saate lisada, muuta ja eemaldada veerge ja kitsendusi. Käsul ALTER TABLE on järgmine süntaks:

ALTER TABLE table_name predicate

Kui predikaat võib olla üks järgmistest:

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

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

Oletame, et soovite iga auto seisukorra kohta teabe talletamiseks lisada 10 märgi pikkuse tekstivälja. Saate teha järgmist.

  1. Klõpsake menüü Loo jaotises Makrod ja kood nuppu Päringu kujundus.

  2. Sulgege dialoogiboks Tabeli kuvamine.

  3. Klõpsake menüü Kujundus jaotises Päringutüüp nuppu Andmekirjeldus.

    Kujundusruudustik peidetakse ja kuvatakse SQL-i vaate objektivahekaart.

  4. Tippige järgmine SQL-lause:

    Laused ALTER TABELI auto lisa VEERG tingimus TEXT(10)

  5. Klõpsake menüü Kujundus jaotises Tulemid nuppu Käivita.

Lehe algusse

Registri loomine

Olemasoleva tabeli registri saate luua käsu CREATE INDEX abil. Käsul CREATE INDEX on järgmine süntaks:

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

Ainsad nõutavad elemendid on käsk CREATE INDEX, registri nimi, argument ON, registrisse kantavaid välju sisaldava tabeli nimi ja registrisse kaasatavate väljade loend.

  • Argument DESC põhjustab registri loomise kahanevas järjestuses, mis võib olla kasulik selliste päringute sagedase käitamise korral, mis otsivad registrisse kantud välja maksimumväärtusi või sordivad registrisse kantud välja kahanevas järjestuses. Register luuakse vaikimisi kasvavas järjestuses.

  • KOOS ESMANE argument luuakse indekseeritud väli või väljad, nagu primaarvõti tabeli.

  • Argument WITH DISALLOW NULL nõuab registrisse kantud välja väärtuse sisestamist – tühiväärtused pole lubatud.

Oletame, et teil on tabel nimega Autod, mille väljadel talletate võimalike ostetavate kasutatud autode nime-, väljalaskeaasta-, hinna- ja seisukorrateavet. Samuti oletame, et tabeli maht on muutunud suureks ja te kaasate väljalaskeaasta välja sageli päringutesse. Järgmise toiminguga saate luua väljalaskeaasta välja jaoks registri, et kiirendada päringute abil tulemite toomist.

  1. Klõpsake menüü Loo jaotises Makrod ja kood nuppu Päringu kujundus.

  2. Sulgege dialoogiboks Tabeli kuvamine.

  3. Klõpsake menüü Kujundus jaotises Päringutüüp nuppu Andmekirjeldus.

    Kujundusruudustik peidetakse ja kuvatakse SQL-i vaate objektivahekaart.

  4. Tippige järgmine SQL-lause:

    Saate LUUA REGISTRI YearIndex sees auto (aasta)

  5. Klõpsake menüü Kujundus jaotises Tulemid nuppu Käivita.

Lehe algusse

Kitsenduse ja seose loomine

Kitsendus loob loogilise tingimuse, millele väli või väljakombinatsioon peab väärtuste sisestamisel vastama. Näiteks kitsendus UNIQUE takistab kitsendatud väljal sellise väärtuse aktsepteerimist, mis dubleeriks sellel väljal mõne olemasoleva väärtuse.

Seos on sellist tüüpi kitsendus, mis viitab mõne muu tabeli välja või väljakombinatsiooni väärtustele, määratlemaks, kas kitsendatud väljale või väljakombinatsioonile saab väärtust sisestada. Kitsendustüübile Seos osutamiseks ei kasutata kindlat võtmesõna.

Kitsenduse saate luua käsu CREATE TABLE või ALTER TABLE klausli CONSTRAINT abil. On olemas kahte liiki CONSTRAINT-klausleid: üks kitsenduse loomiseks ühel väljal ja teine kitsenduse loomiseks mitmel väljal.

Ühe välja kitsendused

Ühe välja klausel CONSTRAINT järgneb vahetult kitsendatava välja määratlusele ja sel on järgmine süntaks:

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

Oletame, et teil on tabel nimega Autod, mille väljadel talletate võimalike ostetavate kasutatud autode nime-, väljalaskeaasta-, hinna- ja seisukorrateavet. Samuti oletame, et unustate sageli sisestada auto seisukorra kohta väärtuse, kuigi soovite selle teabe alati salvestada. Järgmise toimingu abil saate luua väljale Seisukord kitsenduse, mis ei lase teil seda välja tühjaks jätta.

  1. Klõpsake menüü Loo jaotises Makrod ja kood nuppu Päringu kujundus.

  2. Sulgege dialoogiboks Tabeli kuvamine.

  3. Klõpsake menüü Kujundus jaotises Päringutüüp nuppu Andmekirjeldus.

    Kujundusruudustik peidetakse ja kuvatakse SQL-i vaate objektivahekaart.

  4. Tippige järgmine SQL-lause:

    Laused ALTER TABELI auto ALTER VEERU tingimus TEKSTI PIIRANG ConditionRequired POLE TÜHI

  5. Klõpsake menüü Kujundus jaotises Tulemid nuppu Käivita.

Nüüd oletame, et märkate mõne aja pärast, et väljal Seisukord on mitu sarnast väärtust, mis peaksid olema täpselt samad. Näiteks mõne auto puhul on välja Seisukord väärtus kehv ja teiste puhul halb.

Märkus. : Kui soovite ülejäänud toimingud kaasa teha, lisage eelnevate juhiste järgi loodud tabelisse Autod fiktiivseid andmeid.

Pärast väärtuste ühtlustamist võite luua tabeli nimega Auto_seisukord, kus on üks väli nimega Seisukord. See võiks sisaldada kõiki väärtusi, mida soovite autode seisukorra kirjeldamisel kasutada.

  1. Klõpsake menüü Loo jaotises Makrod ja kood nuppu Päringu kujundus.

  2. Sulgege dialoogiboks Tabeli kuvamine.

  3. Klõpsake menüü Kujundus jaotises Päringutüüp nuppu Andmekirjeldus.

    Kujundusruudustik peidetakse ja kuvatakse SQL-i vaate objektivahekaart.

  4. Tippige järgmine SQL-lause:

    TABELI CarCondition (tingimus TEXT(10)) LOOMINE

  5. Klõpsake menüü Kujundus jaotises Tulemid nuppu Käivita.

  6. Looge lause ALTER TABLE abil tabeli primaarvõti:

    MUUDA TABELI CarCondition ALTER VEERU tingimus TEKSTI PIIRANGU CarConditionPK PRIMAARVÕTI

  7. Tabeli Autod väljalt Seisukord väärtuste sisestamiseks uude tabelisse Auto_Seisukord tippige SQL-i vaate objektivahekaardile järgmine SQL-lause:

    INSERT INTO CarCondition VALIGE DISTINCT tingimus tasemed;

    Märkus. : Selles etapis tuleb SQL-lause on ka lisamispäring. Andmekirjelduspäring, erinevalt lisanduspäringu lõpeb semikooloniga.

  8. Klõpsake menüü Kujundus jaotises Tulemid nuppu Käivita.

Seose loomine kitsenduse abil

Kui soovite, et kõik tabeli Autod väljale Seisukord sisestatud uued väärtused vastaks tabeli Auto_seisukord mõnele välja Seisukord väärtusele, võite järgmise toimingu abil luua väljal Seisukord tabelite Auto_seisukord ja Autod vahelise seose.

  1. Klõpsake menüü Loo jaotises Makrod ja kood nuppu Päringu kujundus.

  2. Sulgege dialoogiboks Tabeli kuvamine.

  3. Klõpsake menüü Kujundus jaotises Päringutüüp nuppu Andmekirjeldus.

    Kujundusruudustik peidetakse ja kuvatakse SQL-i vaate objektivahekaart.

  4. Tippige järgmine SQL-lause:

    Laused ALTER TABELI auto ALTER VEERU tingimus TEKSTI PIIRANG FKeyCondition VIITED CarCondition (tingimus)

  5. Klõpsake menüü Kujundus jaotises Tulemid nuppu Käivita.

Mitme välja kitsendused

Mitme välja klauslit CONSTRAINT saab kasutada ainult väljaspool väljamääratlusklauslit ja sel on järgmine süntaks:

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}]}

Vaatleme teist näidet tabeli Autod kohta. Oletame, et soovite tagada, et tabelis Autod poleks mitmel kirjel nime, väljalaskeaasta, seisukorra ja hinna puhul sama väärtustekogum. Järgmise toimingu abil saate luua neile väljadele rakendatava kitsenduse UNIQUE.

  1. Klõpsake menüü Loo jaotises Makrod ja kood nuppu Päringu kujundus.

  2. Sulgege dialoogiboks Tabeli kuvamine.

  3. Klõpsake menüü Kujundus jaotises Päringutüüp nuppu Andmekirjeldus.

    Kujundusruudustik peidetakse ja kuvatakse SQL-i vaate objektivahekaart.

  4. Tippige järgmine SQL-lause:

    ALTER TABLE auto LISADA PIIRANG NoDupes KORDUMATU (nime, aasta, tingimus, hind)

  5. Klõpsake menüü Kujundus jaotises Tulemid nuppu Käivita.

Lehe algusse

Märkus. : Masintõlke lahtiütlus. Selle artikli tõlkis arvutisüsteem ilma inimese sekkumiseta. Microsoft pakub selliseid masintõlkeid, et inglise keelt mittekõnelevad kasutajad saaksid vaadata sisu Microsofti toodete, teenuste ja tehnoloogiate kohta. Kuna artikkel on masintõlgitud, võib see sisaldada sõnavara-, süntaksi- või grammatikavigu.

Täiendage oma oskusi
Tutvuge koolitusmaterjalidega
Kasutage uusi funktsioone enne teisi
Liituge Office Insideri programmiga

Kas sellest teabest oli abi?

Täname tagasiside eest!

Täname tagasiside eest! Tundub, et võiksime teid kokku viia ühega meie Office'i tugiagentidest, kes aitab teil probleemi lahendada.

×