Tabellen of indexen maken of wijzigen met een definitiequery

Opmerking: We willen u graag zo snel mogelijk de meest recente Help-inhoud in uw eigen taal bieden. Deze pagina is automatisch vertaald en kan grammaticale fouten of onnauwkeurigheden bevatten. Wij hopen dat deze inhoud nuttig voor u is. Kunt u ons onder aan deze pagina laten weten of de informatie nuttig voor u was? Hier is het Engelstalige artikel ter referentie.

U kunt maken en wijzigen van tabellen, beperkingen, indexen en relaties in Access door te definitiequery's schrijven in SQL-weergave. In dit artikel wordt uitgelegd definitiequery's en hoe ze worden gebruikt om te maken van tabellen, beperkingen, indexen en relaties. In dit artikel kunt u bepalen wanneer gebruikt u een definitiequery ook.

In dit artikel

Overzicht

Maken of wijzigen van een tabel

Indexen maken

Een beperking of een relatie maken

Overzicht

In tegenstelling tot andere Access-query, wordt een definitiequery geen gegevens ophalen. Een definitiequery gebruikt in plaats daarvan Data Definition Language maken, wijzigen of verwijderen van databaseobjecten.

Opmerking: Data Definition Language (DDL) maakt deel uit van taal SQL (Structured Query).

Definitiequery's kunnen erg handig zijn. U kunt regelmatig verwijderen en opnieuw maken van delen van uw databaseschema alleen door sommige query's uit te voeren. Kunt u overwegen een definitiequery als u bekend met SQL-instructies bent en u wilt verwijderen en opnieuw maken bepaalde tabellen, beperkingen, indexen of relaties.

Waarschuwing: Definitiequery's met databaseobjecten wijzigt niet risico's, omdat de acties niet zijn van de dialoogvensters ter bevestiging voorzien. Als u een fout maakt, kunt u gegevens kwijtraakt of per ongeluk het ontwerp van een tabel wijzigen. Wees voorzichtig wanneer u een definitiequery gebruiken voor het wijzigen van objecten in uw database. Als u niet verantwoordelijk bent voor het onderhouden van de database die u gebruikt, moet u contact opnemen met de beheerder van de database voordat u een definitiequery.

Belangrijk: Maak een back-up van tabellen betrokken voordat u een definitiequery uitvoert.

DDL trefwoorden

Trefwoord

Gebruik

CREATE

Maak een index of tabel die nog niet bestaat.

ALTER

Een bestaande tabel of kolom wijzigen.

DROP

Een bestaande tabel, kolom of beperking verwijderen.

ADD

Een kolom of een beperking toevoegen aan een tabel.

COLUMN

Gebruiken met toevoegen, wijzigen, of weghalen

CONSTRAINT

Gebruiken met toevoegen, wijzigen, of weghalen

INDEX

Gebruik met maken

TABLE

Gebruiken met ALTER, maken, of weghalen

Naar boven

Maken of wijzigen van een tabel

Als u wilt een tabel maakt, gebruikt u de opdracht van een tabel maken. De opdracht van een tabel maken heeft de volgende syntaxis:

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

De enige vereiste elementen van een tabel maken-opdracht zijn de opdracht tabel maken zelf en de naam van de tabel, maar gewoonlijk, wilt u sommige velden of andere aspecten van de tabel definiëren. Bekijk het volgende eenvoudige voorbeeld.

Stel dat u maken van een tabel om op te slaan wilt, de naam, jaar en de prijs van gebruikte auto's die u van plan kopen te bent. U wilt toestaan dat maximaal 30 tekens voor de naam en 4 tekens voor het jaar. Ga als volgt te werk om met een definitiequery te maken van de tabel:

Opmerking: Mogelijk moet u eerst inschakelen van de inhoud van de database om een definitiequery om uit te voeren:

  • Klik op de Berichtenbalk op Inhoud inschakelen.

Een tabel maken

  1. Klik op het tabblad maken in de groep macro's en Code op Queryontwerp.

  2. Sluit het dialoogvenster Tabel weergeven.

  3. Klik op het tabblad ontwerp in de groep Querytype op Gegevensdefinitiequery.

    Het ontwerpraster is verborgen en het objecttabblad van de SQL-weergave wordt weergegeven.

  4. Typ de volgende SQL-instructie:

    TABEL auto's (naam TEXT(30), jaar TEXT(4), prijs valuta) maken

  5. Ga naar het tabblad Ontwerp en klik in de groep Resultaten op Uitvoeren.

Een tabel wijzigen

Als u wilt een tabel wijzigt, moet u een opdracht ALTER TABLE gebruiken. U kunt een opdracht ALTER TABLE toevoegen, wijzigen of neerzetten kolommen (verwijderen) of beperkingen. Een opdracht ALTER TABLE heeft de volgende syntaxis:

