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

Bemærk!: Vi vil gerne give dig den mest opdaterede hjælp, så hurtigt vi kan, på dit eget sprog. Denne side er oversat ved hjælp af automatisering og kan indeholde grammatiske fejl og unøjagtigheder. Det er vores hensigt, at dette indhold skal være nyttigt for dig. Vil du fortælle os, om oplysningerne var nyttige for dig, nederst på denne side? Her er artiklen på engelsk så du kan sammenligne.

Du kan oprette og redigere tabeller, begrænsninger, indeks og relationer i Access ved at skrive data definition forespørgsler i SQL-visning. Denne artikel beskrives datadefinitionsforespørgsel forespørgsler og hvordan du kan bruge dem til at oprette tabeller, begrænsninger, indeks og relationer. I denne artikel kan også hjælpe dig med at beslutte, hvornår du skal bruge en datadefinitionsforespørgsel.

I denne artikel

Oversigt

Oprette eller ændre en tabel

Oprette et indeks

Oprette en begrænsning eller en relation

Oversigt

I modsætning til andre Access-forespørgsler hente en datadefinitionsforespørgsel ikke data. I stedet bruger en datadefinitionsforespørgsel Data Definition Language til at oprette, redigere eller slette databaseobjekter.

Bemærk!: Data Definition Language (DDL) er en del af SQL Structured Query Language ().

Data definition forespørgsler kan være praktisk. Du kan jævnligt slette og genoprette dele af din databaseskema blot ved at køre nogle forespørgsler. Overvej at bruge en datadefinitionsforespørgsel, hvis du allerede kender, SQL-sætninger, og du vil slette og genoprette bestemt tabeller, begrænsninger, indeks eller relationer.

Advarsel!: 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.

Vigtigt!: Oprette en sikkerhedskopi af alle tabeller involveret før du kører en datadefinitionsforespørgsel.

DDL nøgleord

Nøgleord

Brug

CREATE

Oprette et indeks eller en tabel, der ikke allerede findes.

ALTER

Ændre en eksisterende tabel eller kolonne.

DROP

Slette en eksisterende tabel, kolonne eller begrænsning.

ADD

Føje en kolonne eller en betingelse til en tabel.

COLUMN

Bruge med Tilføj skal ALTER, eller slip

BEGRÆNSNING

Bruge med Tilføj skal ALTER, eller slip

INDEX

Brug med CREATE

TABLE

Bruge med ALTER, oprette, eller slip

Toppen af siden

Oprette eller ændre en tabel

Hvis du vil oprette en tabel, bruger du 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 [, ...]])

Den eneste påkrævet elementer i en CREATE TABLE-kommando er kommandoen CREATE TABLE selve og navnet på tabellen, men som regel skal du angive nogle felter eller andre aspekter af tabellen. Overvej dette simpelt eksempel.

Antag, at du vil oprette en tabel for at gemme navnet, år og brugte biler, som du overvejer købes pris. Du vil tillade op til 30 tegn i navnet og 4 tegn for året. Bruge en datadefinitionsforespørgsel til at oprette en tabel skal du gøre følgende:

Bemærk!: Du muligvis først aktiverer indholdet af databasen i rækkefølge for en datadefinitionsforespørgsel til at køre:

  • Klik på Aktivér indhold på meddelelseslinjen.

Opret en tabel

  1. Klik på Forespørgselsdesign i gruppen makroer og kode under fanen Opret.

  2. Luk dialogboksen Vis tabel.

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

    Designgitteret er skjult, og SQL-visning objektfane vises.

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

    OPRETTE tabel biler (navn TEXT(30), år TEXT(4), pris valuta)

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

Ændre en tabel

Hvis du vil ændre en tabel, skal bruge du kommandoen ALTER TABLE. Du kan bruge en ALTER TABLE-kommando til at tilføje, ændre eller slip (slette) kolonner eller begrænsninger. Kommandoen ALTER TABLE 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

Antag, at du vil føje et 10-tegns tekstfelt for at gemme oplysninger om tilstanden for hver bil. Du kan gøre følgende:

  1. Klik på Forespørgselsdesign i gruppen makroer og kode under fanen Opret.

  2. Luk dialogboksen Vis tabel.

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

    Designgitteret er skjult, og SQL-visning objektfane vises.

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

    ALTER tabel biler Tilføj kolonne betingelse 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 på en eksisterende tabel, bruger du 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 nødvendige elementer er kommandoen Opret indeks, navnet på indekset, argumentet til, navnet på den tabel, der indeholder de felter, du vil indeks og listen over felter der skal medtages i indekset.

  • DESC argument årsager indekset skal have oprettet i faldende rækkefølge, som kan være nyttigt, hvis du ofte kører forespørgsler, der ser ud i øverste værdier for feltet indekserede, eller som sortere det indekserede felt i faldende rækkefølge. Som standard oprettes et indeks i stigende rækkefølge.

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

  • Argumentet med Tillad ikke NULL får indeks til at kræve, at der skal angives en værdi for feltet indekserede – det vil sige, null-værdier, er ikke tilladt.

