Direkt zum Inhalt

SQLite Tabellen anzeigen: Ein kompletter Leitfaden für die Datenbanknavigation

Erforsche verschiedene Methoden zum Auflisten von Tabellen in einer SQLite-Datenbank mithilfe der Kommandozeile, von SQL-Abfragen und Programmiersprachen wie Python und C.
Aktualisierte 14. Feb. 2025  · 9 Min. Lesezeit

Die Anzeige von Tabellen in SQLite ist wichtig für die Datenbanknavigation und -verwaltung. Bei der Arbeit mit Datenbanken hilft dir die Anzeige der Tabelle, die Datenbankstruktur zu verstehen, vor allem wenn du mit Daten mit komplexen Beziehungen arbeitest. Im Gegensatz zu MySQL, das einen einfachen SHOW TABLES Befehl bietet, gibt es in SQLite keine direkte Methode zur Anzeige von Tabellen. SQLite bietet jedoch mehrere alternative Methoden, um das gleiche Ergebnis zu erzielen.

In diesem Lehrgang zeige ich dir die verschiedenen Methoden, um Tabellen in der SQLite-Datenbank anzuzeigen. Dazu gehören der Befehl .tables, die Tabelle sqlite_master und der Befehl PRAGMA.

Schnelle Antwort: Wie man Tabellen in SQLite anzeigt

In SQLite kannst du mit einfachen Befehlen und Abfragen die Namen von Tabellen in einer Datenbank abrufen. Die zwei einfachsten Methoden sind die folgenden.

  • .tables Befehl: Dies ist ein eingebauter SQLite-Befehl in der Kommandozeilen-Shell, der alle Tabellen in der aktuellen Datenbank anzeigt.

  • SQL-Abfrage auf sqlite_master: Du kannst auch die folgende Abfrage ausführen, um die Namen der Tabellen zu ermitteln:

SELECT name FROM sqlite_master WHERE type='table';

Umfassende Methoden zur Anzeige von Tabellen in SQLite

Sehen wir uns nun die verschiedenen Möglichkeiten an, Tabellen in SQLite anzuzeigen:

Tabellen mit dem Befehl .tables anzeigen

Die einfachste Möglichkeit, Tabellen in der SQLite-Datenbank anzuzeigen, ist der Befehl .tables. Im Folgenden findest du einige Methoden, wie du den Befehl .tables verwenden kannst.

Alle Tabellen anzeigen

Um alle Tabellen in der Datenbank anzuzeigen, führst du einfach den Befehl .tables in der Befehlszeilenschnittstelle (CLI) aus. Diese Methode ist einfach und nützlich, wenn du das Datenbankschema einsehen möchtest.

.tables

Muster verwenden

.tables unterstützt auch das Filtern nach Mustern, damit bestimmte Tabellen gefiltert werden können. Du kannst mit dem Befehl .tables ein Muster angeben, indem du Platzhalterzeichen wie % verwendest. Diese Technik ist nützlich, wenn du viele Tabellen in deiner Datenbank hast und nach bestimmten Tabellen filtern möchtest.

Der folgende Befehl gibt nur die Tabellen zurück, die mit "a" beginnen. So kannst du unnötige Tabellen herausfiltern.

.tables a%

Außerdem möchte ich klarstellen, dass der Befehl .tables in der SQLite-Shell die GLOB-Muster und nicht die LIKE -Muster von SQL verwendet. Diese Unterscheidung ist wichtig, weil GLOB zwischen Groß- und Kleinschreibung unterscheidet und * und ? als Wildcards verwendet, im Gegensatz zu % und _ in SQL.

Temporäre Tabellen

Mit dem Befehl .tables kannst du auch temporäre Tabellen in der Datenbank anzeigen. Wenn du SQLite verwendest, kannst du mit der Anweisung CREATE TEMPORARY TABLE eine temporäre Tabelle erstellen, die nur für die Dauer der Sitzung existiert. Mit dem Befehl .tables kannst du die temporäre Tabelle neben den regulären Tabellen anzeigen, solange die Sitzung aktiv bleibt.

