Conectați-vă cu Microsoft
Conectați-vă sau creați un cont.
Salut,
Selectați un alt cont.
Aveți mai multe conturi
Alegeți contul cu care doriți să vă conectați.

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. Acest articol vă poate ajuta, de asemenea, 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ă limba de definiție a datelor pentru a crea, a modifica sau a șterge obiecte din baza de date.

Notă: Data definition language (DDL) face parte din limbajul de interogare structurat (SQL).

Interogările de definiție a datelor pot fi foarte convenabile. Puteți să ștergeți și să creați din nou în mod regulat părți ale schemei de bază de date doar efectuând câteva interogări. Luați în considerare utilizarea unei interogări de definiție date dacă sunteți familiarizat cu declarațiile 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 date pentru a modifica obiectele bazei de date poate fi riscantă, deoarece acțiunile nu sunt însoțite de casetele 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. Aveți grijă când utilizați o interogare de definiție date pentru a modifica obiectele din baza de date. Dacă nu sunteți responsabil pentru menținerea bazei de date pe care o utilizați, trebuie să vă consultați cu administratorul bazei de date înainte să utilizați o interogare de definiție date.

Important: Faceți o copie de rezervă a tuturor tabelelor implicate înainte de a efectua o interogare de definiție date.

Cuvinte cheie DDL

Cuvânt cheie

Utilizare

CREATE

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

ALTER

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

DROP

Ștergerea unui tabel, a unei coloane sau a unei restricții existente.

ADD

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

COLUMN

Utilizați cu ADD, ALTER sau DROP

CONSTRAINT

Utilizați cu ADD, ALTER sau DROP

INDEX

Utilizați cu creare

TABLE

Utilizarea cu ALTER, CREATE sau DROP

Începutul paginii

Crearea sau modificarea unui tabel

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

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

Singurele elemente necesare ale unei comenzi creare tabel sunt comanda Creare tabel propriu-zisă și numele tabelului, dar, de obicei, veți dori 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 vehiculelor uzate pe care le luați în considerare pentru achiziționare. 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ă: Mai întâi, poate fi necesar 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 SQL View.

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

    Creați mașini de tabel (TEXT nume (30), TEXT an (4), monedă de preț)

  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 sau a elimina coloane sau restricții. O comandă ALTER TABLE are următoarea sintaxă:

ALTER TABLE table_name predicate

Unde predicatorul 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 SQL View.

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

    ALTER Cars tabelul Adăugare TEXT condiție coloană (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ă Creare INDEX. O comandă Creare 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 Creare INDEX, numele indicelui, argumentul la, 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ă ca indicele să fie creat în ordine descendentă, care poate fi utilă dacă rulează frecvent interogări care caută valori principale pentru câmpul indexat sau care sortează câmpul indexat în ordine descrescătoare. În mod implicit, se creează un index în ordine ascendentă.

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

  • Argumentul fără permisiune NULL determină ca indicele să solicite ca o valoare să fie introdusă pentru câmpul indexat, adică valorile Null nu sunt permise.

Să presupunem că aveți un tabel numit Cars cu câmpuri care stochează numele, anul, prețul și starea vehiculelor uzate pe care le luați în considerare pentru achiziționare. De asemenea, să presupunem că tabelul a devenit mare și că includeți frecvent câmpul Year în interogări. Puteți să creați un index pe câmpul Year pentru a ajuta interogările să returneze rezultate mai rapid, 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 SQL View.

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

    CREAREA de INDEXuri YearIndex pe autoturisme (an)

  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 trebuie să o îndeplinească un câmp sau o combinație de câmpuri atunci când se inserează valori. De exemplu, o restricție unică împiedică câmpul limitat să accepte o valoare care va dubla o valoare existentă pentru câmp.

O relație este un tip de restricție care face referire la valorile unui câmp sau a unei combinații de câmpuri dintr-un alt tabel pentru a determina dacă o valoare poate fi inserată în câmpul sau în combinația de câmpuri constrânse. 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ă de RESTRICȚIe într-o comandă creare tabel sau ALTER TABLE. Există două tipuri de clauze de RESTRICȚIe: 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ă de RESTRICȚIe pentru un singur câmp urmează imediat definiția câmpului pe care îl limitează ș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 Cars cu câmpuri care stochează numele, anul, prețul și starea vehiculelor uzate pe care le luați în considerare pentru achiziționare. De asemenea, să presupunem că uitați des să introduceți o valoare pentru starea mașinii și că doriți întotdeauna să înregistrați aceste informații. Aveți posibilitatea să creați o restricție în câmpul condiție care vă împiedică să lăsați necompletat câmpul, 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 SQL View.

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

    ALTER TABLE Cars ALTER-RESTRICȚIe TEXT condition ConditionRequired nu este nul

  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 identice. De exemplu, unele dintre mașini au o valoare de condiție slabă , iar altele au o valoare de rău.

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

După ce curățați valorile, astfel încât acestea să fie mai consistente, puteți crea un tabel, denumit CarCondition, cu un câmp, condiție denumită, 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 SQL View.

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

    CREAREA TABELULui 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 coloana condition TEXT restrângere CarConditionPK cheie primară

  6. Pentru a insera valorile din câmpul condiție din tabelul autoturisme în noul tabel CarCondition, tastați următorul SQL în fila obiect SQL View:

    Inserare în CarCondition selectați condiție DISTINCTă din autoturisme;

    Notă: Instrucțiunea SQL din acest pas este un 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 autoturisme să corespundă unei valori a câmpului condiție din tabelul CarCondition, puteți să creați 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 SQL View.

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

    ALTER TABLE Cars ALTER-RESTRICȚIe TEXT condition FKeyCondition referințe CarCondition (condiție)

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

Restricții cu mai multe câmpuri

O clauză de RESTRICȚIe cu mai multe câmpuri poate fi utilizată numai în afara unei clauze de definiție a câmpului ș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 Cars. Să presupunem că doriți să vă asigurați că nu există două înregistrări în tabelul Cars au același set de valori pentru nume, an, condiție și preț. Puteți crea o restricție unică 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 SQL View.

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

    ALTER Cars de tabel adăugarea de RESTRICȚIi unice (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?

Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă utilizatorilor Insider Microsoft Office

Au fost utile aceste informații?

Cât de mulțumit sunteți de calitatea limbajului?
Ce v-a afectat experiența?

Vă mulțumim pentru feedback!

×