Applies ToAccess pentru Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Puteți să creați și să modificați tabele, restricții, indexuri și relații în Access, scriind interogări de definiție date în vizualizarea SQL. Acest articol explică interogările de definiție a datelor și cum să le utilizați pentru a crea tabele, restricții, indexuri și relații. De asemenea, acest articol vă poate ajuta să decideți când să utilizați o interogare de definiție date.

În acest articol

Prezentare generală

Spre deosebire de alte interogări Access, o interogare de definiție date nu regăsește date. În schimb, o interogare de definiție date utilizează Data Definition Language pentru a crea, a modifica sau a șterge obiecte din baza de date.

Notă: Data Definition Language (DDL) face parte din Structured Query Language (SQL).

Interogările de definiție a datelor pot fi foarte convenabile. Puteți șterge și crea din nou în mod regulat părți ale schemei bazei de date rulând doar câteva interogări. Luați în considerare utilizarea unei interogări de definiție a datelor dacă sunteți familiarizat cu instrucțiunile SQL și intenționați să ștergeți și să creați din nou anumite tabele, restricții, indexuri sau relații.

Avertisment: Utilizarea interogărilor de definiție a datelor pentru a modifica obiectele bazei de date poate fi riscantă, deoarece acțiunile nu sunt însoțite de casete de dialog de confirmare. Dacă faceți o greșeală, puteți să pierdeți date sau să modificați din greșeală proiectarea unui tabel. Fiți atent atunci când utilizați o interogare de definiție date pentru a modifica obiectele din baza de date. Dacă nu sunteți responsabil pentru întreținerea bazei de date pe care o utilizați, consultați administratorul bazei de date înainte de a rula o interogare de definiție date.

Important: Faceți o copie backup a tabelelor implicate înainte de a rula o interogare de definiție date.

Cuvinte cheie DDL

Cuvânt cheie

Utilizați

CREATE

Creați un index sau un tabel care nu există deja.

ALTER

Modificați un tabel sau o coloană existentă.

DROP

Ștergeți un tabel, o coloană sau o restricție existente.

ADD

Adăugați o coloană sau o restricție la un tabel.

COLUMN

Utilizarea cu ADD, ALTER sau DROP

CONSTRAINT

Utilizarea cu ADD, ALTER sau DROP

INDEX

Utilizați cu CREATE

TABLE

Utilizarea cu ALTER, CREATE sau DROP

Începutul paginii

Crearea sau modificarea unui tabel

Pentru a crea un tabel, utilizați o comandă CREATE TABLE. O comandă CREATE TABLE are următoarea sintaxă:

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

Singurele elemente obligatorii ale unei comenzi CREATE TABLE sunt comanda CREATE TABLE și numele tabelului, dar, de obicei, se recomandă să definiți unele câmpuri sau alte aspecte ale tabelului. Luați în considerare acest exemplu simplu.

Să presupunem că doriți să creați un tabel pentru a stoca numele, anul și prețul mașinilor utilizate pe care le luați în considerare pentru cumpărare. Doriți să permiteți până la 30 de caractere pentru nume și 4 caractere pentru an. Pentru a utiliza o interogare de definiție date pentru a crea tabelul, procedați astfel:

Notă: Poate fi necesar mai întâi să activați conținutul bazei de date pentru ca o interogare de definiție de date să ruleze:

  • În Bara de mesaje, faceți clic pe Activare conținut.

Crearea unui tabel

  1. Pe fila Creare , în grupul Macrocomenzi & Cod , faceți clic pe Proiectare interogare.

  2. Pe fila Proiectare , în grupul Tip interogare , faceți clic pe Definiție date.

    Grila de proiectare este ascunsă și se afișează fila obiect a vizualizării SQL.

  3. Tastați următoarea instrucțiune SQL:

    CREATE TABLE Cars (Name TEXT(30), Year TEXT(4), Price CURRENCY)

  4. Pe fila Proiectare, în grupul Rezultate, faceți clic pe Rulare.

Modificarea unui tabel

Pentru a modifica un tabel, utilizați o comandă ALTER TABLE. Puteți utiliza o comandă ALTER TABLE pentru a adăuga, a modifica sau a fixa (a elimina) coloane sau restricții. O comandă ALTER TABLE are următoarea sintaxă:

ALTER TABLE table_name predicate

unde predicatul poate fi oricare dintre următoarele:

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

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

