
Die bisher verwendeten internen Tabellen hatten einen skalaren Datentyp als Zeilentyp. In dem hier in den Abbildungen gezeigten Beispiel ist der Zeilentyp der internen Tabelle numbers der eingebaute ABAP-Typ I.
Solche internen Tabellen werden als „einfache interne Tabellen" bezeichnet.

Wir sprechen von einer komplexen internen Tabelle, wenn der Zeilentyp ein strukturierter Datentyp ist.
Während eine einfache interne Tabelle nur eine namenlose Spalte hat, besteht eine komplexe interne Tabelle aus mehreren Spalten. Jede davon weist dabei jeweils den Namen und den Typ der entsprechenden Komponente des strukturierten Zeilentyps auf. Im Beispiel ist der Zeilentyp der internen Tabelle connections ein strukturierter Typ mit fünf Komponenten: carrier_id, connection_id, airport_from_id, airport_to_id und carrier_name. Folglich hat die interne Tabelle connections fünf Spalten mit diesen Namen.
Notiz

Bisher wurden die Zeilen einer internen Tabelle durch ihre Position adressiert. Dies wird als „Indexzugriff" bezeichnet.
Mit den benannten Spalten einer komplexen internen Tabelle wird der Schlüsselzugriff wichtiger. Bei einem Schlüsselzugriff wird eine Zeile der internen Tabelle über die Suche nach bestimmten Werten in bestimmten Spalten adressiert. Die Spalten, in denen Sie suchen, können beliebige Spalten der internen Tabelle sein.
Der Indexzugriff auf eine interne Tabelle erfolgt immer sehr schnell, auch wenn die interne Tabelle viele Zeilen enthält. Der Schlüsselzugriff kann jedoch sehr langsam werden, wenn die Tabelle viele Zeilen enthält. Die Auswahl der richtigen Zugriffsart für die interne Tabelle kann die Performance eines Schlüsselzugriffs verbessern.

Jede interne Tabelle besitzt eine der folgenden drei Zugriffsarten. Die Zugriffsart legt fest, auf welche Weise Daten in der Tabelle gespeichert werden und, je nachdem, wie das System die Tabelle beim Lesen der Daten durchsucht.
Es gibt folgende Tabellentypen:
- Standardtabelle
- Bei einer Standardtabelle erfolgt das Speichern der Inhalte in keiner bestimmten Reihenfolge. Neue Einträge werden standardmäßig am Tabellenende hinzugefügt. Um Daten nach Schlüsseln abzurufen, muss das System die Tabelle sequentiell durchsuchen. Bei großen Tabellen kann dies zu langen Antwortzeiten führen. Die bisher verwendeten einfachen internen Tabellen waren Standardtabellen.
- Sortierte Tabellen
- In einer sortierten Tabelle werden die Inhalte entsprechend den Schlüsselfeldern stets in aufsteigender Reihenfolge sortiert. Wenn Sie einen neuen Datensatz in die Tabelle einfügen, stellt das System sicher, dass dies an der richtigen Position erfolgt. Da die Daten immer sortiert sind, erfolgt das Abrufen von Datensätzen durch das System effizienter als bei Standardtabellen (sofern Sie bestimmte Regeln einhalten).
- Hash-Tabelle
- Hash-Tabellen werden durch einen speziellen Hash-Algorithmus verwaltet. Auf diese Weise ist sichergestellt, dass das System Datensätze selbst bei extrem großen Tabellen sehr schnell abrufen kann. Diese Performancesteigerung funktioniert jedoch nur in ganz bestimmten Fällen.

Jede interne Tabelle besitzt einen Schlüssel. Bei Standardtabellen spielt der Schlüssel keine besonders große Rolle. Bei sortierten Tabellen und Hash-Tabellen ist der Schlüssel dagegen sehr wichtig, da er bestimmt, auf welche Weise die Daten in der Tabelle verwaltet werden. Grundsätzlich sind sortierte Tabellen und Hash-Tabellen nur für Schlüsselzugriffe schneller, die alle oder zumindest eine Teilmenge der Schlüsselfelder adressieren.
Ein weiteres Attribut des Tabellenschlüssels ist seine Eindeutigkeit. Manchmal kann es erforderlich sein, doppelte Einträge in einer internen Tabelle zuzulassen. In anderen Fällen müssen Sie sicherstellen, dass der Schlüssel eindeutig ist. Hier gelten folgende Regeln:
- In Standardtabellen sind Dubletten immer zulässig.
- In Hash-Tabellen sind Dubletten niemals zulässig.
- Bei sortierten Tabellen legen Sie in der Definition fest, ob der Schlüssel eindeutig sein soll oder nicht.
Notiz