Tabellen mit der Tabelle sqlite_master anzeigen

Die Tabelle sqlite_master in SQLite ist eine spezielle Systemtabelle, die Metadaten über das Datenbankschema speichert, einschließlich Tabellen, Indizes, Views und Triggern. Diese Methode bietet mehr Kontrolle und Flexibilität beim Auflisten von Tabellen als der Befehl .tables. Du kannst die Abfrage anpassen, Filter anwenden und bestimmte Arten von Tabellen abrufen. Im Folgenden werden Methoden zur Verwendung der Tabelle sqlite_master beschrieben.

Abfrage von Tabellennamen

Um Tabellennamen aus der Datenbank abzurufen, kannst du die folgende SQL-Abfrage für die Tabelle sqlite_master verwenden.

SELECT name FROM sqlite_master WHERE type='table';

Beachte, dass diese Abfrage nur die Tabellennamen zurückgibt, da wir die type als ‘table’ angegeben haben.

Systemtabellen filtern

SQLite speichert interne Daten normalerweise in Systemtabellen wie sqlite_sequence, aber diese Tabellen sind für die meisten Datenbankoperationen nicht relevant. Um diese Tabellen aus deiner angezeigten Tabellenliste auszuschließen, kannst du einen bedingten Filter in die Abfrage einfügen, um sie herauszufiltern. Den Systemtabellen wird in der Regel der Name sqlite_ vorangestellt, damit du sie leichter herausfiltern kannst.

SELECT name FROM sqlite_master 
WHERE type='table' AND name NOT LIKE 'sqlite_%';

Tabellen mit dem PRAGMA-Befehl anzeigen

Der Befehl PRAGMA table_list in SQLite listet auch Tabellen innerhalb einer Datenbank auf. Dieser Befehl liefert Tabellennamen und enthält zusätzliche Metadaten, wie das Schema und den Typ der Tabelle. Damit ist es eine leistungsfähigere Option als der Befehl .tables und die Abfrage der Tabelle sqlite_master. Im Folgenden erklären wir dir, wie du die Methode anwenden kannst.

Anzeige der Metadaten der Tabelle

Der Befehl PRAGMA table_list liefert eine Liste von Tabellen und detaillierten Metadaten, darunter die folgenden:

  • Schema Name: Gibt an, ob die Tabelle zur Hauptdatenbank oder zu einem anderen angehängten Schema gehört.
  • Tabelle Name: Der Name der Tabelle.
  • Tabelle Typ: Gibt an, ob es sich bei dem Eintrag um eine Tabelle, eine Ansicht oder eine temporäre Tabelle handelt.
  • Ursprung der Tabelle: gibt an, ob die Tabelle vom Benutzer oder automatisch vom System erstellt wurde.
PRAGMA table_list;

Filtern nach Schema

Du kannst auch PRAGMA table_list verwenden, um deine Datenbank nach Schema zu filtern. Diese Technik ist vor allem dann wichtig, wenn du mehrere Schemas wie temp, main oder andere benutzerdefinierte Schemas hast. Der folgende Befehl zeigt zum Beispiel die Tabellen im Schema main an.

PRAGMA table_list('main');

Tabellen in SQLite mit Programmiersprachen anzeigen

Entwickler können Tabellen in einer SQLite-Datenbank mit verschiedenen Programmiersprachen auflisten, darunter Python und C. Diese Fähigkeit ist wichtig für Anwendungen, die dynamisch mit Datenbanken interagieren, und ermöglicht eine bessere Datenverwaltung und Benutzerfreundlichkeit.

SQLite Tabellen anzeigen Anwendungsfälle

