Anzeigen und Auflisten von Tabellen in MySQL-Datenbanken

Bei der Arbeit mit MySQL oder MariaDB müssen Datenbankentwickler, Designer und Administratoren häufig Datenbankstrukturen verwalten und ändern und dabei die Sicherheit durch eine ordnungsgemäße Zugriffskontrolle sowie sichere Strukturänderungen gewährleisten.

Eine häufige Aufgabe besteht darin, schnell alle Tabellen in einer Datenbank aufzulisten, um ihre Existenz, Namen und Benutzerberechtigungen zu überprüfen. In MySQL ist der Befehl SHOW TABLES der schnellste Weg, dies zu tun.

Dieser Artikel erklärt die Syntax des Befehls und demonstriert seine Verwendung sowohl über die Befehlszeile als auch in dbForge Studio for MySQL.

Auflistung aller Tabellen in einer MySQL-Datenbank

Lassen Sie uns mit der grundlegendsten Syntax beginnen. Um Tabellen in MySQL anzuzeigen, führen Sie die folgende Abfrage aus.

SHOW TABLES;

Sie können diese Anweisung im MySQL Command Line Client, MySQL Shell oder in einem beliebigen GUI-Tool ausführen, das SQL unterstützt, und so alle Tabellen in einer MySQL-Datenbank anzeigen. Dieser Ansatz ist ähnlich dem, der verwendet wird, um Tabellen in SQL Server anzuzeigen.

MySQL gibt die Ergebnisse in einer Tabelle mit einer Spalte zurück - Tables_in_DatabaseName. Die Tabellennamen werden in alphabetischer Reihenfolge aufgelistet. Die Zusammenfassungszeile gibt die Gesamtanzahl der Tabellen in der Datenbank an.

Beispiel für MySQL SHOW TABLES

Um den SHOW TABLES-Befehl zu verwenden, müssen Sie sich zunächst auf dem MySQL-Server anmelden.

  1. Geben Sie beim Öffnen des MySQL Command Line Client Ihr Passwort ein.
  2. Wählen Sie die spezifische Datenbank.
USE databasename;
  1. Führen Sie den SHOW TABLES-Befehl aus, um alle Tabellen in der ausgewählten Datenbank anzuzeigen.

Verwendung von SHOW TABLES mit dem LIKE-Muster

Ihr Server kann große Datenbanken mit vielen tausend Tabellen enthalten. Was, wenn Sie wissen müssen, wie man eine bestimmte Tabelle in MySQL anzeigt? Sie können den LIKE-Ausdruck zusammen mit dem MySQL-Befehl SHOW TABLES verwenden.

SHOW TABLES [LIKE 'pattern']

Auf diese Weise sehen Sie nur eine gefilterte Liste von Tabellen, anstatt alle durchzugehen. Angenommen, wir möchten, dass die Anweisung nur die Namen derjenigen Datenbanken zurückgibt, die mit dem Buchstaben 'a' beginnen.

SHOW TABLES LIKE 'a%';

SHOW FULL TABLES in MySQL

Falls Sie mehr Informationen über die Tabellen in Ihrer Datenbank benötigen, verwenden Sie die folgende Abfrage.

SHOW FULL TABLES;

MySQL listet Tabellen in einer Datenbank zusammen mit ihren Typen auf. Die Ausgabe ist eine Tabelle mit zwei Spalten: Tables_in_DatabaseName und Table_Type. Die Tabellen sind in alphabetischer Reihenfolge geordnet. Die letzte Zeile definiert ihre Gesamtzahl in der Datenbank.

Anzeigen von Tabellen über die Befehlszeile

Sie können auch alle Datenbanken über die Befehlszeile auflisten. Es gibt drei gängige Methoden dafür.

1. Öffnen Sie die Eingabeaufforderung (Command Prompt) und wechseln Sie in den bin-Ordner Ihres MySQL-Server-Installationsverzeichnisses. Stellen Sie anschließend mit dem Befehl mysql -u user -p eine Verbindung zum Server her. Geben Sie das Passwort ein und führen Sie den Befehl SHOW TABLES; aus.

2. Öffnen Sie die Eingabeaufforderung, wechseln Sie in den bin-Ordner Ihres MySQL-Server-Installationsverzeichnisses und führen Sie die folgende Abfrage aus.

