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

Obs!: Vi ønsker å gi deg det nyeste hjelpeinnholdet så raskt som mulig, på ditt eget språk. Denne siden er oversatt gjennom automatisering og kan inneholde grammatiske feil eller unøyaktigheter. Formålet vårt er at innholdet skal være nyttig for deg. Kan du fortelle oss om informasjonen var nyttig for deg nederst på denne siden? Her er den engelske artikkelen for enkel referanse.

Du kan opprette og endre tabeller, betingelser, indekser og relasjoner i Access ved å skrive datadefinisjonsspørringer i SQL-visning. Denne artikkelen forklarer datadefinisjonsspørringer og hvordan du bruker dem til å opprette tabeller, betingelser, indekser og relasjoner. Denne artikkelen kan også hjelpe deg å bestemme når du bruker en datadefinisjonsspørring.

I denne artikkelen

Oversikt

Opprette eller endre en tabell

Opprette en indeks

Opprette en betingelse eller en relasjon

Oversikt

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

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

Datadefinisjonsspørringer kan være svært nyttig. Du kan regelmessig slette og gjenopprette deler av din databaseskjemaet bare ved å kjøre noen spørringer. Vurder å bruke en datadefinisjonsspørring Hvis du er fortrolig med SQL-setninger og du har tenkt å slette og gjenopprette bestemt tabeller, betingelser, indekser eller relasjoner.

Advarsel!: Bruke datadefinisjonsspørringer til å endre databaseobjekter kan være risikabelt, fordi handlingene ikke er medfølger dialogbokser for bekreftelse. Hvis du gjør en feil, kan du miste data eller endre utformingen av en tabell ved et uhell. Vær forsiktig når du bruker en datadefinisjonsspørring til å endre objekter i databasen. Hvis du ikke er ansvarlig for å vedlikeholde databasen som du bruker, bør du kontakte administratoren av databasen før du kjører en datadefinisjonsspørring.

Viktig!: Ta en sikkerhetskopi av alle tabellene involvert før du kjører en datadefinisjonsspørring.

DDL nøkkelord

Nøkkelord

Bruk

CREATE

Opprette en indeks eller tabell som ikke finnes allerede.

ALTER

Endre en eksisterende tabell eller kolonne.

DROP

Slette en eksisterende tabell, kolonne eller begrensning.

ADD

Legge til en kolonne eller en betingelse i en tabell.

COLUMN

Bruke med Legg til, endre, eller slipp

CONSTRAINT

Bruke med Legg til, endre, eller slipp

INDEX

Bruk med Opprett

TABLE

Bruke med ALTER, Opprett, eller slipp

Til toppen av siden

Opprette eller endre en tabell

Hvis du vil opprette en tabell, kan du bruke en lag tabell-kommandoen. Opprett tabell-kommandoen har følgende syntaks:

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

Den eneste obligatorisk elementene i en lag tabell-kommandoen er kommandoen Opprett tabell selve og navnet på tabellen, men vanligvis bør du definere noen felt eller andre aspekter av tabellen. Vurder dette enkelt eksempel.

Anta at du vil opprette en tabell for å lagre navnet, år og prisen for brukte biler som du har tenkt å selges. Du vil tillate opptil 30 tegn i navnet, og 4 tegn for året. Hvis du vil bruke en datadefinisjonsspørring til å opprette tabellen, gjør du følgende:

Obs!: Først må du kanskje aktivere innholdet i databasen på nytt for en datadefinisjonsspørring til å kjøre:

  • Klikk på Aktiver innhold i meldingsfeltet.

Opprette en tabell

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

  2. Lukk dialogboksen Vis tabell.

  3. Klikk Datadefinisjonsspørring i Spørringstype-gruppen i kategorien Utforming.

    Utformingsrutenettet er skjult, og vises objektkategorien SQL-visning.

  4. Skriv inn følgende SQL-setning:

    OPPRETTE tabell biler (navn TEXT(30), år TEXT(4), pris valuta)

  5. Klikk Kjør i Resultater-gruppen i kategorien Utforming.