Die häufigsten Anwendungsfälle für das Auflisten von Tabellen in Anwendungen sind die folgenden:

  • Datenbankmanagement: Das dynamische Auflisten von Tabellen hilft, Datenbanken zu verwalten, ihre Struktur zu überprüfen und Vorgänge wie Migrationen oder Backups durchzuführen.
  • Dynamische Abfragen und Berichte: Manche Anwendungen müssen den Benutzern die verfügbaren Tabellen dynamisch anzeigen, damit sie bestimmte Tabellen für Abfragen oder Berichte auswählen können.
  • Datenmigration und -validierung: Bei der datenbankübergreifenden Migration oder Validierung von Daten ist es wichtig sicherzustellen, dass alle erforderlichen Tabellen vorhanden sind und der erwarteten Struktur entsprechen.

Verbindung zu SQLite herstellen und Tabellennamen programmatisch abfragen

Befolge die folgenden Schritte, um dich programmatisch mit der SQLite-Datenbank zu verbinden und die Tabellennamen aufzulisten.

  • Stelle eine Verbindung zur SQLite-Datenbank her: Die meisten Programmiersprachen verfügen über Bibliotheken, die eine einfache Integration mit SQLite ermöglichen (z. B. sqlite3 in Python oder die SQLite C API).

  • Führe eine Abfrage zum Abrufen von Tabellennamen aus: Du kannst die Tabelle sqlite_master verwenden, um Tabellennamen anzuzeigen, oder den Befehl PRAGMA table_list, um detaillierte Metadaten anzuzeigen.

Abrufen von Tabellendaten in C

Du kannst die SQLite-Anwendung in C mit der SQLite C API verbinden. Mit dieser API kannst du Tabellendaten mit SQL-Anweisungen wie PRAGMA table_list abrufen oder die Tabelle sqlite_master abfragen. Diese Technik ist nützlich für die Low-Level-Systemprogrammierung, wenn du nur begrenzte Ressourcen hast und eine optimale Leistung beibehalten willst.

Leistungsüberlegungen

Beim Auflisten von Tabellen in SQLite kann es zu Leistungsproblemen kommen, vor allem wenn du mit großen Datensätzen arbeitest. Sie umfassen die folgenden Punkte:

Leistung der Kommandozeile

Da die .tables in SQLite integriert ist, ist sie auf Geschwindigkeit und Effizienz für kleinere Datenbanken optimiert. Die Verwendung von SQL-Abfragen wie SELECT name FROM sqlite_master WHERE type='table'; ist jedoch etwas langsamer als .tables, da die Query Execution Engine die Anfrage verarbeitet. Der Unterschied wird aber praktisch gesehen vernachlässigbar sein. Die SQL-Abfrage ist immer noch flexibler als der Befehl .tables, da sie eine Filterung der Ergebnisse ermöglicht.

Programmatische Leistung

Wenn du die Bibliothek sqlite3 in Python verwendest, kann die Leistung langsam sein, vor allem wenn du mit großen Datensätzen arbeitest. C bietet jedoch einen direkteren und optimierten Zugang zu SQLite-Datenbanken über die SQLite C API. Du kannst C verwenden, wenn du große Datenmengen bearbeitest, die häufige Datenbankinteraktionen erfordern, um eine optimale und effiziente Leistung zu erzielen.

Häufige Fehler und wie du sie behandelst

Wenn du Tabellen in SQLite auflistest, können einige Fehler auftreten, die den Prozess behindern. Im Folgenden findest du einige der häufigsten Fehler und wie du sie beheben kannst.

Keine Tabellen gefunden

Zu den möglichen Ursachen für die Fehlermeldung "keine Tabelle gefunden" gehören folgende:

  • Leere Datenbank: Es kann sein, dass die Datenbank keine Tabellen hat, vor allem bei neu erstellten Datenbanken oder nachdem alle Tabellen gelöscht wurden. 

  • Falsche Datenbankverbindung: Du bist vielleicht mit der falschen oder unerwarteten Datenbank verbunden. Überprüfe immer den Pfad der Datenbankdatei und stelle sicher, dass du mit der richtigen Datenbank verbunden bist.

  • Datenbank-Korruption: Eine beschädigte Datenbank kann dazu führen, dass SQLite Tabellen nicht richtig anzeigt. Um eine Beschädigung der Datenbank zu erkennen, führe die Seite PRAGMA integrity_check aus und befolge die Schritte.

