Oprette eller redigere tabeller eller indeks ved hjælp af en datadefinitionsforespørgsel

Vigtigt: Denne artikel er maskinoversat. Se ansvarsfraskrivelsen. Du kan finde den engelske version af denne artikel her til din orientering.

I Microsoft Office Access 2007 er det nemt at oprette og redigere tabeller, begrænsninger og indeks i designvisning, og til at oprette relationer ved hjælp af Vinduet Relationer. Du kan også oprette og redigere disse samme objekter ved at skrive data definition forespørgsler i SQL-visning.

I denne artikel beskrives datadefinitionsforespørgsel forespørgsler, og viser, hvordan du bruger disse forespørgsler til at oprette tabeller, indeks, begrænsninger og relationer. I denne artikel kan også hjælpe dig med at beslutte, hvornår du skal bruge en datadefinitionsforespørgsel.

Hvad vil du foretage dig?

Se, hvornår du skal bruge en datadefinitionsforespørgsel

Oprette eller redigere en tabel

Oprette et indeks

Oprette en begrænsning eller relation

Se, hvornår du skal bruge en datadefinitionsforespørgsel

I modsætning til andre forespørgsler hente en datadefinitionsforespørgsel ikke data. De fleste forespørgsler Brug Data Strengmanipulation sprog (DML), som omfatter SQL Structured Query Language ()-kommandoer, som angiver, hvordan data fra eksisterende databaseobjekter kombineres og ændres for at producere resultatet, data, du vil. Data definition forespørgsler bruger Data Definition Language (DDL), som omfatter SQL-kommandoer, som angiver definitionen af databaseobjekter, gemme eller indeksere data og SQL-kommandoer, der styrer brugeradgang til databaseobjekter. I Office Access 2007, en datadefinitionsforespørgsel definerer eller ændrer definitionen af et databaseobjekt.

Generelt, skal du bruge grafiske design-grænseflader, Office Access 2007 indeholder (for eksempel, designvisning og vinduet relationer) for at oprette tabeller, begrænsninger, indeks og relationer. Men hvis du har tabeller, du jævnligt slette og genoprette, ved hjælp af disse grænseflader blive tidskrævende. Ved hjælp af en datadefinitionsforespørgsel, kan du skrive en forespørgsel én gang, og derefter køre den igen, når det er nødvendigt. Overvej at bruge en datadefinitionsforespørgsel kun, hvis du allerede kender, SQL-sætninger, og hvis du planlægger at slette og gendanne bestemt tabeller, begrænsninger eller indeks jævnligt.

Vigtigt: Brug af data definition forespørgsler til at redigere databaseobjekter kan være risikabel, fordi handlingerne, der ikke er sammen med bekræftelsesdialogbokse. Hvis du laver en fejl, kan du miste data eller kommer til at ændre designet af en tabel. Vær forsigtig, når du bruger en datadefinitionsforespørgsel til at ændre objekter i databasen. Hvis du ikke er ansvarlig for at vedligeholde den database, du bruger, skal du kontakte administratoren af databasen, før du kører en datadefinitionsforespørgsel. Desuden er det en god ide at oprette en sikkerhedskopi af alle tabeller, du er ved at køre sådanne en forespørgsel.

Toppen af siden

Oprette eller redigere en tabel

Hvis du vil oprette en tabel, skal du bruge en CREATE TABLE-kommando. En CREATE TABLE-kommando har følgende syntaks:

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

Kun påkrævet elementerne i en CREATE TABLE-kommando er kommandoen CREATE TABLE selve, navnet på tabellen, mindst ét felt og datatypen for hvert felt. Lad os se på et enkelt eksempel.

Lad os antage, at du vil oprette en tabel for at gemme navn, år og pris på brugte biler, som du overvejer at købe. Du ønsker, at navnet må være op til 30 tegn langt, og at året må være fire tegn langt. Hvis du vil bruge en datadefinitionsforespørgsel til at oprette tabellen, skal du gøre følgende:

Bemærk: Du skal først aktivere indholdet af databasen i rækkefølge for en datadefinitionsforespørgsel til at køre.

  1. Klik på IndstillingerMeddelelseslinjen, og klik derefter på Aktivér indholdet.

  2. Klik på Forespørgselsdesign i gruppen Andet under fanen Opret.

  3. Luk dialogboksen Vis tabel.

  4. Klik på Datadefinition i gruppen Forespørgselstype under fanen Design.

    Designgitteret er skjult, og objektfanen i SQL-visningen vises.

  5. Indtast følgende SQL-sætning:

    CREATE TABLE Biler (Navn TEXT(30), År TEXT(4), Pris CURRENCY)

  6. Klik på Kør i gruppen Resultater under fanen Design.