Antag, at du har en tabel med navnet biler med felter, navn, år, prisen og betingelse for brugte biler, som du overvejer købes. Antag også, at tabellen er blevet stor og, du ofte omfatter feltet år i forespørgsler. Du kan oprette et indeks på feltet, der kan hjælpe dine forespørgsler, der returnerer resultater hurtigere ved at benytte følgende fremgangsmåde:

  1. Klik på Forespørgselsdesign i gruppen makroer og kode under fanen Opret.

  2. Luk dialogboksen Vis tabel.

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

    Designgitteret er skjult, og SQL-visning objektfane vises.

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

    OPRETTE INDEKSET YearIndex til biler (år)

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

Toppen af siden

Oprette en begrænsning eller en relation

En begrænsning opretter en logisk betingelse, som et felt eller en kombination af felter skal opfylde, når værdierne indsættes. For eksempel forhindrer en entydig begrænsning, at feltet begrænsede acceptere en værdi, der vil duplikere 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. Du skal ikke bruge en speciel nøgleord indikerer, at en betingelse er en relation.

Hvis du vil oprette en betingelse, bruger du en delsætningen CONSTRAINT i en CREATE TABLE eller ALTER TABLE kommando. Der findes to typer CONSTRAINT-delsætninger: et til oprettelse af en begrænsning på et enkelt felt og en anden til at oprette en begrænsning på flere felter.

Enkelt felt begrænsninger

Delsætningen CONSTRAINT et enkelt felt umiddelbart efter definitionen af det felt, 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}]}

Antag, at du har en tabel med navnet biler med felter, navn, år, prisen og betingelse for brugte biler, som du overvejer købes. Antag også, at du ofte glemmer at angive en værdi for den bil betingelse, og, at du altid vil registrere disse oplysninger. Du kan oprette en begrænsning på feltet betingelse, der forhindrer dig i at forlade feltet tomme, ved at benytte følgende fremgangsmåde:

  1. Klik på Forespørgselsdesign i gruppen makroer og kode under fanen Opret.

  2. Luk dialogboksen Vis tabel.

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

    Designgitteret er skjult, og SQL-visning objektfane vises.

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

    ALTER tabel biler ALTER kolonne betingelse tekst begrænsning ConditionRequired ikke er 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.

Bemærk!: Hvis du vil følge resten af fremgangsmåderne, skal du tilføje nogle falske data til tabellen biler, du oprettede i forrige trin.

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 makroer og kode under fanen Opret.

  2. Luk dialogboksen Vis tabel.

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

    Designgitteret er skjult, og SQL-visning objektfane vises.

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

    OPRETTE tabel CarCondition (betingelse TEXT(10))

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

  6. Oprette en primær nøgle for tabellen ved hjælp af sætningen ALTER TABLE:

    ÆNDRE tabel CarCondition ALTER kolonne betingelse tekst begrænsning CarConditionPK primær nøgle

  7. For at indsætte værdierne fra feltet betingelse i tabellen biler til den nye CarCondition tabel skal du skrive følgende SQL i SQL-visning objektfane:

    Indsæt i CarCondition SELECT DISTINCT betingelse fra 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.

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

Oprette en relation ved hjælp af en begrænsning

For at kræve, at en ny værdi, der er indsat i feltet betingelse i tabellen biler svarer til en værdi i feltet betingelse i tabellen CarCondition, kan du derefter oprette en relation mellem CarCondition og biler på feltet med navnet betingelse ved hjælp af følgende fremgangsmåde:

  1. Klik på Forespørgselsdesign i gruppen makroer og kode under fanen Opret.

  2. Luk dialogboksen Vis tabel.

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

    Designgitteret er skjult, og SQL-visning objektfane vises.

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

    ALTER tabel biler ALTER kolonne betingelse tekst begrænsning FKeyCondition referencer CarCondition (betingelse)

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

Flere felter begrænsninger

Delsætningen CONSTRAINT en flere felter kan bruges kun uden 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}]}

Overvej et andet eksempel, der bruger 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 makroer og kode under fanen Opret.

  2. Luk dialogboksen Vis tabel.

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

    Designgitteret er skjult, og SQL-visning objektfane vises.

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

    ÆNDRE tabel biler Tilføj begrænsning NoDupes entydige (navn, år, betingelse, pris)

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

Toppen af siden

Udvid dine Office-færdigheder
Gå på opdagelse i kurser
Få nye funktioner først
Bliv Office Insider

Var disse oplysninger nyttige?

Tak for din feedback!

Tak for din feedback! Det lyder, som om det vil kunne hjælpe, hvis du bliver sat i forbindelse med en af vores Office-supportteknikere.

×