Endre en tabell

Hvis du vil endre en tabell, kan du bruke en ALTER TABLE-kommandoen. Du kan bruke en ALTER TABLE-kommandoen til å legge til, endre eller slipp (Fjern) kolonner eller begrensninger. ALTER TABLE-kommandoen 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

Anta at du vil legge til et tekstfelt i 10-tegns for å oppbevare informasjon om tilstanden til hver bil. Du kan gjøre følgende:

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

  2. Lukk dialogboksen Vis tabell.

  3. Klikk Datadefinisjonsspørring i Spørringstype-gruppen i kategorien Utforming.

    Utformingsrutenettet er skjult, og vises objektkategorien SQL-visning.

  4. Skriv inn følgende SQL-setning:

    ALTER tabell biler Legg til kolonne betingelse TEXT(10)

  5. Klikk Kjør i Resultater-gruppen i kategorien Utforming.

Til toppen av siden

Opprette en indeks

Hvis du vil opprette en indeks på en eksisterende tabell, kan du bruke 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 obligatoriske elementene er kommandoen Lag indeks, navnet på indeksen, argumentet videre, navnet på tabellen som inneholder feltene som du vil indeks og listen over felt som skal inkluderes i indeksen.

  • DESC argumentet årsaker indeksen som skal opprettes i synkende rekkefølge, som kan være nyttig hvis du ofte kjører spørringer som ser du etter høyeste verdier for de indekserte feltene, eller som sorterer indekserte felt i synkende rekkefølge. Som standard opprettes en indeks i stigende rekkefølge.

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

  • Argumentet med DISALLOW NULL fører til at indeksen til å kreve at en verdi angis for indeksert felt – det vil si nullverdier er ikke tillatt.

Anta at du har en tabell kalt biler med felt som lagrer navn, år, pris og tilstanden til brukte biler som du har tenkt å selges. Anta også at tabellen har blitt store, og at du ofte bruker år-feltet i spørringer. Du kan opprette en indeks på årsfelt slik at spørringene returnere resultater raskere ved å bruke følgende fremgangsmåte:

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

  2. Lukk dialogboksen Vis tabell.

  3. Klikk Datadefinisjonsspørring i Spørringstype-gruppen i kategorien Utforming.

    Utformingsrutenettet er skjult, og vises objektkategorien SQL-visning.

  4. Skriv inn følgende SQL-setning:

    OPPRETTE INDEKSEN YearIndex videre biler (år)

  5. Klikk Kjør i Resultater-gruppen i kategorien Utforming.

Til toppen av siden

Opprette en betingelse eller en relasjon

En betingelse etablerer en logisk betingelse som et felt eller en kombinasjon av felt må oppfylle når verdier er satt inn. Hvis du for eksempel hindrer en UNIK begrensning feltet begrensede godtar en verdi som vil duplisere en eksisterende verdi for feltet.

En relasjon er en type betingelse som refererer til verdier i et felt eller en kombinasjon av felt i en annen tabell for å finne ut om en verdi kan settes inn i det begrensede felt eller en kombinasjon av felt. Du bruker ikke et utvalg nøkkelord for å angi at en betingelse er en relasjon.

Hvis du vil opprette en betingelse, kan du bruke en CONSTRAINT, setningsdel i en CREATE TABLE eller ALTER TABLE-kommandoen. Det finnes to typer CONSTRAINT-setningsdeler: én for å opprette en begrensning på ett enkelt felt, og en annen for å opprette en begrensning på flere felt.

Begrensninger for ett felt

En ett felt CONSTRAINT, setningsdel etterfølger umiddelbart definisjonen av feltet det 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}]}