Redigere en tabel

Hvis du vil redigere en tabel, skal du bruge en ALTER TABLE-kommando. Du kan bruge en ALTER TABLE-kommando til at tilføje (add), redigere (modify) eller fjerne (drop) kolonner eller begrænsninger. En ALTER TABLE-kommando har følgende syntaks:

ALTER TABLE table_name predicate

hvor prædikat kan være en af følgende:

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

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

Lad os antage, at du ønsker at tilføje et tekstfelt med 10 tegn til at gemme oplysninger om hver enkelt bils tilstand. Du kan gøre følgende:

  1. Klik på Forespørgselsdesign i gruppen Andet under fanen Opret.

  2. Luk dialogboksen Vis tabel.

  3. Klik på Datadefinition i gruppen Forespørgselstype under fanen Design.

    Designgitteret er skjult, og objektfanen i SQL-visningen vises.

  4. Indtast følgende SQL-sætning:

    ALTER TABLE Biler ADD COLUMN Tilstand TEXT(10)

  5. Klik på Kør i gruppen Resultater under fanen Design.

Toppen af siden

Oprette et indeks

Hvis du vil oprette et indeks for en eksisterende tabel, skal du bruge en CREATE INDEX-kommando. En CREATE INDEX-kommando har følgende syntaks:

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

De eneste påkrævede elementer er CREATE INDEX-kommandoen, navnet på indekset, argumentet ON, navnet på den tabel, der indeholder de felter, du vil indeksere, og listen over felter, der skal inkluderes i indekset.

  • Argumentet DESC forårsager, at indekset oprettes i faldende rækkefølge, hvilket kan være nyttigt, hvis du jævnligt kører forespørgsler, der søger efter topværdier for det indekserede felt, eller som sorterer det indekserede felt i faldende rækkefølge. Et indeks oprettes som standard i stigende rækkefølge.

  • Argumentet med primære opretter det eller de indekserede felter som primær nøgle i tabellen.

  • Argumentet WITH DISALLOW NULL forårsager, at indekset kræver, at der angives en værdi for det indekserede felt – det vil sige, at null-værdier ikke tillades.

Lad os antage, at du har en tabel, der hedder Biler, med felter, der gemmer navn, år, pris og tilstand for brugte biler, som du overvejer at købe. Lad os også antage, at tabellen er blevet stor, og at du ofte inkluderer feltet med år i forespørgsler. Du kan oprette et indeks for feltet År for at få forespørgslerne til at returnere resultater hurtigere ved at bruge følgende fremgangsmåde:

  1. Klik på Forespørgselsdesign i gruppen Andet under fanen Opret.

  2. Luk dialogboksen Vis tabel.

  3. Klik på Datadefinition i gruppen Forespørgselstype under fanen Design.

    Designgitteret er skjult, og objektfanen i SQL-visningen vises.

  4. Indtast følgende SQL-sætning:

    CREATE INDEX Årsindeks ON Biler (År)

  5. Klik på Kør i gruppen Resultater under fanen Design.

Toppen af siden

Oprette en begrænsning eller relation

En begrænsning fastsætter en logisk betingelse, der angiver, at et felt eller en kombination af felter skal opfyldes, når der indsættes værdier. En UNIQUE-begrænsning forhindrer f.eks., at det begrænsede felt accepterer en værdi, der duplikerer en eksisterende værdi for feltet.

En relation er en type af betingelse, der refererer til værdier i et felt eller en kombination af felter i en anden tabel til at afgøre, om en værdi kan indsættes i det begrænsede felt eller en kombination af felter.

Hvis du vil oprette en begrænsning, skal du bruge en CONSTRAINT-delsætning i en CREATE TABLE- eller ALTER TABLE-kommando. Der er to slags CONSTRAINT-delsætninger: En til oprettelse af en begrænsning for et enkelt felt og en anden til oprettelse af en begrænsning for flere felter.

Begrænsninger for ét felt

En CONSTRAINT-delsætning med ét felt følger lige efter definitionen på det felt, som den begrænser, og har følgende syntaks:

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

