Freigeben über


Erstellen und Löschen von Tabellen und Indizes mit Access SQL

Tabellen sind die wichtigsten Bausteine einer relationalen Datenbank. Eine Tabelle enthält Zeilen (oder Datensätze) mit Daten, und jede Zeile ist in einer endlichen Anzahl von Spalten (oder Feldern) organisiert. Um in Access eine neue Tabelle mithilfe von Access SQL zu erstellen, müssen Sie die Tabelle und die Felder benennen und den Datentyp definieren, den die Felder enthalten werden. Verwenden Sie die CREATE TABLE-Anweisung , um die Tabelle in SQL zu definieren. Stellen Sie sich vor, dass Sie eine Rechnungsdatenbank erstellen. Der erste Schritt ist das Erstellen der Tabelle der anfänglichen Kunden.

CREATE TABLE tblCustomers  
    (CustomerID INTEGER, 
    [Last Name] TEXT(50), 
    [First Name] TEXT(50), 
    Phone TEXT(10), 
    Email TEXT(50)) 

Achten Sie beim Erstellen und Löschen von Tabellen auf die folgenden Probleme:

  • Wenn ein Feldname ein Leerzeichen oder ein anderes nicht alphanumerisches Zeichen enthält, müssen Sie diesen Feldnamen in eckige Klammern ([ ]) einschließen.
  • Wenn Sie keine Länge für Textfelder deklarieren, werden diese standardmäßig auf 255 Zeichen festgelegt. Aus Gründen der Konsistenz und Codelesbarkeit sollten Sie Feldlängen immer definieren.

Sie können ein Feld als NOT NULL deklarieren, was bedeutet, dass NULL-Werte nicht in dieses bestimmte Feld eingefügt werden können. Ein Wert ist immer erforderlich. Ein NULL-Wert darf nicht mit einer leeren Zeichenfolge oder einem Wert von 0 verwechselt werden. es ist einfach die Datenbankdarstellung eines unbekannten Werts.

CREATE TABLE tblCustomers  
    (CustomerID INTEGER NOT NULL, 
    [Last Name] TEXT(50) NOT NULL, 
    [First Name] TEXT(50) NOT NULL, 
    Phone TEXT(10), 
    Email TEXT(50)) 

Um eine Tabelle aus der Datenbank zu entfernen, verwenden Sie die DROP TABLE-Anweisung .

DROP TABLE tblCustomers 

Erstellen und Löschen von Indizes

Ein Index ist eine externe Datenstruktur, die zum Sortieren oder Anordnen von Zeigern auf Daten in einer Tabelle verwendet wird. Wenn Sie einen Index auf eine Tabelle anwenden, geben Sie eine bestimmte Anordnung der Daten an, damit schneller darauf zugegriffen werden kann. Wenn Sie jedoch zu viele Indizes auf eine Tabelle anwenden, können Sie die Leistung verlangsamen, da für die Verwaltung des Index ein zusätzlicher Mehraufwand entsteht und ein Index bei verwendung in einer Mehrbenutzerumgebung Sperrprobleme verursachen kann. Ein Index, der im richtigen Kontext verwendet wird, kann die Leistung einer Anwendung erheblich verbessern.

Um einen Index für eine Tabelle zu erstellen, müsen Sie den Index und die Tabelle benennen, für die der Index erstellt werden soll, das Feld oder die Felder innerhalb der zu verwendenden Tabelle benennen und die Optionen benennen, die Sie verwenden möchten. Sie verwenden die CREATE INDEX-Anweisung , um den Index zu erstellen. Sie können zum Beispiel einen Index für die Kundentabelle in der zuvor erwähnten Rechnungsdatenbank durch folgenden Code erstellen:

CREATE INDEX idxCustomerID  
    ON tblCustomers (CustomerID) 

Für das Sortieren indizierter Felder gibt es zwei Möglichkeiten: aufsteigend (ASC) oder absteigend (DESC). Die Standardreihenfolge ist aufsteigend und muss nicht deklariert werden. Wenn Sie die aufsteigende Reihenfolge verwenden, werden die Daten von 1 bis 100 sortiert. Wenn Sie die absteigende Reihenfolge angeben, werden die Daten von 100 bis 1 sortiert. Sie sollten die Sortierreihenfolge für jedes Feld im Index deklarieren.

CREATE INDEX idxCustomerID  
    ON tblCustomers (CustomerID DESC) 

Es gibt vier Hauptoptionen, die Sie mit einem Index verwenden können: PRIMARY, DISALLOW NULL, IGNORE NULL und UNIQUE. Die PRIMARY-Option gibt den Index als Primärschlüssel für die Tabelle an. Pro Tabelle kann es nur einen Primärschlüsselindex geben, obwohl der Primärschlüsselindex für mehr als ein Feld deklariert werden kann. Verwenden Sie das WITH-Schlüsselwort zum Deklarieren der Indexoptionen.

CREATE INDEX idxCustomerID  
    ON tblCustomers (CustomerID) 
    WITH PRIMARY 

Um einen Primärschlüsselindex für mehr als ein Feld zu erstellen, schließen Sie alle Feldnamen in die Feldliste ein.

CREATE INDEX idxCustomerName  
    ON tblCustomers ([Last Name], [First Name]) 
    WITH PRIMARY 

Die DISALLOW NULL-Option verhindert das Einfügen von Nulldaten in das Feld. (Dies ähnelt der NOT NULL -Deklaration in der CREATE TABLE -Anweisung.)

CREATE INDEX idxCustomerEmail  
    ON tblCustomers (Email) 
    WITH DISALLOW NULL 

Die IGNORE NULL-Option verursacht Nulldaten in der Tabelle, die für den Index ignoriert werden. Das bedeutet, dass jeder Datensatz über einen Nullwert im deklarierten Feld verfügt, der im Index nicht verwendet (oder gezählt) wird.

CREATE INDEX idxCustomerLastName  
    ON tblCustomers ([Last Name]) 
    WITH IGNORE NULL 

Zusätzlich zu den Optionen PRIMARY, DISALLOW NULL und IGNORE NULL können Sie den Index auch als UNIQUE deklarieren, was bedeutet, dass nur eindeutige, sich nicht wiederholende Werte in das indizierte Feld eingefügt werden können.

CREATE UNIQUE INDEX idxCustomerPhone  
    ON tblCustomers (Phone) 

Um einen Index aus einer Tabelle zu entfernen, verwenden Sie die DROP INDEX-Anweisung.

DROP INDEX idxName 
    ON tblCustomers 

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.