Opprette eller endre tabeller eller indekser ved å bruke datadefinisjonsspørringer

Viktig!: Denne artikkelen er maskinoversatt, se ansvarsfraskrivelsen. Du finner den engelske versjonen av artikkelen her som referanse.

Du kan opprette og endre tabeller, begrensninger, indekser og relasjoner ved å skrive datadefinisjonsspørringer i SQL-visning.

Denne artikkelen forklarer datadefinisjonsspørringer og hvordan du bruker dem til å opprette tabeller, begrensninger, indekser og relasjoner. Denne artikkelen kan også hjelpe deg med å avgjøre når du skal bruke en datadefinisjonsspørring.

Obs!: Du kan ikke bruke disse prosedyrene i en webdatabase.

I denne artikkelen

Oversikt

Opprette eller endre en tabell

Opprette en indeks

Opprette en betingelse eller en relasjon

Oversikt

I motsetning til andre spørringer henter ikke en datadefinisjonsspørring data. En datadefinisjonsspørring bruker i stedet datadefinisjonsspråk til å opprette, endre eller slette databaseobjekter.

Obs!: Datadefinisjonsspråk (DDL, Data Definition Language) er en del av SQL (Structured Query Language).

Datadefinisjonsspørringer kan være svært praktiske. Du kan regelmessig slette deler av databaseskjemaet og opprette dem på nytt ved ganske enkelt å kjøre noen spørringer. Vurder å bruke en datadefinisjonsspørring hvis du har erfaring med SQL-setninger og planlegger å slette bestemte tabeller, begrensninger, indekser eller relasjoner og opprette dem på nytt.

Advarsel!: Det kan være risikabelt å bruke datadefinisjonsspørringer til å endre databaseobjekter siden det ikke vises noen bekreftelsesdialogbokser med handlingene. Hvis du gjør en feil, kan du miste data eller endre utformingen av en tabell ved en feiltakelse. Vær forsiktig når du bruker en datadefinisjonsspørring til å endre objekter i databasen. Hvis du ikke har ansvaret for å vedlikeholde databasen du bruker, snakker du med databaseadministratoren før du kjører en datadefinisjonsspørring.

Viktig!: Ta en sikkerhetskopi av alle berørte tabeller før du kjører en datadefinisjonsspørring.

DDL-nøkkelord

Nøkkelord

Bruk

CREATE

Oppretter en indeks eller en tabell som ikke allerede finnes.

ALTER

Endrer en eksisterende tabell eller kolonne.

DROP

Sletter en eksisterende tabell, kolonne eller begrensning.

ADD

Legger til en kolonne eller begrensning i en tabell.

COLUMN

Brukes med ADD, ALTER eller DROP

CONSTRAINT

Brukes med ADD, ALTER eller DROP

INDEX

Brukes med CREATE

TABLE

Brukes med ALTER, CREATE eller DROP

Til toppen av siden

Opprette eller endre en tabell

Du bruker kommandoen CREATE TABLE til å opprette en tabell. Denne kommandoen har følgende syntaks:

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

De eneste obligatoriske elementene i kommandoen CREATE TABLE er selve kommandoen CREATE TABLE og navnet på tabellen, men vanligvis er det aktuelt å definere noen felt eller andre aspekter ved tabellen. Vurder følgende enkle eksempel.

La oss si at du vil opprette en tabell for å lagre navnet, året og prisen på bruktbiler du vurderer å kjøpe. Du vil bruke opptil tretti tegn for navnet og fire tegn for året. Slik bruker du en datadefinisjonsspørring til å opprette tabellen:

Obs!: Du må kanskje først aktivere innholdet i databasen for å kjøre en datadefinisjonsspørring:

  • Klikk Aktiver innhold i meldingsfeltet.

Opprette en tabell

  1. Klikk Spørringsutforming i gruppen Makroer og kode i kategorien Opprett.

  2. Lukk dialogboksen Vis tabell.

  3. Klikk Datadefinisjon i Spørringstype-gruppen i kategorien Utforming.

    Utformingsrutenettet skjules, og objektkategorien SQL-visning vises.

  4. Skriv inn følgende SQL-setning:

    OPPRETTE TABELL biler (navn TEXT(30), år TEXT(4), pris VALUTA)

  5. Velg kategorien Utforming, gruppen Resultater, og klikk Kjør.

Endre en tabell

Du bruker kommandoen ALTER TABLE til å endre en tabell. Du kan bruke denne kommandoen til å legge til, endre eller fjerne kolonner eller begrensninger. Kommandoen ALTER TABLE har følgende syntaks:

ALTER TABLE table_name predicate

der predikat kan være ett av 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

