Lentelių ar indeksų kūrimas arba modifikavimas naudojant duomenų apibrėžimo užklausą

Svarbu :  Šis straipsnis išverstas naudojant mašininį vertimą, žr. atsakomybės atsisakymą. Su šio straipsnio versija anglų kalba galite susipažinti čia .

Galite kurti ir modifikuoti lenteles, apribojimus, indeksus ir ryšius SQL rodinyje rašydami duomenų apibrėžimo užklausas.

Šiame straipsnyje paaiškinama, kas yra duomenų apibrėžimo užklausos ir kaip jas naudoti norint kurti lenteles, apribojimus, indeksus ir ryšius. Šis straipsnis gali padėti jums nuspręsti, kada naudoti duomenų apibrėžimo užklausas.

Pastaba : Žiniatinklio duomenų bazėje šių procedūrų naudoti negalima.

Šiame straipsnyje

Apžvalga

Kurti arba modifikuoti lentelės

Rodyklės kūrimas

Apribojimą arba ryšio kūrimas

Apžvalga

Kitaip nei kitos užklausos duomenų apibrėžimo užklausa nenuskaito duomenų. Užuot tai dariusi ji duomenų bazės objektams kurti, modifikuoti ar naikinti naudoja duomenų aprašymo kalbą.

Pastaba : Duomenų aprašo kalba (DDL) yra struktūrinės užklausų kalbos (SQL) dalis.

Duomenų aprašymo užklausos gali būti labai patogios. Galite reguliariai naikinti ir iš naujo sukurti duomenų bazės schemos dalis paprasčiausiai vykdydami užklausas. Naudokitės duomenų apibrėžimo užklausa, jei mokate naudotis SQL sakiniais ir ketinate panaikinti ir iš naujo sukurti tam tikras lenteles, apribojimus, indeksus ar ryšius.

Įspėjimas : Duomenų apibrėžimo užklausų naudojimas duomenų bazės objektams modifikuoti gali būti rizikingas, nes šie veiksmai nepatvirtinami dialogo lango patvirtinimo mygtuku. Jei padarysite klaidą, galite prarasti duomenis arba netyčia pakeisti lentelės dizainą. Būkite atidūs, kai naudojate duomenų apibrėžimo užklausą duomenų bazės objektams modifikuoti. Jei neatsakote už naudojamos duomenų bazės priežiūrą, prieš vykdydami duomenų apibrėžimo užklausą pasikonsultuokite su duomenų bazės administratoriumi.

Svarbu : Prieš vykdydami duomenų apibrėžimo užklausą pasidarykite visų susijusių lentelių atsargines kopijas.

DDL raktažodžiai

Raktažodis

Naudojimas

CREATE

Indeksui ar lentelei, kurios dar nėra, sukurti.

ALTER

Esamai lentelei ar stulpeliui modifikuoti.

DROP

Esamai lentelei, stulpeliui ar apribojimui naikinti.

ADD

Stulpeliui ar apribojimui įtraukti į lentelę.

COLUMN

Naudojama su ADD, ALTER ar DROP

CONSTRAINT

Naudojama su ADD, ALTER ar DROP

INDEX

Naudojama su CREATE

TABLE

Naudojama su ALTER, CREATE arba DROP

Puslapio viršus

Lentelės kūrimas arba modifikavimas

Norėdami kurti lentelę naudokite komandą CREATE TABLE. Komandos CREATE TABLE sintaksė:

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

Vieninteliai būtini komandos CREATE TABLE elementai yra pati komanda CREATE TABLE ir lentelės pavadinimas, tačiau dažniausiai norėsite apibrėžti kai kuriuos lentelės laukus ar kitus aspektus. Išnagrinėkite šį paprastą pavyzdį.

Tarkime, norite sukurti lentelę naudotų automobilių, kuriuos ketinate pirkti, pavadinimams, metams ir kainai laikyti. Galite pageidauti, kad pavadinimui būtų skirta 30 simbolių, o metams 4. Norėdami naudoti duomenų apibrėžimo užklausą lentelei kurti, atlikite šiuos veiksmus:

Pastaba : Pirmiausia gali reikėti įgalinti duomenų bazės turinį, kad būtų galima vykdyti duomenų aprašo užklausą:

  • Pranešimų juostoje spustelėkite Įgalinti turinį.

Lentelės kūrimas

  1. Skirtuko Kurti grupėje Makrokomandos ir kodas spustelėkite Užklausos dizainas.

  2. Uždarykite dialogo langą Lentelės rodymas.

  3. Skirtuko Dizainas grupėje Užklausos tipas spustelėkite Duomenų apibrėžimas.

    Paslepiamas dizaino tinklelis ir rodomas SQL rodinio objektų skirtuko lapas.

  4. Įveskite tokį SQL sakinį:

    KURTI LENTELĘ automobilių (vardas TEXT(30), metų TEXT(4), VALIUTOS kaina)

  5. Skirtuko Dizainas grupėje Rezultatai spustelėkite Vykdyti.

Lentelės modifikavimas

Norėdami modifikuoti lentelę, naudokite komandą ALTER TABLE. Galite naudoti komandą ALTER TABLE norėdami įtraukti, modifikuoti ar išmesti (pašalinti) stulpelių ar apribojimų. Komandos ALTER TABLE sintaksė:

ALTER TABLE table_name predicate

kur tarinys gali būti bet kurį iš šių veiksmų:

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

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

Tarkime, kad norite įtraukti 10 simbolių teksto lauką informacijai apie kiekvieno automobilio būklę laikyti. Galite atlikti šiuos veiksmus:

  1. Skirtuko Kurti grupėje Makrokomandos ir kodas spustelėkite Užklausos dizainas.

  2. Uždarykite dialogo langą Lentelės rodymas.

  3. Skirtuko Dizainas grupėje Užklausos tipas spustelėkite Duomenų apibrėžimas.

    Paslepiamas dizaino tinklelis ir rodomas SQL rodinio objektų skirtuko lapas.

  4. Įveskite tokį SQL sakinį:

    KEISTI LENTELĖS automobilių įtraukti STULPELIO sąlyga TEXT(10)

  5. Skirtuko Dizainas grupėje Rezultatai spustelėkite Vykdyti.

Puslapio viršus

Indekso kūrimas

Norėdami esamoje lentelėje sukurti indeksą naudokite komandą CREATE INDEX. Komandos CREATE INDEX sintaksė:

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

Vieninteliai būtini elementai yra komanda CREATE INDEX, indekso pavadinimas, argumentas ON, lentelės, pagal kurios laukus norite kurti indeksą, pavadinimas ir įtrauktinų į indeksą laukų sąrašas.

  • Naudojant argumentą DESC indeksas sukuriamas mažėjančia tvarka. Tai gali būti naudinga, jei dažnai vykdote užklausas, kurios ieško geriausių į indeksą įtrauktų laukų reikšmių arba kurios rikiuoja įtrauktus į indeksą laukus mažėjančia tvarka. Pagal numatytuosius nustatymus indeksas kuriamas didėjančia tvarka.

  • SU PAGRINDINIS argumentas nustatyta indeksuotų lauką arba laukus, pirminis raktas lentelės.

  • Naudojant argumentą WITH DISALLOW NULL indeksas reikalauja, kad būtų įvesta į indeksą įtraukto lauko reikšmė. Tai reiškia, kad nulinės reikšmės draudžiamos.

Tarkime, kad turite lentelę, pavadintą Automobiliai, kurios laukuose laikomi naudotų automobilių, kuriuos ketinate įsigyti, pavadinimai, metai, kainos ir būklės. Be to, tarkime, kad lentelė padidėjo ir kad dažnai įtraukiate metų lauką į užklausas. Galite sukurti lauko Metai indeksą, kad užklausos greičiau pateiktų rezultatus, atlikdami tokią procedūrą:

  1. Skirtuko Kurti grupėje Makrokomandos ir kodas spustelėkite Užklausos dizainas.

  2. Uždarykite dialogo langą Lentelės rodymas.

  3. Skirtuko Dizainas grupėje Užklausos tipas spustelėkite Duomenų apibrėžimas.

    Paslepiamas dizaino tinklelis ir rodomas SQL rodinio objektų skirtuko lapas.

  4. Įveskite tokį SQL sakinį:

    KURTI INDEKSĄ YearIndex įjungta automobilių (metų)

  5. Skirtuko Dizainas grupėje Rezultatai spustelėkite Vykdyti.

