Tabulu vai indeksu izveide vai modificēšana, izmantojot datu definīcijas vaicājumu

Attiecas uz
Access pakalpojumam Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Programmā Access var izveidot un modificēt tabulas, ierobežojumus, indeksus un relācijas, SQL skatā rakstot datu definīcijas vaicājumus. Šajā rakstā ir izskaidroti datu definīcijas vaicājumi un kā tos izmantot, lai izveidotu tabulas, ierobežojumus, indeksus un relācijas. Šis raksts var arī palīdzēt izlemt, kad izmantot datu definīcijas vaicājumu.

Tēmas šajā rakstā

Pārskats

Atšķirībā no citiem Access vaicājumiem datu definīcijas vaicājums neizgūst datus. Tā vietā datu definīcijas vaicājums izmanto datu definēšanas valodu, lai izveidotu, modificētu vai dzēstu datu bāzes objektus.

Piezīme

Datu definēšanas valoda (DDL) ir strukturētās vaicājumvalodas (Structured Query Language — SQL) daļa.

Datu definēšanas vaicājumi var būt ļoti ērti. Varat regulāri dzēst un atkārtoti izveidot savas datu bāzes shēmas daļas, tikai izpildot dažus vaicājumus. Apsveriet iespēju izmantot datu definīcijas vaicājumu, ja pārzināt SQL priekšrakstus un plānojat dzēst un atkārtoti izveidot noteiktas tabulas, ierobežojumus, indeksus vai relācijas.

Brīdinājums

Datu definēšanas vaicājumu izmantošana datu bāzes objektu modificēšanai var būt riskanta, jo darbības netiek papildinātas ar apstiprinājuma dialoglodziņiem. Kļūdas gadījumā varat zaudēt datus vai nejauši mainīt tabulas noformējumu. Esiet piesardzīgs, kad izmantojat datu definīcijas vaicājumu, lai modificētu objektus savā datu bāzē. Ja neesat atbildīgs par izmantotās datu bāzes uzturēšanu, pirms datu definīcijas vaicājuma izpildes sazinieties ar datu bāzes administratoru.

Svarīgi!

Pirms datu definīcijas vaicājuma izpildes izveidojiet visu iesaistīto tabulu dublējumkopiju.

DDL atslēgvārdi

Atslēgvārds Izmantojiet
CREATE Izveidojiet indeksu vai tabulu, kas vēl nepastāv.
ALTER Esošas tabulas vai kolonnas modificēšana.
DROP Dzēst esošu tabulu, kolonnu vai ierobežojumu.
ADD Kolonnas vai ierobežojuma pievienošana tabulai.
COLUMN Izmantojiet ar funkcijām ADD, ALTER vai DROP
CONSTRAINT Izmantojiet ar funkcijām ADD, ALTER vai DROP
INDEX Lietošana ar funkciju CREATE
TABLE Izmantojiet ar ALTER, CREATE vai DROP

Uz lapas sākumu

Tabulas izveide vai modificēšana

Lai izveidotu tabulu, jāizmanto komanda IZVEIDOT TABULU. Komandas TABULAS IZVEIDE sintakse ir šāda:

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

Vienīgie obligātie komandas CREATE TABLE elementi ir pati komanda CREATE TABLE un tabulas nosaukums, bet parasti vēlēsities definēt dažus tabulas laukus vai citus aspektus. Aplūkosim šo vienkāršo piemēru.

Pieņemsim, ka vēlaties izveidot tabulu, kurā saglabātu lietotu automašīnu, kuru iegādei vēlaties paredzēto automašīnu, nosaukumu, gadu un cenu. Nosaukumā nedrīkst būt vairāk par 30 rakstzīmēm, bet gadā — līdz 4 rakstzīmēm. Lai izmantotu datu definīcijas vaicājumu tabulas izveidei, rīkojieties šādi:

Piezīme

Iespējams, vispirms būs jāiespējo datu bāzes saturs, lai izpildītu datu definīcijas vaicājumu:

  • Ziņojumu joslā noklikšķiniet uz Iespējot saturu.

Tabulas izveidošana

  1. Cilnes Izveide grupā Makro & kods noklikšķiniet uz Vaicājuma noformējums.
  2. Cilnes Noformējums grupā Vaicājuma tips noklikšķiniet uz Datu definīcija.
    Noformējuma režģis tiek paslēpts, un tiek rādīta SQL skata objekta cilne.
  3. Ierakstiet šādu SQL priekšrakstu:
    CREATE TABLE Cars (vārds, uzvārds: TEXT(30), Gads, TEXT(4), Cena, VALŪTA)
  4. Cilnes Noformējums grupā Rezultāti noklikšķiniet uz Izpildīt.

Tabulas modificēšana

Lai modificētu tabulu, jāizmanto komanda ALTER TABLE. Komandu ALTER TABLE var izmantot, lai pievienotu, modificētu vai atmestu (noņemtu) kolonnas vai ierobežojumus. Komandas ALTER TABLE sintakse ir šāda:

ALTER TABLE table_name predicate

kur predikāts var būt jebkurš no šiem vārdiem:

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

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

Pieņemsim, ka vēlaties pievienot 10 rakstzīmju teksta lauku, lai saglabātu informāciju par katras automašīnas stāvokli. Varat rīkoties šādi:

  1. Cilnes Izveide grupā Makro & kods noklikšķiniet uz Vaicājuma noformējums.
  2. Cilnes Noformējums grupā Vaicājuma tips noklikšķiniet uz Datu definīcija.
    Noformējuma režģis tiek paslēpts, un tiek rādīta SQL skata objekta cilne.
  3. Ierakstiet šādu SQL priekšrakstu:
    ALTER TABLE Automašīnas ADD COLUMN Nosacījuma teksts(10)
  4. Cilnes Noformējums grupā Rezultāti noklikšķiniet uz Izpildīt.

Uz lapas sākumu

Alfabētiskā rādītāja izveide

Lai izveidotu indeksu esošai tabulai, jāizmanto komanda CREATE INDEX. Komandas CREATE INDEX sintakse ir šāda:

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

Nepieciešamie elementi ir tikai komanda CREATE INDEX, indeksa nosaukums, arguments ON, tās tabulas nosaukums, kurā ir indeksējamie lauki, un indeksā iekļaujamo lauku saraksts.

  • Arguments DESC liek indeksa izveidi dilstošā secībā, kas var būt noderīgi, ja bieži izpildāt vaicājumus, kuros tiek meklētas indeksētā lauka augstākās vērtības vai indeksētā lauka kārtošana dilstošā secībā. Pēc noklusējuma indekss tiek izveidots augošā secībā.
  • Arguments WITH PRIMARY nosaka indeksēto lauku vai laukus kā tabulas primāro atslēgu.
  • Arguments WITH DISALLOW NULL liek indeksam pieprasīt, lai indeksētajā laukā tiktu ievadīta vērtība, tas ir, vērtības Null netiek atļautas.

Pieņemsim, ka jums ir tabula ar nosaukumu Automašīnas ar laukiem, kuros saglabāti lietotu automašīnu, kuru iegādei vēlaties paredzēt, nosaukums, gads, cena un stāvoklis. Pieņemsim arī to, ka tabula ir kļuvusi liela un vaicājumos bieži iekļaujat lauku "gads". Varat izveidot indeksu laukā Year, lai vaicājumiem palīdzētu ātrāk atgriezt rezultātus, izmantojot šo procedūru:

  1. Cilnes Izveide grupā Makro & kods noklikšķiniet uz Vaicājuma noformējums.
  2. Cilnes Noformējums grupā Vaicājuma tips noklikšķiniet uz Datu definīcija.
    Noformējuma režģis tiek paslēpts, un tiek rādīta SQL skata objekta cilne.
  3. Ierakstiet šādu SQL priekšrakstu:
    CREATE INDEX YearIndex ON Automašīnas (gads)
  4. Cilnes Noformējums grupā Rezultāti noklikšķiniet uz Izpildīt.

Uz lapas sākumu

Ierobežojuma vai relācijas izveide

Ierobežojums izveido loģisku nosacījumu, kuram laukam vai lauku kombinācijai jāatbilst, kad tiek ievietotas vērtības. Piemēram, ierobežojums UNIQUE neļauj ierobežotajam laukam akceptēt vērtību, kas dublētu esošo lauka vērtību.

Relācija ir ierobežojuma tips, kas attiecas uz lauka vērtībām vai lauku kombināciju citā tabulā, lai noteiktu, vai vērtību var ievietot ierobežotajā laukā vai lauku kombinācijā. Īpašu atslēgvārdu neizmanto, lai norādītu, ka ierobežojums ir relācija.

Lai izveidotu ierobežojumu, jāizmanto klauzula CONSTRAINT komandā CREATE TABLE vai ALTER TABLE. Ir divu veidu klauzulas CONSTRAINT: viena ierobežojuma izveidei atsevišķam laukam un otra ierobežojuma izveidei vairākiem laukiem.

Ierobežojumi vienam laukam

Viena lauka klauzula CONSTRAINT nekavējoties seko tā ierobežojošā lauka definīcijai, un tai ir šāda sintakse:

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

Pieņemsim, ka jums ir tabula ar nosaukumu Automašīnas ar laukiem, kuros saglabāti lietotu automašīnu, kuru iegādei vēlaties paredzēt, nosaukums, gads, cena un stāvoklis. Pieņemsim arī, ka bieži esat aizmirsis ievadīt automašīnas stāvokļa vērtību un vienmēr vēlaties reģistrēt šo informāciju. Varat izveidot ierobežojumu laukā Nosacījums, kas neļauj atstāt lauku tukšu, veicot tālāk norādītās darbības.

  1. Cilnes Izveide grupā Makro & kods noklikšķiniet uz Vaicājuma noformējums.
  2. Cilnes Noformējums grupā Vaicājuma tips noklikšķiniet uz Datu definīcija.
    Noformējuma režģis tiek paslēpts, un tiek rādīta SQL skata objekta cilne.
  3. Ierakstiet šādu SQL priekšrakstu:
    ALTER TABLE Automašīnas ALTER COLUMN Nosacījums TEKSTA IEROBEŽOJUMS NosacījumsObligāts NOT NULL
  4. Cilnes Noformējums grupā Rezultāti noklikšķiniet uz Izpildīt.