Anta at du har en tabell kalt biler med felt som lagrer navn, år, pris og tilstanden til brukte biler som du har tenkt å selges. Også anta at du ofte glemmer for inndata på en verdi for den bil betingelse, og at du alltid vil registrere denne informasjonen. Du kan opprette en begrensning på betingelse-feltet som hindrer deg i å forlate feltet tomt, ved å bruke følgende fremgangsmåte:

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

  2. Lukk dialogboksen Vis tabell.

  3. Klikk Datadefinisjonsspørring i Spørringstype-gruppen i kategorien Utforming.

    Utformingsrutenettet er skjult, og vises objektkategorien SQL-visning.

  4. Skriv inn følgende SQL-setning:

    ALTER tabell biler ALTER KOLONNEN betingelse tekst begrensning ConditionRequired ikke NULL

  5. Klikk Kjør i Resultater-gruppen i kategorien Utforming.

La oss nå anta at etter en tid du legge merke til at det er mange like verdier i betingelse-feltet som skal være det samme. Hvis du for eksempel noen av bilene har en betingelse verdi på dårlig og andre har ugyldigeverdien.

Obs!: Hvis du vil følge sammen med de resterende fremgangsmåtene, kan du legge til noen falske data i tabellen biler, som du opprettet i trinnene ovenfor.

Når du rydde opp i verdiene slik at de er mer konsekvent, kan du lage en tabell, kalt CarCondition, med ett felt kalt betingelse, som inneholder verdiene du vil bruke for tilstanden til biler:

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

  2. Lukk dialogboksen Vis tabell.

  3. Klikk Datadefinisjonsspørring i Spørringstype-gruppen i kategorien Utforming.

    Utformingsrutenettet er skjult, og vises objektkategorien SQL-visning.

  4. Skriv inn følgende SQL-setning:

    OPPRETTE tabell CarCondition (betingelse TEXT(10))

  5. Klikk Kjør i Resultater-gruppen i kategorien Utforming.

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

    ALTER tabell CarCondition ALTER KOLONNEN betingelse tekst begrensning CarConditionPK PRIMÆRNØKKEL

  7. Hvis du vil sette inn verdiene fra tabellen biler betingelse felt i den nye CarCondition-tabellen, skriver du inn følgende SQL i objektkategorien SQL-visning:

    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. Klikk Kjør i Resultater-gruppen i kategorien Utforming.

Opprette en relasjon ved hjelp av en betingelse

Hvis du vil kreve at en ny verdi som er satt inn i betingelse-feltet i tabellen biler samsvarer med en verdi på betingelse-feltet i tabellen CarCondition, kan du deretter opprette en relasjon mellom CarCondition og biler på felt kalt betingelse, ved å bruke følgende fremgangsmåte:

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

  2. Lukk dialogboksen Vis tabell.

  3. Klikk Datadefinisjonsspørring i Spørringstype-gruppen i kategorien Utforming.

    Utformingsrutenettet er skjult, og vises objektkategorien SQL-visning.

  4. Skriv inn følgende SQL-setning:

    ALTER tabell biler ALTER KOLONNEN betingelse tekst begrensning FKeyCondition referanser CarCondition (betingelse)

  5. Klikk Kjør i Resultater-gruppen i kategorien Utforming.

Begrensninger for flere felt

En flere felt CONSTRAINT, setningsdel kan brukes bare utenfor en definisjon av virksomhetsfelt-setningsdel, 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}]}

Vurdere et annet eksempel som bruker biler-tabellen. Anta at du ønsker å sikre at ingen poster i tabellen biler ha samme sett med verdier for navn, år, betingelsen og pris. Du kan opprette en UNIK betingelse som gjelder for disse feltene ved å bruke følgende fremgangsmåte:

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

  2. Lukk dialogboksen Vis tabell.

  3. Klikk Datadefinisjonsspørring i Spørringstype-gruppen i kategorien Utforming.

    Utformingsrutenettet er skjult, og vises objektkategorien SQL-visning.

  4. Skriv inn følgende SQL-setning:

    Endre TABELLEN biler Legg til BETINGELSE NoDupes unike (navn, år, tilstand, pris)

  5. Klikk Kjør i Resultater-gruppen i kategorien Utforming.

Til toppen av siden

Bli bedre på Office
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.

×