ALTER TABLE table_name predicate

waar zijn predikaat een van de volgende handelingen uit:

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

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

Stel dat u wilt een tekstveld van 10 tekens om op te slaan informatie over de voorwaarde van elk auto toevoegen. U kunt het volgende doen:

  1. Klik op het tabblad maken in de groep macro's en Code op Queryontwerp.

  2. Sluit het dialoogvenster Tabel weergeven.

  3. Klik op het tabblad ontwerp in de groep Querytype op Gegevensdefinitiequery.

    Het ontwerpraster is verborgen en het objecttabblad van de SQL-weergave wordt weergegeven.

  4. Typ de volgende SQL-instructie:

    ALTER tabel auto's toevoegen kolom voorwaarde TEXT(10)

  5. Ga naar het tabblad Ontwerp en klik in de groep Resultaten op Uitvoeren.

Naar boven

Indexen maken

Als u wilt een index maken voor een bestaande tabel, gebruikt u de opdracht van een INDEX maken. Een opdracht CREATE INDEX heeft de volgende syntaxis:

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

De enige vereiste elementen zijn de instructie CREATE INDEX, de naam van de index, het argument op, de naam van de tabel waarin de velden die u wilt dat moeten worden geïndexeerd en de lijst met velden in de index wilt opnemen.

  • De DESC argument oorzaken de index wilt maken in aflopende volgorde, dat handig zijn kan als u vaak query's die uitvoeren er voor de hoogste of laagste waarden het geïndexeerde veld of die het geïndexeerde veld in aflopende volgorde sorteren. Een index wordt standaard gemaakt in oplopende volgorde.

  • Het argument met primaire Hiermee stelt u de geïndexeerde veld(en) als de primaire sleutel van de tabel.

  • De met DISALLOW NULL argument zorgt ervoor dat de index vereisen dat een waarde voor het geïndexeerde veld worden ingevoerd, dat wil zeggen null-waarden zijn niet toegestaan.

Stel dat u een tabel met de naam auto's met de velden die de naam, het jaar, de prijs en de voorwaarde van gebruikte auto's die u van plan kopen te bent opslaan. Stel ook dat de tabel groot is geworden en dat u het jaarveld vaak in query's opnemen. Klik op het veld Year om te helpen uw query's sneller resultaten worden geretourneerd met behulp van de volgende procedure kunt u een index maken:

  1. Klik op het tabblad maken in de groep macro's en Code op Queryontwerp.

  2. Sluit het dialoogvenster Tabel weergeven.

  3. Klik op het tabblad ontwerp in de groep Querytype op Gegevensdefinitiequery.

    Het ontwerpraster is verborgen en het objecttabblad van de SQL-weergave wordt weergegeven.

  4. Typ de volgende SQL-instructie:

    INDEX YearIndex aan auto's (jaar) maken

  5. Ga naar het tabblad Ontwerp en klik in de groep Resultaten op Uitvoeren.

Naar boven

Een beperking of een relatie maken

Een beperking tot stand brengt een logische voorwaarde waaraan een veld of een combinatie van velden voldoen moet wanneer waarden worden ingevoegd. Bijvoorbeeld een unieke beperking voorkomt u dat het veld beperkte accepteren van een waarde die een bestaande waarde voor het veld wilt dupliceren.

Een relatie is een type restrictie die verwijst naar de waarden van een veld of een combinatie van velden in een andere tabel om te bepalen of een waarde in het beperkte veld of een combinatie van velden kan worden ingevoegd. U niet een speciale trefwoord gebruikt om aan te geven dat een beperking een-relatie.

Als u wilt een beperking hebt gemaakt, kunt u een CONSTRAINT, component gebruiken in een opdracht CREATE TABLE of ALTER TABLE. Er zijn twee soorten beperking componenten: een voor het maken van een beperking voor één veld, en een andere voor het maken van een beperking op meerdere velden.

Beperkingen voor één veld

Een enkelvoudige CONSTRAINT, component onmiddellijk, voert u de definitie van het veld dat zij beperkt en de volgende syntaxis heeft:

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

Stel dat u een tabel met de naam auto's met de velden die de naam, het jaar, de prijs en de voorwaarde van gebruikte auto's die u van plan kopen te bent opslaan. Stel ook dat vergeet u vaak een waarde voor de auto voorwaarde ingevoerd en dat u altijd wilt deze gegevens vastleggen. U kunt een beperking voor het veld voorwaarde die voorkomt u u dat uit het veld leeg is, met behulp van de volgende procedure maken:

  1. Klik op het tabblad maken in de groep macro's en Code op Queryontwerp.

  2. Sluit het dialoogvenster Tabel weergeven.

  3. Klik op het tabblad ontwerp in de groep Querytype op Gegevensdefinitiequery.

    Het ontwerpraster is verborgen en het objecttabblad van de SQL-weergave wordt weergegeven.

  4. Typ de volgende SQL-instructie:

    ALTER tabel auto's ALTER kolom voorwaarde tekst beperking ConditionRequired niet NULL

  5. Ga naar het tabblad Ontwerp en klik in de groep Resultaten op Uitvoeren.