Pieņemsim, ka pēc kāda laika pamanāt, ka laukā Nosacījums ir daudz līdzīgu vērtību, kurām vajadzētu būt tādām pašām. Piemēram, dažām automašīnām nosacījuma vērtība ir slikta , bet citām – slikta.

Piezīme

Ja vēlaties veikt citas darbības, pievienojiet dažus viltus datus tabulā Automašīnas, kuru izveidojāt, veicot iepriekš norādītās darbības.

Pēc vērtību iztīrīšanas, lai tās būtu konsekventākas, varat izveidot tabulu ar nosaukumu CarCondition ar vienu lauku ar nosaukumu Nosacījums, kurā ir visas vērtības, kuras vēlaties izmantot automašīnu stāvoklim:

  1. Cilnes Izveide grupā Makro & kods noklikšķiniet uz Vaicājuma noformējums.

  2. Cilnes Noformējums grupā Vaicājuma tips noklikšķiniet uz Datu definīcija.
    Noformējuma režģis tiek paslēpts, un tiek rādīta SQL skata objekta cilne.

  3. Ierakstiet šādu SQL priekšrakstu:
    IZVEIDOT TABULU CarCondition (nosacījuma teksts(10))

  4. Cilnes Noformējums grupā Rezultāti noklikšķiniet uz Izpildīt.

  5. Izveidojiet tabulas primāro atslēgu, izmantojot priekšrakstu ALTER TABLE:
    ALTER TABLE CarCondition ALTER COLUMN Nosacījuma teksta IEROBEŽOJUMS CarConditionPK PRIMĀRĀ ATSLĒGA

  6. Lai ievietotu vērtības no tabulas Automašīnas lauka Nosacījums jaunajā tabulā CarCondition, SQL skata objekta cilnē ierakstiet šādu SQL kodu:
    INSERT INTO CarCondition SELECT DISTINCT Condition FROM Cars;

    Piezīme

    SQL priekšraksts šajā darbībā ir pievienošanas vaicājums. Atšķirībā no datu definīcijas vaicājuma pievienošanas vaicājums beidzas ar semikolu.

  7. Cilnes Noformējums grupā Rezultāti noklikšķiniet uz Izpildīt.

Relācijas izveide, izmantojot ierobežojumu

Lai pieprasītu, lai jebkura jauna vērtība, kas ievietota tabulas Automašīnas laukā Nosacījums, atbilstu tabulas CarCondition lauka Condition vērtībai, varat izveidot relāciju starp CarCondition un Cars laukā ar nosaukumu Nosacījums, veicot tālāk norādīto procedūru.

  1. Cilnes Izveide grupā Makro & kods noklikšķiniet uz Vaicājuma noformējums.
  2. Cilnes Noformējums grupā Vaicājuma tips noklikšķiniet uz Datu definīcija.
    Noformējuma režģis tiek paslēpts, un tiek rādīta SQL skata objekta cilne.
  3. Ierakstiet šādu SQL priekšrakstu:
    ALTER TABLE Automašīnas ALTER COLUMN Nosacījuma teksta ierobežojums FKeyCondition REFERENCES CarCondition (nosacījums)
  4. Cilnes Noformējums grupā Rezultāti noklikšķiniet uz Izpildīt.

Ierobežojumi vairākiem laukiem

Klauzulu CONSTRAINT vairākos laukos var lietot tikai ārpus lauka definīcijas klauzulas, un tās sintakse ir šāda:

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

Apsveriet citu piemēru, kurā tiek izmantota tabula Automašīnas. Pieņemsim, ka vēlaties pārliecināties, vai diviem tabulas Automašīnas ierakstiem nav vienādas nosaukuma, gada, nosacījuma un cenas vērtību kopas. Varat izveidot ierobežojumu UNIQUE, kas attiecas uz šiem laukiem, veicot tālāk norādītās darbības.

  1. Cilnes Izveide grupā Makro & kods noklikšķiniet uz Vaicājuma noformējums.
  2. Cilnes Noformējums grupā Vaicājuma tips noklikšķiniet uz Datu definīcija.
    Noformējuma režģis tiek paslēpts, un tiek rādīta SQL skata objekta cilne.
  3. Ierakstiet šādu SQL priekšrakstu:
    ALTER TABLE Automašīnas ADD CONSTRAINT NoDupes UNIQUE (vārds, gads, nosacījums, cena)
  4. Cilnes Noformējums grupā Rezultāti noklikšķiniet uz Izpildīt.

Uz lapas sākumu