mysql -u username -p -e "use databasename;
show tables;"

3. Öffnen Sie die Eingabeaufforderung, wechseln Sie in den bin-Ordner Ihres MySQL-Server-Installationsverzeichnisses und führen Sie die folgende Abfrage aus.

mysqlshow -u user -p

SHOW TABLES vs INFORMATION_SCHEMA-Abfragen

Eine weitere Möglichkeit, Tabellen in MySQL anzuzeigen, besteht darin, die Ansicht information_schema.tables innerhalb der MySQL-Instanz abzufragen. Eine grundlegende Abfrage sieht wie folgt aus.

SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'db_name';

Werfen Sie einen Blick auf die folgende Vergleichstabelle, die die wichtigsten Funktionen des Befehls SHOW TABLES im Vergleich zur Abfrage der Ansicht information_schema.tables hervorhebt.

SHOW TABLES INFORMATION_SCHEMA-Abfragen
Zweck Listet alle Tabellen in der aktuell ausgewählten Datenbank auf Bietet detaillierte Metadaten über Objekte über Standard-SQL-Abfragen
SQL-Standardkonformität MySQL-spezifisch ANSI-SQL-Standard
Datenbankauswahl Funktioniert nur auf der aktuell ausgewählten Datenbank Kann Metadaten aus jeder Datenbank abfragen
Filterung Begrenzt (LIKE- oder WHERE-Klauseln für Tabellennamen) Erweitert (Filterung nach mehreren Spalten)
Metadatendetails Listet nur Tabellennamen auf Kann Tabellentyp, Erstellungszeit, Engine, Zeilenanzahl usw. abrufen
Datenbankübergreifende Abfragen Nein Kann Metadaten für mehrere Datenbanken in einer Abfrage abfragen
Leistung Schnell für einfache Tabellenauflistungsvorgänge Langsamer bei großen Metadatenabfragen, aber informativer
Anwendungsfall Schnelle Überprüfung vorhandener Tabellen in einer Datenbank Detaillierte Analyse/Berichterstellung über Tabellen und andere Datenbankobjekte

Häufige Fehler und Tipps zur Fehlerbehebung

Einige Probleme treten häufig beim Ausführen von SHOW TABLES auf:

  • Zugriff verweigert oder unzureichende Berechtigungen
  • Keine Datenbank ausgewählt
  • Falsche Datenbank ausgewählt
  • Beschädigte oder nicht zugängliche Datenbank
  • Leeres Ergebnis zurückgegeben

Tipps zur Behebung dieser Probleme:

  • Überprüfen Sie die Befehlssyntax auf Korrektheit
  • Verifizieren Sie den Datenbanknamen und die Verbindung
  • Wenden Sie sich an Ihren DBA, um die erforderlichen Berechtigungen anzufordern
  • Verwenden Sie information_schema.tables, um zu prüfen, ob die Datenbank Tabellen enthält

Berechtigungen zur Verwendung von SHOW TABLES

Der Befehl SHOW TABLES ruft die Liste der Tabellennamen ab, die Teil der Metadaten der Datenbank sind. Um darauf zugreifen zu können, benötigt MySQL das SELECT-Privileg für die Datenbank. Alternativ kann auch das SHOW-Privileg auf Datenbank- oder Tabellenebene gewährt werden.

Um Zugriff auf alle Tabellen einer Datenbank zu gewähren, verwenden Sie ein Sternchen (*).

GRANT SELECT, SHOW VIEW ON world.* TO 'testuser'@'localhost';

Um Zugriff auf eine bestimmte Tabelle zu gewähren, geben Sie deren Namen an.

GRANT SELECT, SHOW VIEW ON sakila.film TO 'testuser'@'localhost';

Hinweis: Gewähren Sie Zugriff auf jede Tabelle einzeln mit separaten GRANT-Anweisungen.

Der Benutzer kann nur auf die angegebenen Tabellen zugreifen.

Anwendungsfälle für SHOW TABLES

Der SHOW TABLES-Befehl in MySQL bietet eine schnelle Möglichkeit, Datenbanken zu überprüfen und Fehler zu beheben. Er hilft Entwicklern und Datenbankadministratoren (DBAs) bei mehreren häufigen Aufgaben:

Anwendungsfälle für SHOW TABLES

Datenbankexploration und Onboarding

Entwickler oder DBAs, die neu in einer Datenbank sind, benötigen oft einen schnellen Überblick über die verfügbaren Tabellen. SHOW TABLES liefert ihnen sofort eine Liste ohne komplexe Abfragen.

Skripterstellung und Automatisierung

Skripte und Wartungsaufträge müssen häufig die Existenz von Tabellen überprüfen, bevor Aufgaben wie Sicherungen, Dateneinfügungen oder Schema-Updates ausgeführt werden. SHOW TABLES hilft dabei, diese Überprüfung zu automatisieren.

Entwicklung und Tests

Während der Entwicklung oder Migration ist es wichtig zu überprüfen, dass bestimmte Tabellen erstellt, gelöscht oder geändert wurden. Verwenden Sie SHOW TABLES dafür in Entwicklungs- oder Staging-Umgebungen.

Berechtigung und Zugriffsprüfung

Sie können SHOW TABLES verwenden, um zu bestimmen, ob ein Benutzer SELECT-Berechtigungen für eine Datenbank oder bestimmte Datenbankobjekte hat. Wenn die Ausgabe keine Tabellen enthält, kann dies auf eingeschränkten Zugriff hinweisen.

Fehlerbehebung und Debugging

Wenn eine Abfrage aufgrund fehlender oder falsch benannter Tabellen fehlschlägt, kann das Überprüfen, ob die Tabelle existiert, das Problem beheben. SHOW TABLES vereinfacht dies, indem alle Tabellen in der Datenbank aufgelistet werden.

Überwachung und Gesundheitschecks

Die routinemäßige Überwachung von Datenbanken umfasst die Überprüfung auf das Vorhandensein und die korrekte Benennung kritischer Tabellen. SHOW TABLES ermöglicht es Teams, schnell zu bestätigen, dass alle erforderlichen Tabellen vorhanden sind.

Anzeige aller Tabellen in einer MySQL-Datenbank mit dbForge Studio for MySQL

Zuvor haben wir gezeigt, wie Sie Tabellen in einer MySQL-Datenbank mithilfe spezifischer SQL-Abfragen auflisten, sowohl über das Befehlszeilenprogramm als auch in dbForge Studio for MySQL.

Das Studio bietet auch einen visuelleren Ansatz, mit dem Sie Tabellen, Ansichten, Trigger, Funktionen und andere Datenbankobjekte anzeigen können, ohne Code zu schreiben.

  • 1. Wählen Sie die gewünschte Datenbank im Database Explorer aus.
  • 2. Erweitern Sie den Datenbankknoten.
  • 3. Erweitern Sie den Abschnitt Tables, um eine vollständige Liste aller Tabellen in der Datenbank anzuzeigen.

Conclusion

Dieser Artikel hat erklärt, wie man Tabellen in MySQL-Datenbanken mit verschiedenen Optionen und Tools anzeigen kann. Unter ihnen sticht dbForge Studio for MySQL als eines der besten MySQL-GUI-Tools auf dem heutigen Markt hervor. Es bietet Dutzende nützlicher Funktionen, mit denen Sie alle datenbankbezogenen Aufgaben ausführen können: alle Datenbanken in MySQL anzeigen, eine MySQL-Datenbank kopieren, eine Tabelle in MySQL sichern usw. Darüber hinaus bietet dbForge Studio ein praktisches MySQL-Administrator-Tool. Doch ein Bild sagt mehr als tausend Worte, daher laden wir Sie herzlich ein, eine kostenlose 30-tägige Testversion herunterzuladen!

dbForge Studio for MySQL

dbForge Studio for MySQL

Die beste IDE für effektive Datenbankentwicklung

Häufig gestellte Fragen

Kann ich eine WHERE- oder LIKE-Klausel mit SHOW TABLES in MySQL verwenden?

Ja, Sie können die Ausgabe von SHOW TABLES mit der LIKE- oder WHERE-Klausel filtern. Diese Filter helfen dabei, die Ergebnisse in großen Datenbanken einzugrenzen, wenn Sie MySQL-Tabellen in einer bestimmten Datenbank anzeigen möchten.

