Logige sisse Microsofti kontoga
Logige sisse või looge konto.
Tere!
Valige mõni muu konto.
Teil on mitu kontot
Valige konto, millega soovite sisse logida.

Accessis saate luua ja muuta tabeleid, piiranguid, indekseid ja seoseid, kirjutades sql-vaates andmekirjelduspäringuid. Selles artiklis selgitatakse andmekirjelduspäringuid ja nende kasutamist tabelite, piirangute, indeksite ja seoste loomiseks. See artikkel aitab teil ka otsustada, millal andmekirjelduspäringuid kasutada.

Selle artikli teemad

Ülevaade

Erinevalt muudest Accessi päringutest ei tooda andmekirjelduspäringu abil andmeid. Selle asemel kasutab andmekirjelduspäring andmebaasiobjektide loomiseks, muutmiseks või kustutamiseks andmekirjelduskeelt.

Märkus.: Andmekirjelduskeel (DDL) on osa Structured Query Language (SQL).

Andmekirjelduspäringud võivad olla väga mugavad. Andmebaasiskeemi osi saate regulaarselt kustutada ja uuesti luua, käivitades vaid mõned päringud. Kui olete SQL-lausetega tuttav ja plaanite teatud tabeleid, piiranguid, indekseid või seoseid kustutada ja uuesti luua, kaaluge andmekirjelduspäringu kasutamist.

Hoiatus.: Andmekirjelduspäringute kasutamine andmebaasiobjektide muutmiseks võib olla riskantne, kuna toimingutega ei kaasne kinnituse dialoogibokse. Kui teete vea, võite kaotada andmed või tahtmatult muuta tabeli kujundust. Olge andmekirjelduspäringu abil andmebaasi objektide muutmiseks ettevaatlik. Kui te ei vastuta kasutatava andmebaasi säilitamise eest, peaksite enne andmekirjelduspäringu käivitamist pöörduma andmebaasi administraatori poole.

NB!: Enne andmekirjelduspäringu käivitamist tehke kaasatud tabelitest varukoopia.

DDL-märksõnad

Märksõna

Kasutus

CREATE

Looge indeks või tabel, mida pole juba olemas.

ALTER

Saate muuta olemasolevat tabelit või veergu.

DROP

Saate kustutada olemasoleva tabeli, veeru või piirangu.

ADD

Saate tabelile lisada veeru või kitsenduse.

COLUMN

Kasutamine koos funktsioonidega ADD, ALTER või DROP

CONSTRAINT

Kasutamine koos funktsioonidega ADD, ALTER või DROP

INDEX

Kasuta koos funktsiooniga CREATE

TABLE

Kasutamine funktsiooniga ALTER, CREATE või DROP

Lehe algusse

Tabeli loomine või muutmine

Tabeli loomiseks kasutage käsku CREATE TABLE. 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 ja tabeli nimi, kuid tavaliselt soovite määratleda tabeli mõned väljad või muud aspektid. Võtke seda lihtsat näidet.

Oletagem, et soovite luua tabeli, kus talletatakse ostetud kasutatud autode nimi, aasta ja hind. Soovite lubada nime jaoks kuni 30 märki ja aasta jaoks 4 märki. Andmekirjelduspäringu abil tabeli loomiseks tehke järgmist.

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

  • Klõpsake teateribal nuppu Luba sisu.

Andmebaasitabelite loomine

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

  2. Klõpsake menüü Kujundus jaotises Päringu tüüp nuppu Andmekirjeldus.

    Kujundusruudustik on peidetud ja kuvatakse SQL-i vaate objektivahekaart.

  3. Tippige järgmine SQL-lause:

    CREATE TABLE Autod (Nimi TEXT(30), Year TEXT(4), Price CURRENCY)

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

Tabeli muutmine

Tabeli muutmiseks saate kasutada käsku ALTER TABLE. Käsku ALTER TABLE saate kasutada veergude või kitsenduste lisamiseks, muutmiseks või eemaldamiseks. Käsul ALTER TABLE on järgmine süntaks:

ALTER TABLE table_name predicate

kus 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

Oletagem, et soovite lisada 10-kohalise tekstivälja, et talletada teavet iga auto seisukorra kohta. Tehke järgmist.

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

  2. Klõpsake menüü Kujundus jaotises Päringu tüüp nuppu Andmekirjeldus.

    Kujundusruudustik on peidetud ja kuvatakse SQL-i vaate objektivahekaart.

  3. Tippige järgmine SQL-lause:

    ALTER TABLE Autod ADD COLUMN Tingimus TEKST(10)

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

Lehe algusse

Registri loomine

Olemasolevas tabelis registri loomiseks saate kasutada käsku CREATE INDEX. 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, indekseeritavaid välju sisaldava tabeli nimi ja registrisse kaasatavate väljade loend.

  • Argument DESC põhjustab indeksi loomise laskuvas järjestuses, mis võib olla kasulik siis, kui käivitate sageli päringuid, mis otsivad indekseeritud välja suurimaid väärtusi või sordivad indekseeritud välja laskuvas järjestuses. Vaikimisi luuakse indeks tõusvas järjestuses.

  • Argument WITH PRIMARY loob indekseeritud välja või väljad tabeli primaarvõti.

  • Argumendi WITH DISALLOW NULL tõttu nõuab indeks indekseeritud välja jaoks väärtuse sisestamist , st tühiväärtused pole lubatud.

Oletagem, et teil on tabel nimega Autod väljadega, kus on talletatud nende kasutatud autode nimed, aasta, hind ja seisukord, mida kaalute ostmiseks. Oletame ka, et tabel on suureks muutunud ja et lisate päringutesse sageli aasta välja. Välja Aasta indeksi saate luua selleks, et päringud tulemeid kiiremini tagastaksid. Selleks tehke järgmist.

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

  2. Klõpsake menüü Kujundus jaotises Päringu tüüp nuppu Andmekirjeldus.

    Kujundusruudustik on peidetud ja kuvatakse SQL-i vaate objektivahekaart.

  3. Tippige järgmine SQL-lause:

    CREATE INDEX YearIndex AUTODEL (aasta)

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

Lehe algusse

Piirangu või seose loomine

Kitsendus loob loogilise tingimuse, millele väli või väljakombinatsioon peab väärtuste sisestamisel vastama. Näiteks takistab unique-kitsendus kitsendusega väljal aktsepteerimast väärtust, mis dubleeriks välja olemasoleva väärtuse.

Seos on kitsenduse tüüp, mis viitab välja väärtustele või teise tabeli väljade kombinatsioonile, et teha kindlaks, kas väärtust saab lisada kitsendatud väljale või väljakombinatsiooni. Te ei kasuta erimärksõna, et näidata, et piirang on seos.

Kitsenduse loomiseks kasutage käskudes CREATE TABLE või ALTER TABLE klauslit CONSTRAINT. ConSTRAINT-klausleid on kahte tüüpi: üks kitsenduse loomiseks ühel väljal ja teine kitsenduse loomiseks mitmele väljale.

Ühe välja kitsendused

Üheväljaline conSTRAINT-klausel järgib kohe kitsenduses oleva välja määratlust ja sellel 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}]}

Oletagem, et teil on tabel nimega Autod väljadega, kus on talletatud nende kasutatud autode nimed, aasta, hind ja seisukord, mida kaalute ostmiseks. Oletame ka, et unustate sageli sisestada auto seisukorra väärtuse ja soovite alati seda teavet salvestada. Väljal Tingimus saate luua kitsenduse, mis takistab välja tühjaks jätmist. Selleks tehke järgmist.

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

  2. Klõpsake menüü Kujundus jaotises Päringu tüüp nuppu Andmekirjeldus.

    Kujundusruudustik on peidetud ja kuvatakse SQL-i vaate objektivahekaart.

  3. Tippige järgmine SQL-lause:

    ALTER TABLE Autod ALTER COLUMN Tingimus TEKST KITSENDUSTingimus Nõutav POLE NULL

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

