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.

Du kan oprette og redigere tabeller, begrænsninger, indeks og relationer ved at skrive datadefinitionsforespørgsler i SQL-visning.

I denne artikel beskrives datadefinitionsforespørgsler, og hvordan de bruges til at oprette tabeller, begrænsninger, indeks og relationer. Denne artikel kan også være en hjælp, når du skal beslutte, hvornår du skal bruge en datadefinitionsforespørgsel.

Bemærk: Du kan ikke bruge disse procedurer i en webdatabase.

Denne artikel indeholder

Oversigt

Oprette eller ændre en tabel

Oprette et indeks

Oprette en begrænsning eller en relation

Oversigt

I modsætning til andre forespørgsler henter en datadefinitionsforespørgsel ikke data. En datadefinitionsforespørgsel bruger i stedet DDL (Data Definition Language) til at oprette, redigere eller slette databaseobjekter.

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

Datadefinitionsforespørgsler kan være meget praktiske. Du kan slette og genskabe dele af dit databaseskema jævnligt ved blot at køre nogle forespørgsler. Overvej at bruge en datadefinitionsforespørgsel, hvis du kender til SQL-sætninger, og du planlægger at slette og genskabe bestemte tabeller, begrænsninger, indeks eller relationer.

Advarsel: Det kan være risikabelt at bruge datadefinitionsforespørgsler til at ændre databaseobjekter, da der ikke følger bekræftelsesdialogbokse med handlingerne. Hvis du laver en fejl, kan du miste data eller ved at uheld ændre en tabels design. Vær forsigtig, når du bruger en datadefinitionsforespørgsel til at redigere objekter i databasen. Hvis du ikke er ansvarlig for at vedligeholde den database, som du bruger, skal du rådføre dig med databasens administrator, før du kører en datadefinitionsforespørgsel.

Vigtigt: Opret en sikkerhedskopi af de pågældende tabeller, før du kører en datadefinitionsforespørgsel.

DDL-nøgleord

Nøgleord

Brug

CREATE

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

ALTER

Redigér en eksisterende tabel eller kolonne.

DROP

Slet en eksisterende tabel, kolonne eller begrænsning.

ADD

Føj en kolonne eller en begrænsning til en tabel.

COLUMN

Brug med ADD, ALTER eller DROP

CONSTRAINT

Brug med ADD, ALTER eller DROP

INDEX

Brug med CREATE

TABLE

Brug med ALTER, CREATE eller DROP

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 [, ...]])

De eneste påkrævede elementer i en CREATE TABLE-kommando er selve CREATE TABLE-kommandoen og navnet på tabellen, men normalt vil du sikkert definere nogle felter eller andre aspekter af tabellen. Kig på dette enkle 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 muligvis først aktivere indholdet af databasen for at kunne køre en datadefinitionsforespørgsel:

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

Oprettelse af en tabel

  1. Klik på Forespørgselsdesign i gruppen Makroer og kode 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:

    OPRETTE TABEL biler (navn TEXT(30), år TEXT(4), kurs VALUTA)

  5. 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 Makroer og kode 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 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 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 Makroer og kode 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:

    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 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 begrænsning, der refererer til værdierne for et felt eller en kombination af felter i en anden tabel med henblik på at afgøre, om en værdi kan indsættes i det begrænsede felt eller en kombination af felter . Du bruger ikke et specielt nøgleord til at angive, at en begrænsning er en relation.

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 Makroer og kode 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 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 nu antage, at du efter et stykke tid lægger mærke til, at der er mange ensartede værdier i feltet Tilstand, som skal være den samme. Nogle af bilerne har f.eks. værdien ringe for Tilstand og andre har værdien dårlig.

Bemærk: Hvis du vil fortsætte med de resterende fremgangsmåder, skal du føje falske data til tabellen Biler, som du oprettede på de foregående trin.

Når du har ryddet op i værdierne, så de er mere konsistente, kan du oprette en tabel, der hedder Bilens_tilstand, med ét felt, der hedder Tilstand, som indeholder alle de værdier, som du ønsker at bruge for bilernes tilstand:

  1. Klik på Forespørgselsdesign i gruppen Makroer og kode 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:

    OPRETTE TABEL CarCondition (betingelse TEXT(10))

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

  6. Opret en primær nøgle for tabellen ved at bruge sætningen ALTER TABLE:

    ÆNDRE TABEL CarCondition ALTER KOLONNE betingelse TEKST BEGRÆNSNING CarConditionPK PRIMÆR NØGLE

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

    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

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 Makroer og kode 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 TABEL biler ALTER KOLONNE betingelse TEKST BEGRÆNSNING FKeyCondition REFERENCER CarCondition (betingelse)

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

Begrænsninger for flere felter

En CONSTRAINT-delsætning for flere felter kan kun bruges uden for en feltdefinitionsdelsæ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}]}

Her kommer et andet eksempel, der bruger tabellen Biler. Lad os antage, at du vil sikre dig, at der ikke er to poster i tabellen Biler, der har det samme sæt værdier for Navn, År, Tilstand og Pris. Du kan oprette en UNIQUE-begrænsning, der gælder for disse felter, ved at bruge 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å Datadefinition i gruppen Forespørgselstype under fanen Design.

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

  4. Indtast 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

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.

Udvid dine 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.

×