Lad os antage, at du har en tabel, der hedder Biler, med felter, der gemmer navn, år, pris og tilstand for brugte biler, som du overvejer at købe. Lad os også antage, at du jævnligt glemmer at angive en værdi for bilens_tilstand, og at du altid ønsker at registrere disse oplysninger. Du kan oprette en begrænsning på feltet Tilstand, der forhindrer, at du lader feltet stå tomt, ved at bruge følgende fremgangsmåde:

  1. Klik på Forespørgselsdesign i gruppen Andet under fanen Opret.

  2. Luk dialogboksen Vis tabel.

  3. Klik på Datadefinition i gruppen Forespørgselstype under fanen Design.

    Designgitteret er skjult, og objektfanen i SQL-visningen vises.

  4. Indtast følgende SQL-sætning:

    ALTER TABLE Biler ALTER COLUMN Tilstand TEXT CONSTRAINT Tilstand_påkrævet NOT NULL

  5. Klik på Kør i gruppen Resultater under fanen Design.

Lad os antage, efter et stykke tid, du bemærke, at der er mange ens værdier i feltet betingelse, der skal være den samme. For eksempel nogle af biler har en betingelse værdi af dårlig og andre har en værdi på forkert. Når du rydde op i værdierne, så de er mere ensartet, kan du oprette en tabel med navnet CarCondition, med et felt med navnet betingelse, der indeholder alle de værdier, du vil bruge til betingelsen af biler:

  1. Klik på Forespørgselsdesign i gruppen Andet under fanen Opret.

  2. Luk dialogboksen Vis tabel.

  3. Klik på Datadefinition i gruppen Forespørgselstype under fanen Design.

    Designgitteret er skjult, og objektfanen i SQL-visningen vises.

  4. Indtast følgende SQL-sætning:

    CREATE TABLE Bilens_tilstand (Tilstand TEXT(10))

  5. Klik på Kør i gruppen Resultater under fanen Design.

  6. Hvis du vil indsætte værdierne fra feltet Tilstand i tabellen Biler i den nye tabel Bilens_tilstand, skal du indtaste følgende SQL i objektfanen i SQL-visningen:

    INSERT INTO Bilens_tilstand SELECT DISTINCT Tilstand FROM Biler;

    Bemærk: SQL-sætningen i dette trin er en tilføje forespørgsel. I modsætning til en datadefinitionsforespørgsel slutter en tilføjelsesforespørgsel med et semikolon.

  7. Klik på Kør i gruppen Resultater under fanen Design.

Hvis du ønsker, at en ny værdi, der indsættes i feltet Tilstand i tabellen Biler, stemmer overens med en værdi i feltet Tilstand i tabellen Bilens_tilstand, kan du oprette en relation mellem Bilens_tilstand og Biler i det felt, der hedder Tilstand, ved at bruge følgende fremgangsmåde:

  1. Klik på Forespørgselsdesign i gruppen Andet under fanen Opret.

  2. Luk dialogboksen Vis tabel.

  3. Klik på Datadefinition i gruppen Forespørgselstype under fanen Design.

    Designgitteret er skjult, og objektfanen i SQL-visningen vises.

  4. Indtast følgende SQL-sætning:

    ALTER TABLE Biler ALTER COLUMN Tilstand TEXT CONSTRAINT FKeyCondition REFERENCES Bilens_tilstand (Tilstand)

  5. Klik på Kør i gruppen Resultater under fanen Design.

Begrænsninger for flere felter

Delsætningen CONSTRAINT en flere felter kan bruges kun uden for en definition-delsætning, og har følgende syntaks:

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

Lad os se på et andet eksempel på brug af tabellen biler. Antag, at du vil sikre dig, at ingen to poster i tabellen biler har det samme sæt af værdier for navn, år, betingelse og pris. Du kan oprette en entydig begrænsning, der gælder for disse felter ved at benytte følgende fremgangsmåde:

  1. Klik på Forespørgselsdesign i gruppen Andet under fanen Opret.

  2. Luk dialogboksen Vis tabel.

  3. Klik på Datadefinition i gruppen Forespørgselstype under fanen Design.

    Designgitteret er skjult, og objektfanen i SQL-visningen vises.

  4. Indtast følgende SQL-sætning:

    ALTER TABLE Biler ADD CONSTRAINT Ingen_dubletter UNIQUE (navn, år, tilstand, pris)

  5. Klik på Kør i gruppen Resultater under fanen Design.

Toppen af siden

Bemærk: Ansvarsfraskrivelse for maskinoversættelse: Denne artikel er blevet oversat af et computersystem uden menneskelig indgriben. Microsoft tilbyder disse maskinoversættelse for at hjælpe ikke-engelsktalende brugere til at kunne nyde indhold om Microsofts produkter, tjenester og teknologier. Da artiklen er maskinoversat, kan den indeholde forkerte ord eller syntaks- eller grammatikfejl.

Del Facebook Facebook Twitter Twitter Mail Mail

Var disse oplysninger nyttige?

Fantastisk! Har du mere feedback?

Hvordan kan vi forbedre det?

Tak for din feedback!

×