Probleme mit temporären Tabellen

Bei der Arbeit mit temporären Tabellen können die folgenden Probleme auftreten:

  • Session-spezifische Natur: Temporäre Tabellen sind normalerweise an die aktuelle Datenbankverbindung und Sitzung gebunden. Wenn du die erwartete temporäre Tabelle nicht in der Tabellenliste sehen kannst, stelle immer sicher, dass du mit der aktuellen Sitzung verbunden bist.

  • Namenskonflikte: Temporäre Tabellen teilen sich die Namensräume mit regulären Tabellen und können die regulären Tabellen überschatten, wenn sie mit bestehenden Namen erstellt werden. In solchen Fällen kann es sein, dass der Befehl listing table die regulären Tabellen nicht anzeigt, wenn du die temporären Tabellen nicht löschst.

  • Auflistung temporärer Tabellen: Der Befehl .tables und PRAGMA table_list zeigen temporäre Tabellen an. Wenn du die sqlite_master abfragst, werden temporäre Tabellen nicht angezeigt, da sie in einer anderen temporären Datenbank gespeichert sind. Um temporäre Tabellen explizit aufzulisten, verwendest du die Tabelle temp.sqlite_master: SELECT name FROM temp.sqlite_master WHERE type='table';

Alternativen zum Auflisten von Tabellen in SQLite

Für die Auflistung von Tabellen in SQLite gibt es verschiedene alternative Methoden zum Befehl .tables und zur Abfrage von sqlite_master. Zu diesen Methoden gehören die folgenden:

SQLite GUI Tools verwenden

Die folgenden SQLite-GUI-Tools sind nützlich, wenn du die Tabellen ansehen und verwalten willst, ohne Abfragen zu schreiben.

  • DB Browser für SQLite: Ein Open-Source-GUI-Tool, das es Nutzern ermöglicht, visuell mit ihren Datenbanken zu interagieren, indem sie alle Tabellen in einer Datenbank auf einer einfachen Oberfläche anzeigen.
  • Imker Studio: Ein plattformübergreifendes GUI-Tool für SQLite, das eine intuitive Oberfläche für die Verwaltung von Datenbanken bietet, einschließlich der Auflistung von Tabellen, der Bearbeitung von Zeilen und der Ausführung von Abfragen.
  • DBeaver: Ein universelles Datenbankwerkzeug, mit dem du durch die Datenbankstruktur navigieren und Tabellen, Spalten und ihre Metadaten anzeigen kannst.

Programmatische Lösungen

Als Alternative zu den Kommandozeilen- oder GUI-Tools können Entwickler Programmiersprachen wie Python, C, Java oder Node.js verwenden, um Tabellen in SQLite programmatisch aufzulisten.

  • Python: Die sqlite3 Bibliothek in Python ermöglicht es Entwicklern, sich mit einer Datenbank zu verbinden und Abfragen auszuführen, um Tabellen aufzulisten.

  • C: Die C-API ermöglicht eine Verbindung zu SQLite und einen effizienten Abruf von Tabellen, insbesondere in leistungskritischen oder eingebetteten Systemen.

  • JavaScript (Node.js): Pakete wie better-sqlite3 oder sqlite3 für Node.js ermöglichen es Entwicklern, SQLite-Tabellen in Webanwendungen oder Backend-Dienste zu integrieren.

Fazit

Es gibt verschiedene Methoden, um SQLite-Tabellen anzuzeigen. Dazu gehören der Befehl .tables, die Abfrage der Tabelle sqlite_master und der Befehl PRAGMA table_list für mehr Flexibilität. Um SQLite-Datenbanken effizient zu navigieren und zu verwalten, ist es wichtig zu wissen, wann man welche Technik einsetzt.