Puslapio viršus

Apribojimo ar ryšio kūrimas

Apribojimas sukuria loginę sąlygą, kurią laukas ar laukų kombinacija turi atitikti įvedus reikšmę. Pvz., apribojimas UNIQUE draudžia apribotam laukui priimti reikšmę, kuri dubliuoja esamą lauko reikšmę.

Ryšys yra apribojimo tipas, kuris skirtas lauko ar laukų kombinacijos reikšmėms, esančioms kitoje lentelėje, ir nurodantis, ar reikšmė gali būti įterpta į apribotą lauką arba laukų kombinaciją. Nereikia naudoti specialaus raktažodžio, norint nurodyti, kad apribojimas yra ryšys.

Norėdami sukurti apribojimą, naudokite sąlygą CONSTRAINT, esančią komandoje CREATE TABLE arba ALTER TABLE. Yra dvi sąlygų CONSTRAINT rūšys: viena skirta atskiro lauko apribojimui sukurti, o kita skirta kelių laukų apribojimui sukurti.

Vieno lauko apribojimas

Vieno lauko sąlyga CONSTRAINT iš karto vykdo ribojamo lauko aprašą, o jos sintaksė yra:

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

Tarkime, kad turite lentelę, pavadintą Automobiliai, kurios laukuose laikomi naudotų automobilių, kuriuos ketinate įsigyti, pavadinimai, metai, kainos ir būklės. Be to, tarkime, kad dažnai pamirštate įvesti automobilio būklės reikšmę, nors šios informacijos jums visada reikia. Galite sukurti apribojimą lauke Sąlyga, kad nebepaliktumėte lauko tuščio, naudodami šią procedūrą:

  1. Skirtuko Kurti grupėje Makrokomandos ir kodas spustelėkite Užklausos dizainas.

  2. Uždarykite dialogo langą Lentelės rodymas.

  3. Skirtuko Dizainas grupėje Užklausos tipas spustelėkite Duomenų apibrėžimas.

    Paslepiamas dizaino tinklelis ir rodomas SQL rodinio objektų skirtuko lapas.

  4. Įveskite tokį SQL sakinį:

    KEISTI LENTELĖS automobilių PAKEISTI STULPELIO sąlyga TEKSTO APRIBOJIMĄ ConditionRequired NOT NULL

  5. Skirtuko Dizainas grupėje Rezultatai spustelėkite Vykdyti.

Dabar tarkime, kad po kurio laiko pastebėjote, kad lauke Sąlyga yra labai daug panašių reikšmių, kurios turi būti vienodos. Pvz., kai kurių automobilių lauko Būklė reikšmė yra prasta, o kai kurių bloga.

Pastaba : Norėdami tęsti atlikdami likusias procedūras, į lentelę Automobiliai, kurią sukūrėte atlikdami ankstesnius veiksmus, įtraukite netikrų duomenų.

Sutvarkę reikšmes taip, kad jos būtų kuo nuoseklesnės, galite sukurti lentelę pavadinimu CarCondition su vienu lauku pavadinimu Būklė, kuriame būtų jūsų norimos naudoti automobilių būklei apibūdinti reikšmės:

  1. Skirtuko Kurti grupėje Makrokomandos ir kodas spustelėkite Užklausos dizainas.

  2. Uždarykite dialogo langą Lentelės rodymas.

  3. Skirtuko Dizainas grupėje Užklausos tipas spustelėkite Duomenų apibrėžimas.

    Paslepiamas dizaino tinklelis ir rodomas SQL rodinio objektų skirtuko lapas.

  4. Įveskite tokį SQL sakinį:

    KURTI LENTELĘ CarCondition (TEXT(10)) sąlygos

  5. Skirtuko Dizainas grupėje Rezultatai spustelėkite Vykdyti.

  6. Sukurkite pirminį lentelės raktą naudodami sakinį ALTER TABLE:

    KEISTI LENTELĖS CarCondition PAKEISTI STULPELIO sąlyga TEKSTO APRIBOJIMĄ CarConditionPK PIRMINIS RAKTAS

  7. Norėdami įterpti reikšmes iš lentelės Automobiliai lauko Būklė į naująją lentelę Automobilių būklė, įveskite tokį SQL sakinį į SQL rodinio objekto skirtuką:

    ĮTERPTI į CarCondition SELECT DISTINCT sąlyga AUTOMOBILIŲ;

    Pastaba : Atlikdami šį veiksmą SQL sakinio yra yra papildymo užklausa. Skirtingai nei duomenų apibrėžimo užklausa, papildymo užklausą baigiasi kabliataškiu.

  8. Skirtuko Dizainas grupėje Rezultatai spustelėkite Vykdyti.