Stel nu dat na verloop van tijd u ziet dat er veel vergelijkbare waarden in het veld voorwaarde die hetzelfde moet zijn. Bijvoorbeeld enkele van de auto's hebben de waarde van een voorwaarde van slechte en anderen hebben een Ongeldigewaarde.

Opmerking: Als u volgen samen met de overige procedures wilt, moet u enkele vervalste gegevens toevoegen aan de tabel auto's die u hebt gemaakt in de voorgaande stappen.

Nadat u de waarden opschonen zodat ze meer consistent zijn, kunt u een tabel, met de naam CarCondition, met één veld, met de naam voorwaarde, waarin de waarden die u wilt gebruiken voor de voorwaarde van auto's kunnen maken:

  1. Klik op het tabblad maken in de groep macro's en Code op Queryontwerp.

  2. Sluit het dialoogvenster Tabel weergeven.

  3. Klik op het tabblad ontwerp in de groep Querytype op Gegevensdefinitiequery.

    Het ontwerpraster is verborgen en het objecttabblad van de SQL-weergave wordt weergegeven.

  4. Typ de volgende SQL-instructie:

    TABEL CarCondition (voorwaarde TEXT(10)) maken

  5. Ga naar het tabblad Ontwerp en klik in de groep Resultaten op Uitvoeren.

  6. Een primaire sleutel voor de tabel met behulp van een ALTER TABLE-instructie maken:

    ALTER CarCondition ALTER kolom voorwaarde tekst beperking CarConditionPK primaire sleutel van tabel

  7. Als u wilt de waarden uit het veld voorwaarde van de tabel auto's in de nieuwe CarCondition tabel invoegen, typt u de volgende SQL in het objecttabblad van de SQL-weergave:

    INVOEGEN in de SELECT DISTINCT CarCondition voorwaarde van auto's;

    Opmerking: De SQL-instructie in deze stap is een toevoegquery. In tegenstelling tot een definitiequery, wordt een toevoegquery eindigt met een puntkomma.

  8. Ga naar het tabblad Ontwerp en klik in de groep Resultaten op Uitvoeren.

Een relatie maken met behulp van een beperking

Als u wilt dat elke nieuwe waarde ingevoegd in het veld voorwaarde van de tabel auto's overeenkomt met een waarde van het veld voorwaarde in de tabel CarCondition, kunt u vervolgens een relatie tussen CarCondition en auto's maken op het veld met de voorwaarde, met behulp van de volgende naam Procedure:

  1. Klik op het tabblad maken in de groep macro's en Code op Queryontwerp.

  2. Sluit het dialoogvenster Tabel weergeven.

  3. Klik op het tabblad ontwerp in de groep Querytype op Gegevensdefinitiequery.

    Het ontwerpraster is verborgen en het objecttabblad van de SQL-weergave wordt weergegeven.

  4. Typ de volgende SQL-instructie:

    ALTER tabel auto's ALTER kolom voorwaarde tekst beperking FKeyCondition verwijzingen CarCondition (voorwaarde)

  5. Ga naar het tabblad Ontwerp en klik in de groep Resultaten op Uitvoeren.

Beperkingen van meerdere velden

Een meervoudige CONSTRAINT, component alleen buiten een veld-definition-component kan worden gebruikt en heeft de volgende syntaxis:

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

Houd rekening met een ander voorbeeld waarin de tabel auto's. Stel dat u zorgen wilt dat er geen twee records in de tabel auto's dezelfde reeks waarden voor de naam, jaar, voorwaarde en prijs hebben. U kunt een unieke beperking die van toepassing op deze velden is met behulp van de volgende procedure kunnen maken:

  1. Klik op het tabblad maken in de groep macro's en Code op Queryontwerp.

  2. Sluit het dialoogvenster Tabel weergeven.

  3. Klik op het tabblad ontwerp in de groep Querytype op Gegevensdefinitiequery.

    Het ontwerpraster is verborgen en het objecttabblad van de SQL-weergave wordt weergegeven.

  4. Typ de volgende SQL-instructie:

    ALTER tabel auto's toevoegen beperking NoDupes unieke (naam, jaar, voorwaarde, prijs)

  5. Ga naar het tabblad Ontwerp en klik in de groep Resultaten op Uitvoeren.

Naar boven

Uw Office-vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Office Insiders

Was deze informatie nuttig?

Bedankt voor uw feedback.

Hartelijk dank voor uw feedback! Het lijkt ons een goed idee om u in contact te brengen met een van onze Office-ondersteuningsagents.

×