Crearea sau modificarea tabelelor sau indexurilor utilizând o interogare de definiție date

Important : Acest articol este tradus automat, consultați exonerarea de răspundere. Versiunea în limba engleză a acestui articol se poate găsi aici pentru referință.

În Microsoft Office Access 2007, este simplu să creați și să modificați tabele, restricțiile și indexuri în vizualizarea proiect și pentru a crea relații utilizând fereastra Relații. Alternativ, puteți să creați și modificați aceste entități același scriind interogările de definiție date în vizualizarea SQL.

Acest articol descrie interogările de definiție date, și demonstrează cum se utilizează aceste interogări pentru a crea tabele, indexuri, restricțiile și relații. Acest articol, de asemenea, vă poate ajuta să decideți când să utilizați o interogare de definiție date.

Ce intenționați?

Aflați când să utilizați o interogare de definiție date

Crearea sau modificarea unui tabel

Crearea unui index

Crearea unei restricții sau a unei relații

Aflați când să utilizați o interogare de definiție date

Spre deosebire de alte interogări, o interogare de definiție date nu regăsiți date. Majoritatea interogările utilizează date manipulare limba (LMD), care cuprinde comenzile de interogare SQL (limbaj structurat) care specifică cum datele de la obiectele bazei de date existente sunt combinate și manipulate pentru a produce rezultate de date pe care doriți. Interogările de definiție date utilizează date definiție limba (DDL), care cuprinde comenzile SQL care specifică definiția obiectelor bazei de date care stochează sau indexa datele și comenzi SQL care controlul accesului utilizatorilor la obiectele bazei de date. În Office Access 2007, o interogare de definiție date definește sau definiția unui obiect de bază de date se modifică.

În general, trebuie să utilizați interfețele de proiectare grafică care Office Access 2007 furnizează (de exemplu, vizualizarea proiect și fereastra Relații) pentru a crea tabele, restricțiile, indexurile și relații. Cu toate acestea, dacă aveți tabele în mod regulat ștergerea și creați din nou, utilizând aceste interfețe poate deveni mult timp. Utilizând o interogare de definiție date, aveți posibilitatea să scrieți o interogare o dată, apoi rulați -l din nou atunci când este necesar. Luați în considerare utilizarea unei interogări de definiție date doar dacă sunteți familiarizat cu instrucțiunile SQL și dacă intenționați să ștergeți și să creați din nou anumite tabele, restricțiile sau indexuri în mod regulat.

Important : Utilizarea interogărilor de definiție date pentru a modifica obiectele bazei de date poate fi riscant, deoarece acțiuni nu sunt însoțit de casete de dialog de confirmare. Dacă faceți o greșeală, puteți pierde datele sau din greșeală modificarea proiectării unui tabel. Fiți atent atunci când utilizați o interogare de definiție date pentru a modifica obiecte din baza de date. Dacă nu sunteți responsabil pentru întreținerea baza de date pe care îl utilizați, ar trebui să consultați administratorul bazei de date înainte de a rula o interogare de definiție date. În plus, este o idee bună să efectuați o copie de rezervă din toate tabelele pe care intenționați să rulați un astfel de interogare.

Începutul paginii

Crearea sau modificarea unui tabel

Pentru a crea un tabel, utilizați comanda 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 [, ...]])

Numai elementele necesare o comandă de creare tabel sunt comanda creare tabel în sine, numele tabelului, cel puțin un câmp și tipul de date din fiecare câmp. Să ne uităm la un exemplu simplu.

Să presupunem că doriți crearea unui tabel care să stocheze numele, anul și prețul mașinilor folosite pe care plănuiți să le cumpărați. Doriți ca numele să aibă cel mult 30 de caractere, iar anul să aibă 4 caractere. Pentru a utiliza o interogare de definiție date pentru a crea tabelul, procedați astfel:

Notă : Trebuie mai întâi să activați conținutul bazei de date pentru ca o interogare de definiție date pentru a rula.

  1. În Bara de mesaje, faceți clic pe Opțiuniși apoi faceți clic pe Activare acest conținut.

  2. Pe fila Creare, în grupul Altele, faceți clic pe Proiectare interogare.

  3. Închideți caseta de dialog Afișare tabel.

  4. În fila Proiect, în grupul Tip interogare, faceți clic pe Definiție date.

    Grila de proiect este ascunsă, iar fila obiectului vizualizare SQL este afișată.

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

    CREATE TABLE Mașini (Nume TEXT(30), An TEXT(4), Preț CURRENCY)

  6. Pe fila Proiect, în grupul Rezultate, faceți clic pe Execuție.

Modificarea unui tabel

Pentru a modifica un tabel, utilizați comanda ALTER TABLE. Utilizați o comandă ALTER TABLE pentru a adăuga, a modifica sau a elimina coloane sau restricții. Comanda ALTER TABLE are următoarea sintaxă:

ALTER TABLE table_name predicate

în cazul în care predicat 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ă adăugați un câmp text de 10 caractere pentru stocarea informațiilor despre starea fiecărei mașini. Pentru aceasta, procedați astfel:

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

  2. Închideți caseta de dialog Afișare tabel.

  3. În fila Proiect, în grupul Tip interogare, faceți clic pe Definiție date.

    Grila de proiect este ascunsă, iar fila obiectului vizualizare SQL este afișată.

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

    ALTER TABLE Mașini ADD COLUMN Stare TEXT(10)

  5. Pe fila Proiect, în grupul Rezultate, faceți clic pe Execuție.

Începutul paginii

Crearea unui index

Pentru a crea un index pentru 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 obligatorii 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 care va fi adăugată la indexare.

  • Argumentul DESC determină crearea indexului în ordine descendentă, ceea ce poate fi util dacă executați frecvent interogări care caută valori superioare pentru câmpul indexat sau care sortează câmpul indexat în ordine descendentă. Implicit, un index se creează în ordine ascendentă.

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

  • Argumentul WITH DISALLOW NULL determină indexul să solicite introducerea unei valori pentru câmpul indexat, adică nu se permit valori Null.

Să presupunem că aveți un tabel denumit Mașini cu câmpuri care stochează numele, anul, prețul și starea mașinilor uzate pe care plănuiți să le cumpărați. De asemenea, să presupunem că tabelul a devenit mare și că adăugați frecvent câmpul de an în interogări. Aveți posibilitatea să creați un index în câmpul An pentru ca interogările să returneze rezultate mai rapid, utilizând următoarea procedură.

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

  2. Închideți caseta de dialog Afișare tabel.

  3. În fila Proiect, în grupul Tip interogare, faceți clic pe Definiție date.

    Grila de proiect este ascunsă, iar fila obiectului vizualizare SQL este afișată.

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

    CREATE INDEX IndexAn ON Mașini (An)

  5. Pe fila Proiect, în grupul Rezultate, faceți clic pe Execuție.

Începutul paginii

Crearea unei restricții sau a unei relații

O restricție stabilește o condiție logică care trebuie respectată de un câmp sau de o combinație de câmpuri atunci când se introduc valori. De exemplu, o restricție UNIQUE împiedică câmpul restricționat să accepte o valoare care dublează o valoare existentă pentru acel câmp.

O relație este un tip de restricție care face referire la valori a unui câmp sau combinație de câmpuri din alt tabel pentru a determina dacă o valoare pot fi inserate în câmpul constrânsă sau combinație de câmpuri.

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

Restricții pentru un singur câmp

O clauză CONSTRAINT pentru un singur câmp urmează imediat după 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 denumit Mașini cu câmpuri care stochează numele, anul, prețul și starea mașinilor uzate pe care plănuiți să le cumpărați. De asemenea, să presupunem că uitați deseori să puneți o valoare pentru starea mașinii și că este necesar să înregistrați întotdeauna aceste informații. Aveți posibilitatea să creați o restricție în câmpul Stare care va împiedica lăsarea câmpul necompletat, utilizând următoarea procedură:

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

  2. Închideți caseta de dialog Afișare tabel.

  3. În fila Proiect, în grupul Tip interogare, faceți clic pe Definiție date.

    Grila de proiect este ascunsă, iar fila obiectului vizualizare SQL este afișată.

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

    ALTER TABLE Mașini ALTER COLUMN Stare TEXT CONSTRAINT StareObligatorie NOT NULL

  5. Pe fila Proiect, în grupul Rezultate, faceți clic pe Execuție.