Să presupunem că doriți să adăugați un câmp text de 10 caractere pentru a stoca informații despre starea fiecărei mașini. Puteți face următoarele lucruri:

  1. Pe fila Creare , în grupul Macrocomenzi & Cod , faceți clic pe Proiectare interogare.

  2. Pe fila Proiectare , în grupul Tip interogare , faceți clic pe Definiție date.

    Grila de proiectare este ascunsă și se afișează fila obiect a vizualizării SQL.

  3. Tastați următoarea instrucțiune SQL:

    ALTER TABLE Cars ADD COLUMN Condition TEXT(10)

  4. Pe fila Proiectare, în grupul Rezultate, faceți clic pe Rulare.

Începutul paginii

Crearea unui index

Pentru a crea un index într-un tabel existent, utilizați o comandă CREATE INDEX. O comandă CREATE INDEX are următoarea sintaxă:

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

Singurele elemente necesare sunt comanda CREATE INDEX, numele indexului, argumentul ON, numele tabelului care conține câmpurile pe care doriți să le indexați și lista de câmpuri de inclus în index.

  • Argumentul DESC determină crearea indexului în ordine descendentă, ceea ce poate fi util dacă rulați frecvent interogări care caută valori de top pentru câmpul indexat sau care sortează câmpul indexat în ordine descendentă. În mod implicit, un index este creat în ordine ascendentă.

  • Argumentul WITH PRIMARY stabilește câmpul sau câmpurile indexate ca cheie primară a tabelului.

  • Argumentul WITH DISALLOW NULL face ca indexul să solicite introducerea unei valori pentru câmpul indexat, adică nu sunt permise valori nule.

Să presupunem că aveți un tabel numit Mașini cu câmpuri care stochează numele, anul, prețul și starea mașinilor utilizate pe care le luați în considerare pentru cumpărare. De asemenea, să presupunem că tabelul a devenit mare și că includeți frecvent câmpul an în interogări. Puteți crea un index în câmpul An pentru a ajuta interogările să returneze mai rapid rezultate, utilizând următoarea procedură:

  1. Pe fila Creare , în grupul Macrocomenzi & Cod , faceți clic pe Proiectare interogare.

  2. Pe fila Proiectare , în grupul Tip interogare , faceți clic pe Definiție date.

    Grila de proiectare este ascunsă și se afișează fila obiect a vizualizării SQL.

  3. Tastați următoarea instrucțiune SQL:

    CREATE INDEX YearIndex ON Cars (Year)

  4. Pe fila Proiectare, în grupul Rezultate, faceți clic pe Rulare.

Începutul paginii

Crearea unei restricții sau a unei relații

O restricție stabilește o condiție logică pe care un câmp sau o combinație de câmpuri trebuie să o îndeplinească atunci când sunt inserate valori. De exemplu, o restricție UNIQUE împiedică câmpul restricționat să accepte o valoare care ar dubla o valoare existentă pentru câmp.

O relație este un tip de restricție care se referă la valorile unui câmp sau ale unei combinații de câmpuri din alt tabel pentru a determina dacă o valoare poate fi inserată în câmpul restricționat sau în combinația de câmpuri. Nu utilizați un cuvânt cheie special pentru a indica faptul că o restricție este o relație.

Pentru a crea o restricție, utilizați o clauză CONSTRAINT într-o comandă CREATE TABLE sau ALTER TABLE. Există două tipuri de clauze CONSTRAINT: una pentru crearea unei restricții pentru un singur câmp și alta pentru crearea unei restricții pentru mai multe câmpuri.

Restricții pentru un singur câmp

O clauză CONSTRAINT cu un singur câmp urmează imediat definiția câmpului pe care îl restricționează și are următoarea sintaxă:

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

Să presupunem că aveți un tabel numit Mașini cu câmpuri care stochează numele, anul, prețul și starea mașinilor utilizate pe care le luați în considerare pentru cumpărare. De asemenea, să presupunem că uitați frecvent să introduceți o valoare pentru starea mașinii și că doriți întotdeauna să înregistrați aceste informații. Puteți crea o restricție pentru câmpul Condiție care vă împiedică să lăsați câmpul necompletat, utilizând următoarea procedură:

  1. Pe fila Creare , în grupul Macrocomenzi & Cod , faceți clic pe Proiectare interogare.

  2. Pe fila Proiectare , în grupul Tip interogare , faceți clic pe Definiție date.

    Grila de proiectare este ascunsă și se afișează fila obiect a vizualizării SQL.

  3. Tastați următoarea instrucțiune SQL:

    ALTER TABLE Cars ALTER COLUMN Condiție TEXT CONSTRAINT CondițieObligatoriu NU NULL

  4. Pe fila Proiectare, în grupul Rezultate, faceți clic pe Rulare.