SQLite FAQs

Wie unterscheidet sich SQLite bei der Auflistung von Tabellen von anderen Datenbanken?

SQLite verfügt nicht über einen SHOW TABLES Befehl wie MySQL oder PostgreSQL. Stattdessen werden Tabellen mit Befehlen wie .tables und Abfragen gegen die Tabelle sqlite_master aufgelistet.

Was ist der Unterschied zwischen .tables und der Abfrage der sqlite_master Tabelle?

Der Befehl .tables ist eine eingebaute Funktion im SQLite CLI für die schnelle Auflistung von Tabellen, während die Abfrage von sqlite_master mehr Flexibilität bietet und das Filtern oder zusätzliche Bedingungen bei der Auflistung von Tabellen ermöglicht.

Warum gibt es keine Tabellen in meiner SQLite-Datenbank?

Der Fehler "Keine Tabellen gefunden" kann auftreten, wenn du eine leere Datenbank hast, mit der falschen Datenbankdatei verbunden bist oder temporäre Tabellen in einer anderen Sitzung erstellt wurden.

Kann ich SQLite in Programmiersprachen verwenden, um Tabellen aufzulisten?

Ja, die meisten Programmiersprachen wie Python, C und JavaScript (Node.js) haben Bibliotheken oder APIs, mit denen du mit SQLite-Datenbanken interagieren und eine Liste von Tabellen abrufen kannst.

Welche Werkzeuge gibt es, um Tabellen in SQLite anzusehen, ohne SQL-Befehle zu verwenden?

Mit Tools wie DB Browser for SQLite, Beekeeper Studio und DBeaver kannst du Tabellen anzeigen und verwalten, ohne SQL-Befehle zu schreiben.


Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Ich verfasse Artikel, die Datenwissenschaft und Analytik vereinfachen und leicht verständlich und zugänglich machen.
Themen

Lernen mit DataCamp

Kurs

Introduction to Relational Databases in SQL

4 Std.
168.4K
Learn how to create one of the most efficient ways of storing data - relational databases!
Siehe DetailsRight Arrow
Kurs starten
Mehr anzeigenRight Arrow
Verwandt

Der Blog

Die 20 besten Snowflake-Interview-Fragen für alle Niveaus

Bist du gerade auf der Suche nach einem Job, der Snowflake nutzt? Bereite dich mit diesen 20 besten Snowflake-Interview-Fragen vor, damit du den Job bekommst!
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

15 Min.

Der Blog

Lehrer/innen und Schüler/innen erhalten das Premium DataCamp kostenlos für ihre gesamte akademische Laufbahn

Keine Hacks, keine Tricks. Schüler/innen und Lehrer/innen, lest weiter, um zu erfahren, wie ihr die Datenerziehung, die euch zusteht, kostenlos bekommen könnt.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

4 Min.

Der Blog

2022-2023 DataCamp Classrooms Jahresbericht

Zu Beginn des neuen Schuljahres ist DataCamp Classrooms motivierter denn je, das Lernen mit Daten zu demokratisieren. In den letzten 12 Monaten sind über 7.650 neue Klassenzimmer hinzugekommen.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 Min.

Der Blog

Top 30 Generative KI Interview Fragen und Antworten für 2024

Dieser Blog bietet eine umfassende Sammlung von Fragen und Antworten zu generativen KI-Interviews, die von grundlegenden Konzepten bis hin zu fortgeschrittenen Themen reichen.
Hesam Sheikh Hassani's photo

Hesam Sheikh Hassani

15 Min.

Der Blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates hat im zweiten Quartal 2023 über 20.000 Stipendien an unsere gemeinnützigen Partner vergeben. Erfahre, wie fleißige benachteiligte Lernende diese Chancen in lebensverändernde berufliche Erfolge verwandelt haben.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Mehr anzeigenMehr anzeigen