Acum, să presupunem că, după un timp, puteți observa că există mai multe valori similare în câmpul de stare care ar trebui să fie identice. De exemplu, unele dintre mașini au o valoare de condiții de slabă și altele au o valoare de rău. După ce vă curăța valorile astfel încât să fie mai uniform, puteți crea un tabel, denumită CarCondition, cu un câmp denumit condiție, care conține toate valorile pe care doriți să îl utilizați pentru starea de mașini:

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

  2. Închideți caseta de dialog Afișare tabel.

  3. În fila Proiect, în grupul Tip interogare, faceți clic pe Definiție date.

    Grila de proiect este ascunsă, iar fila obiectului vizualizare SQL este afișată.

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

    CREATE TABLE StareMașină (Stare TEXT(10))

  5. Pe fila Proiect, în grupul Rezultate, faceți clic pe Execuție.

  6. Pentru a insera valorile din câmpul Stare din tabelul Mașini în tabelul nou StareMașini, tastați următorul cod SQL în fila obiectului vizualizare SQL:

    INSERT INTO StareMașină SELECT DISTINCT Stare FROM Mașini;

    Notă : Declarația SQL în 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 un punct și virgulă.

  7. Pe fila Proiect, în grupul Rezultate, faceți clic pe Execuție.

Pentru a solicita ca orice valoare nouă introdusă în câmpul Stare din tabelul Mașini să coincidă cu o valoare din câmpul Stare din tabelul StareMașină, creați o relație între StareMașină și Mașini în câmpul denumit Stare, utilizând următoarea procedură:

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

  2. Închideți caseta de dialog Afișare tabel.

  3. În fila Proiect, în grupul Tip interogare, faceți clic pe Definiție date.

    Grila de proiect este ascunsă, iar fila obiectului vizualizare SQL este afișată.

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

    ALTER TABLE Mașini ALTER COLUMN Stare TEXT CONSTRAINT CondițieChExt REFERENCES StareMașină (Stare)

  5. Pe fila Proiect, în grupul Rezultate, faceți clic pe Execuție.

Restricții de tip câmpuri multiple

O clauză de RESTRICȚIE mai multe câmpuri pot fi utilizate numai în afara o clauză definiție de 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}]}

Să ne uităm la un alt exemplu utilizând tabelul mașini. Să presupunem că doriți să vă asigurați că există două înregistrări în tabelul mașini au același set de valori pentru nume, an, stare și prețul. Puteți crea o restricție unice care se aplică la aceste câmpuri, utilizând următoarea procedură:

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

  2. Închideți caseta de dialog Afișare tabel.

  3. În fila Proiect, în grupul Tip interogare, faceți clic pe Definiție date.

    Grila de proiect este ascunsă, iar fila obiectului vizualizare SQL este afișată.

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

    ALTER TABLE Mașini ADD CONSTRAINT FărăDubluri UNIQUE (nume, an, stare, preț)

  5. Pe fila Proiect, în grupul Rezultate, faceți clic pe Execuție.

Începutul paginii

Notă : Exonerare de răspundere pentru traducere automată: Acest articol a fost tradus de un sistem computerizat, fără intervenție umană. Microsoft oferă aceste traduceri automate pentru a ajuta utilizatorii vorbitori de alte limbi decât engleza să beneficieze de conținutul despre produsele, serviciile și tehnologiile Microsoft. Pentru că articolul a fost tradus de un computer, poate conține erori de vocabular, sintaxă sau gramatică.

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

Au fost utile aceste informații?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×