La oss si at du vil legge til et tekstfelt på ti tegn for å lagre informasjon om tilstanden til hver bil. Du kan gjøre følgende:

  1. Klikk Spørringsutforming i gruppen Makroer og kode i kategorien Opprett.

  2. Lukk dialogboksen Vis tabell.

  3. Klikk Datadefinisjon i Spørringstype-gruppen i kategorien Utforming.

    Utformingsrutenettet skjules, og objektkategorien SQL-visning vises.

  4. Skriv inn følgende SQL-setning:

    ALTER TABELL biler Legg til KOLONNE betingelse TEXT(10)

  5. Velg kategorien Utforming, gruppen Resultater, og klikk Kjør.

Til toppen av siden

Opprette en indeks

Du bruker kommandoen CREATE INDEX til å opprette en indeks i en eksisterende tabell. Denne kommandoen har følgende syntaks:

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

De eneste obligatoriske elementene er kommandoen CREATE INDEX, navnet på indeksen, argumentet ON, navnet på tabellen som inneholder feltene du vil indeksere, og listen over felt som skal inkluderes i indeksen.

  • Argumentet DESC brukes til å opprette indeksen i synkende rekkefølge, noe som kan være nyttig hvis du ofte kjører spørringer som søker etter de øverste verdiene for det indekserte feltet, eller som sorterer det indekserte feltet i synkende rekkefølge. En indeks opprettes som standard i stigende rekkefølge.

  • Argumentet MED PRIMÆRE oppretter indekserte feltet eller feltene som primærnøkkel i tabellen.

  • Argumentet WITH DISALLOW NULL brukes til å angi at det må angis en verdi for det indekserte feltet (det vil si at nullverdier ikke er tillatt).

La oss si at du har en tabell kalt Biler som inneholder felt for lagring av navnet, året, prisen og tilstanden for bruktbiler du vurderer å kjøpe. La oss også anta at tabellen har blitt stor, og at du ofte bruker År-feltet i spørringer. Du kan opprette en indeks for År-feltet for å få spørringene til å returnere resultat raskere. Dette gjør du ved å bruke følgende fremgangsmåte:

  1. Klikk Spørringsutforming i gruppen Makroer og kode i kategorien Opprett.

  2. Lukk dialogboksen Vis tabell.

  3. Klikk Datadefinisjon i Spørringstype-gruppen i kategorien Utforming.

    Utformingsrutenettet skjules, og objektkategorien SQL-visning vises.

  4. Skriv inn følgende SQL-setning:

    OPPRETTE INDEKSEN YearIndex videre biler (år)

  5. Velg kategorien Utforming, gruppen Resultater, og klikk Kjør.

Til toppen av siden

Opprette en begrensning eller relasjon

En begrensning etablerer en logisk betingelse som et felt eller en kombinasjon av felt må oppfylle når verdier settes inn. Begrensningen UNIQUE brukes for eksempel til å forhindre at det begrensede feltet godtar en verdi som dupliserer en eksisterende verdi for feltet.

En relasjon er en type begrensning som refererer til verdier i et felt eller en kombinasjon av felt i en annen tabell for å avgjøre om en verdi kan settes inn i det begrensede feltet eller kombinasjonen av felt. Du bruker ikke et spesielt nøkkelord til å angi at en begrensning er en relasjon.

Du oppretter en begrensning ved å bruke en CONSTRAINT-setning i en CREATE TABLE- eller ALTER TABLE-kommando. Det finnes to typer CONSTRAINT-setninger: én for å opprette en begrensning for ett enkelt felt og en annen for å opprette en begrensning for flere felt.

Enkeltfeltbegrensninger

En CONSTRAINT-setning for ett felt kommer like etter definisjonen av feltet som den begrenser, 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}]}

La oss si at du har en tabell kalt Biler som inneholder felt for lagring av navnet, året, prisen og tilstanden for bruktbiler du vurderer å kjøpe. La oss også anta at du ofte glemmer å legge inn en verdi for bilens tilstand, og at du alltid ønsker å registrere denne informasjonen. Du kan opprette en begrensning for Tilstand-feltet som forhindrer deg i å la feltet være tomt, ved å bruke følgende fremgangsmåte:

  1. Klikk Spørringsutforming i gruppen Makroer og kode i kategorien Opprett.

  2. Lukk dialogboksen Vis tabell.

  3. Klikk Datadefinisjon i Spørringstype-gruppen i kategorien Utforming.

    Utformingsrutenettet skjules, og objektkategorien SQL-visning vises.

  4. Skriv inn følgende SQL-setning:

    ALTER TABELL biler ALTER KOLONNEN betingelse TEKST BEGRENSNING ConditionRequired IKKE NULL

  5. Velg kategorien Utforming, gruppen Resultater, og klikk Kjør.