Ryšio kūrimas naudojant apribojimą

Norėdami, kad visos naujos reikšmės, įtrauktos į lentelės Automobiliai lauką Būklė, sutaptų su lentelės Automobilių būklė lauko Būklė reikšmėmis, naudodami toliau nurodytą procedūrą galite sukurti Automobiliai ir Automobilių būklė ryšį lauke, pavadintame Būklė:

  1. Skirtuko Kurti grupėje Makrokomandos ir kodas spustelėkite Užklausos dizainas.

  2. Uždarykite dialogo langą Lentelės rodymas.

  3. Skirtuko Dizainas grupėje Užklausos tipas spustelėkite Duomenų apibrėžimas.

    Paslepiamas dizaino tinklelis ir rodomas SQL rodinio objektų skirtuko lapas.

  4. Įveskite tokį SQL sakinį:

    KEISTI LENTELĖS automobilių PAKEISTI STULPELIO sąlyga TEKSTO APRIBOJIMĄ FKeyCondition NUORODOS CarCondition (sąlyga)

  5. Skirtuko Dizainas grupėje Rezultatai spustelėkite Vykdyti.

Kelių laukų apribojimai

Kelių laukų sąlygą CONSTRAINT galima naudoti tik už lauko aprašo sąlygos ribų, jos sintaksė:

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

Išnagrinėkime dar vieną pavyzdį, kuriame naudojama lentelė Automobiliai. Tarkime, kad norite užtikrinti, jog lentelės Automobiliai dviejuose įrašuose nebūtų vienodų reikšmių Pavadinimas, Metai, Būklė ir Kaina. Galite sukurti apribojimą UNIQUE, kuris bus taikomas šiems laukams, naudodami šią procedūrą:

  1. Skirtuko Kurti grupėje Makrokomandos ir kodas spustelėkite Užklausos dizainas.

  2. Uždarykite dialogo langą Lentelės rodymas.

  3. Skirtuko Dizainas grupėje Užklausos tipas spustelėkite Duomenų apibrėžimas.

    Paslepiamas dizaino tinklelis ir rodomas SQL rodinio objektų skirtuko lapas.

  4. Įveskite tokį SQL sakinį:

    KEISTI LENTELĖS automobilių ĮTRAUKTI APRIBOJIMĄ NoDupes UNIKALUS (pavadinimą, metus, būklė, kaina)

  5. Skirtuko Dizainas grupėje Rezultatai spustelėkite Vykdyti.

Puslapio viršus

Pastaba : Mašininio vertimo atsakomybės atsisakymas: Šis straipsnis išverstas naudojant kompiuterinę sistemą be žmogaus įsikišimo. „Microsoft“ pateikia šiuos mašininius vertimus norėdama padėti anglų kalbos nesuprantantiems vartotojams perskaityti turinį apie „Microsoft“ produktus, paslaugas ir technologijas. Šis straipsnis išverstas mašininio vertimo būdu, todėl jame gali būti žodyno, sintaksės ar gramatikos klaidų.

Tobulinkite savo įgūdžius
Ieškoti mokymo
Pirmiausia gaukite naujų funkcijų
Prisijunkite prie „Office Insider“ dalyvių

Ar ši informacija buvo naudinga?

Dėkojame už jūsų atsiliepimus!

Dėkojame už jūsų atsiliepimą! Panašu, kad gali būti naudinga jus sujungti su vienu iš mūsų „Office“ palaikymo agentų.

×