Acum să presupunem că, după un timp, observați că există multe valori similare în câmpul Condiție care ar trebui să fie aceleași. De exemplu, unele dintre mașini au o valoare condiție de săraci , iar altele au o valoare de rău.

Notă: Dacă doriți să urmați împreună cu procedurile rămase, adăugați câteva date false în tabelul Mașini pe care l-ați creat în pașii anteriori.

După ce curățați valorile astfel încât să fie mai unitare, puteți crea un tabel numit CarCondition cu un câmp, denumit Condiție, care conține toate valorile pe care doriți să le utilizați pentru starea mașinilor:

  1. Pe fila Creare , în grupul Macrocomenzi & Cod , faceți clic pe Proiectare interogare.

  2. Pe fila Proiectare , în grupul Tip interogare , faceți clic pe Definiție date.

    Grila de proiectare este ascunsă și se afișează fila obiect a vizualizării SQL.

  3. Tastați următoarea instrucțiune SQL:

    CREATE TABLE CarCondition (Text condiție(10))

  4. Pe fila Proiectare, în grupul Rezultate, faceți clic pe Rulare.

  5. Creați o cheie primară pentru tabel utilizând o instrucțiune ALTER TABLE:

    ALTER TABLE CarCondition ALTER COLUMN Condiție TEXT CONSTRAINT CHEIA PRIMARĂ CarConditionPK

  6. Pentru a insera valorile din câmpul Condiție din tabelul Mașini în noul tabel CarCondition, tastați următorul SQL în fila obiect a vizualizării SQL:

    INSERT INTO CarCondition SELECT DISTINCT Condition FROM Cars;

    Notă: Instrucțiunea SQL din acest pas este o interogare de adăugare. Spre deosebire de o interogare de definiție date, o interogare de adăugare se termină cu punct și virgulă.

  7. Pe fila Proiectare, în grupul Rezultate, faceți clic pe Rulare.

Crearea unei relații utilizând o restricție

Pentru a solicita ca orice valoare nouă inserată în câmpul Condiție din tabelul Mașini se potrivește cu o valoare a câmpului Condiție din tabelul CarCondition, puteți crea apoi o relație între CarCondition și Mașini în câmpul denumit Condiție, utilizând următoarea procedură:

  1. Pe fila Creare , în grupul Macrocomenzi & Cod , faceți clic pe Proiectare interogare.

  2. Pe fila Proiectare , în grupul Tip interogare , faceți clic pe Definiție date.

    Grila de proiectare este ascunsă și se afișează fila obiect a vizualizării SQL.

  3. Tastați următoarea instrucțiune SQL:

    ALTER TABLE Cars ALTER COLUMN Condiție TEXT CONSTRAINT FKeyCondition REFERINȚE CarCondition (Condiție)

  4. Pe fila Proiectare, în grupul Rezultate, faceți clic pe Rulare.

Restricții pentru mai multe câmpuri

O clauză CONSTRAINT cu mai multe câmpuri poate fi utilizată numai în afara unei clauze de definiție câmp și are următoarea sintaxă:

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

Luați în considerare un alt exemplu care utilizează tabelul Mașini. Să presupunem că doriți să vă asigurați că două înregistrări din tabelul Mașini nu au același set de valori pentru Nume, An, Condiție și Preț. Puteți crea o restricție UNIQUE care se aplică acestor câmpuri, utilizând următoarea procedură:

  1. Pe fila Creare , în grupul Macrocomenzi & Cod , faceți clic pe Proiectare interogare.

  2. Pe fila Proiectare , în grupul Tip interogare , faceți clic pe Definiție date.

    Grila de proiectare este ascunsă și se afișează fila obiect a vizualizării SQL.

  3. Tastați următoarea instrucțiune SQL:

    ALTER TABLE Cars ADD CONSTRAINT NoDupes UNIQUE (nume, an, condiție, preț)

  4. Pe fila Proiectare, în grupul Rezultate, faceți clic pe Rulare.

Începutul paginii

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.

Comunitățile vă ajută să adresați întrebări și să răspundeți la întrebări, să oferiți feedback și să primiți feedback de la experți cu cunoștințe bogate.