La oss si at du etter en stund legger merke til at det er mange lignende verdier i Tilstand-feltet som skulle ha vært like. Noen av bilene har for eksempel Tilstand-verdien god, mens andre har verdien bra.

Obs!: Hvis du vil følge med på de gjenstående prosedyrene, legger du til noen falske data i Biler-tabellen biler som du opprettet i trinnene ovenfor.

Når du har ryddet opp i verdiene slik at de er mer konsekvente, kan du opprette en tabell som du kaller BilTilstand, og som har et felt kalt Tilstand som inneholder alle verdiene du vil bruke for tilstanden til bilene:

  1. Klikk Spørringsutforming i gruppen Makroer og kode i kategorien Opprett.

  2. Lukk dialogboksen Vis tabell.

  3. Klikk Datadefinisjon i Spørringstype-gruppen i kategorien Utforming.

    Utformingsrutenettet skjules, og objektkategorien SQL-visning vises.

  4. Skriv inn følgende SQL-setning:

    OPPRETTE TABELL CarCondition (betingelse TEXT(10))

  5. Velg kategorien Utforming, gruppen Resultater, og klikk Kjør.

  6. Opprett en primærnøkkel for tabellen ved å bruke en ALTER TABLE-setningen:

    ALTER TABELL CarCondition ALTER KOLONNEN betingelse TEKST BEGRENSNING CarConditionPK PRIMÆRNØKKEL

  7. Skriv inn følgende SQL-setning i objektkategorien SQL-visning når du skal sette inn verdiene fra Tilstand-feltet i Biler-tabellen i den nye BilTilstand-tabellen:

    Sett INN i CarCondition VELG DISTINCT-betingelse FRA biler;

    Obs!: SQL-setningen i dette trinnet er en tilføyingsspørring. I motsetning til en datadefinisjonsspørring slutter en tilføyingsspørring med et semikolon.

  8. Velg kategorien Utforming, gruppen Resultater, og klikk Kjør.

Opprette en relasjon ved å bruke en begrensning

For å kreve at alle nye verdier som settes inn i Tilstand-feltet i Biler-tabellen, samsvarer med en verdi i Tilstand-feltet i BilTilstand-feltet, kan du opprette en relasjon mellom BilTilstand og Biler for Tilstand-feltet ved å bruke følgende fremgangsmåte:

  1. Klikk Spørringsutforming i gruppen Makroer og kode i kategorien Opprett.

  2. Lukk dialogboksen Vis tabell.

  3. Klikk Datadefinisjon i Spørringstype-gruppen i kategorien Utforming.

    Utformingsrutenettet skjules, og objektkategorien SQL-visning vises.

  4. Skriv inn følgende SQL-setning:

    ALTER TABELL biler ALTER KOLONNEN betingelse TEKST BEGRENSNING FKeyCondition REFERANSER CarCondition (betingelse)

  5. Velg kategorien Utforming, gruppen Resultater, og klikk Kjør.

Flerfeltsbegrensninger

En CONSTRAINT-setning for flere felt kan bare brukes utenfor en setning for feltdefinisjon 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}]}

La oss se på et annet eksempel der Biler-tabellen brukes. La oss si at du vil sikre at to poster i Biler-tabellen aldri har samme sett med verdier for navn, år, tilstand og pris. Du kan opprette en UNIQUE-betingelse som gjelder for disse feltene, ved å bruke følgende fremgangsmåte:

  1. Klikk Spørringsutforming i gruppen Makroer og kode i kategorien Opprett.

  2. Lukk dialogboksen Vis tabell.

  3. Klikk Datadefinisjon i Spørringstype-gruppen i kategorien Utforming.

    Utformingsrutenettet skjules, og objektkategorien SQL-visning vises.

  4. Skriv inn følgende SQL-setning:

    ENDRE TABELLEN biler Legg til BETINGELSE NoDupes UNIKE (navn, år, tilstand, pris)

  5. Velg kategorien Utforming, gruppen Resultater, og klikk Kjør.

Til toppen av siden

Obs!: Ansvarsfraskrivelse for maskinoversettelse: Denne artikkelen er oversatt av et datasystem i stedet for en oversetter. Microsoft tilbyr disse maskinoversettelsene slik at brukere som ikke snakker engelsk, får tilgang til innhold om Microsoft-produkter, -tjenester og –teknologier. Ettersom artikkelen er maskinoversatt, kan den inneholde feil i vokabular, syntaks eller grammatikk.

Utvid ferdighetene dine
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Office Insiders

Var denne informasjonen nyttig?

Takk for tilbakemeldingen!

Takk for tilbakemeldingen! Det høres ut som det kan være lurt å sette deg i kontakt med én av våre Office-kundestøtteagenter.

×