Oletagem nüüd, et mõne aja pärast märkate, et väljal Tingimus on palju sarnaseid väärtusi, mis peaksid olema samad. Näiteks mõnel autol on halva tingimuse väärtus ja teistel on halb väärtus.

Märkus.: Kui soovite järgida ülejäänud juhiseid, lisage eelnevate juhiste järgi loodud tabelisse Autod mõned võltsitud andmed.

Pärast väärtuste puhastamist, et need oleksid ühtlasemad, saate luua tabeli nimega CarCondition, millel on üks väli nimega Tingimus, mis sisaldab kõiki väärtusi, mida soovite autode seisukorras kasutada:

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

  2. Klõpsake menüü Kujundus jaotises Päringu tüüp nuppu Andmekirjeldus.

    Kujundusruudustik on peidetud ja kuvatakse SQL-i vaate objektivahekaart.

  3. Tippige järgmine SQL-lause:

    Create TABLE CarCondition (Tingimus TEXT(10))

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

  5. Tabeli primaarvõtme loomiseks kasutage lauset ALTER TABLE:

    ALTER TABLE CarCondition ALTER COLUMN Tingimus TEKST CONSTRAINT CarConditionPK PRIMAARVÕTI

  6. Tabeli Autod välja Tingimus väärtuste lisamiseks uude tabelisse CarCondition tippige SQL-i vaate objekti vahekaardile SQL:

    INSERT INTO CarCondition SELECT DISTINCT Tingimus Autodest;

    Märkus.: Selle toimingu SQL-lause on lisamispäring. Erinevalt andmekirjelduspäringust lõpeb lisamispäring semikooloniga.

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

Seose loomine kitsenduse abil

Kui soovite, et tabeli Autod väljale Tingimus sisestatud mis tahes uus väärtus vastaks tabeli CarCondition välja Tingimus väärtusele, saate luua järgmise toimingu abil seose tabeli CarCondition ja Välja Autod vahel.

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

  2. Klõpsake menüü Kujundus jaotises Päringu tüüp nuppu Andmekirjeldus.

    Kujundusruudustik on peidetud ja kuvatakse SQL-i vaate objektivahekaart.

  3. Tippige järgmine SQL-lause:

    ALTER TABLE Autod ALTER COLUMN Tingimus TEKST CONSTRAINT FKeyCondition REFERENCES CarCondition (tingimus)

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

Mitme välja kitsendused

Mitmeväljalist CONSTRAINT-klauslit saab kasutada ainult väljaspool väljamääratlusklauslit ja sellel 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}]}

Mõelge mõnele muule näitele, mis kasutab tabelit Autod. Oletagem, et soovite veenduda, et tabelis Autod poleks kahel kirjel sama väärtustekomplekt nime, aasta, tingimuse ja hinna jaoks. Nendele väljadele rakenduva UNIQUE-piirangu loomiseks tehke järgmist.

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

  2. Klõpsake menüü Kujundus jaotises Päringu tüüp nuppu Andmekirjeldus.

    Kujundusruudustik on peidetud ja kuvatakse SQL-i vaate objektivahekaart.

  3. Tippige järgmine SQL-lause:

    ALTER TABLE Cars ADD CONSTRAINT NoDupes UNIQUE (nimi, aasta, tingimus, hind)

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

Lehe algusse

Kas vajate veel abi?

Kas soovite rohkem valikuvariante?

Siin saate tutvuda tellimusega kaasnevate eelistega, sirvida koolituskursusi, õppida seadet kaitsma ja teha veel palju muud.

Kogukonnad aitavad teil küsimusi esitada ja neile vastuseid saada, anda tagasisidet ja saada nõu rikkalike teadmistega asjatundjatelt.

Kas sellest teabest oli abi?

Kui rahul te keelekvaliteediga olete?
Mis mõjutas teie hinnangut?
Kui klõpsate nuppu Edasta, kasutatakse teie tagasisidet Microsofti toodete ja teenuste täiustamiseks. IT-administraator saab neid andmeid koguda. Privaatsusavaldus.

Täname tagasiside eest!

×