Verwenden Sie LIKE für Musterabgleiche – zum Beispiel: SHOW TABLES LIKE 'user%';. Verwenden Sie WHERE, um nach einer bestimmten Tabelle zu suchen – zum Beispiel: SHOW TABLES WHERE Tables_in_dbname = 'users' (ersetzen Sie dbname durch Ihren Datenbanknamen).

Hinweis: Obwohl die WHERE-Klausel mit SHOW TABLES verwendet werden kann, wird sie häufiger in Abfragen gegen information_schema.tables für komplexe Filterungen eingesetzt. Wenn Sie mit SHOW TABLES nach einer bestimmten Tabelle suchen, ist LIKE in der Regel die einfachste und effektivste Option.

Warum gibt SHOW TABLES ein leeres Resultset zurück?

SHOW TABLES gibt ein leeres Ergebnis zurück, wenn die Datenbank keine Tabellen enthält oder wenn Ihnen die SELECT-Berechtigung für die Datenbank bzw. deren Tabellen fehlt. Dies kann auch passieren, wenn Sie nicht mit einer Datenbank verbunden sind oder die falsche Datenbank verwenden.

Wie liste ich Tabellen aus einer anderen Datenbank in MySQL auf?

Um Tabellen aus einer anderen Datenbank aufzulisten, verwenden Sie SHOW TABLES FROM database_name;. Alternativ können Sie mit USE database_name; zur dieser Datenbank wechseln und dann SHOW TABLES ausführen.

Wie überprüfe ich, ob eine bestimmte Tabelle mit SHOW TABLES vorhanden ist?

Verwenden Sie SHOW TABLES LIKE 'table_name';, um zu überprüfen, ob eine Tabelle vorhanden ist. Wenn das Ergebnis den Tabellennamen enthält, existiert er in der aktuellen Datenbank. Wenn er nicht angezeigt wird, kann es sein, dass die Tabelle nicht vorhanden ist oder Sie nicht die erforderlichen SELECT-Berechtigungen haben. Stellen Sie sicher, dass Sie mit der richtigen Datenbank verbunden sind.

Welche Berechtigungen sind erforderlich, um SHOW TABLES in MySQL auszuführen?

Sie benötigen mindestens die SELECT-Berechtigung für die Datenbank, um SHOW TABLES auszuführen. Ohne dies gibt der Befehl ein leeres Ergebnis zurück, auch wenn Tabellen vorhanden sind.

Wie liste ich nur Basistabellen auf und schließe Ansichten in MySQL aus?

Fragen Sie die Ansicht information_schema.tables ab und filtern Sie nach der TABLE_TYPE-Spalte.

SELECT
  TABLE_NAME
FROM information_schema.tables
WHERE TABLE_SCHEMA = 'your_db_name'
AND TABLE_TYPE = 'BASE TABLE';

Dies gibt nur Basistabellen zurück und schließt Ansichten aus.

Hat dbForge Studio for MySQL eine grafische Möglichkeit, alle Tabellen in einer Datenbank aufzulisten?

Ja, Sie können den Database Explorer auf der linken Seite verwenden. Wählen Sie Ihre Datenbank aus und erweitern Sie den Knoten Tables, um alle Tabellen anzuzeigen. Sie können einzelne Tabellen aufklappen, um Spaltendetails zu sehen.

Gibt es eine Möglichkeit, Tabellen und Ansichten visuell in dbForge Studio anzuzeigen?

Ja. Navigieren Sie im Database Explorer zu Ihrer Datenbank und erweitern Sie sie. Dort sehen Sie die Knoten Tables und Views. Erweitern Sie diese, um alle Tabellen und Views anzuzeigen.

Kann der dbForge AI Assistant beim Anzeigen von MySQL-Tabellen aus einer Datenbank helfen?

Ja. Der Hauptzweck des dbForge AI Assistant besteht darin, Ihnen beim Erstellen individueller SQL-Abfragen zu helfen. Er kann natürliche Sprache in SQL umwandeln, sodass Sie einfach beschreiben können, was Sie benötigen, z. B. das Anzeigen aller Tabellen in einer Datenbank oder das Anwenden bestimmter Bedingungen. Anschließend generiert der AI Assistant die entsprechende SQL-Abfrage für Sie.

Verfügbarkeit in den Editionen von dbForge Studio for MySQL