Es gibt zwei primäre Methoden, um die Tabellen in MySQL anzuzeigen:
- DieMYSQL-SHOW TABELLEN Befehl.
- Abfrage der Information_schema.tables Tabelle.
In diesem Artikel werden wir beide untersuchen.
MySQL SHOW TABLES-Befehl
Der Befehl show tables zeigt die Liste aller in einer Datenbank erstellten Tabellen an. Die Syntax lautet wie folgt:
SHOW [EXTENDED] | [FULL] TABLES
[{FROM} database_name]
[LIKE 'DBNamePattern']
In der Syntax,
- Modifikatoren :Wir können eine der folgenden Optionen verwenden, um die Tabellen anzuzeigen:
- VERLÄNGERT – Diese Option füllt die Liste der Tabellen, die durch fehlgeschlagene ALTER TABLE-Anweisungen erstellt wurden.
- VOLLSTÄNDIG – Diese Option zeigt eine zusätzliche Spalte an, die den Tabellentyp angibt. Dies kann eine Basistabelle, eine Ansicht oder die Systemansicht sein.
- VON – Wenn Sie die Liste der Tabellen aus einer bestimmten Tabelle füllen möchten, können Sie das FROM-Schlüsselwort verwenden.
- WIE – Wenn Sie die Liste der Tabellen mit einem bestimmten Muster in ihren Namen füllen möchten, können Sie das LIKE-Schlüsselwort verwenden.
Sehen wir uns die Beispiele an.
Beispiel 1:Alle Tabellen anzeigen, die in einer bestimmten Datenbank erstellt wurden
Um alle in Sakila erstellten MySQL-Tabellen anzuzeigen Datenbank, verwenden Sie den Modifikator FULL und das Schlüsselwort FROM. Führen Sie den folgenden Befehl aus:
mysql> SHOW TABLES FROM sakila;
Ausgabe
Wie Sie sehen können, füllte die Abfrage die Liste der Tabellen aus Sakila Datenbank.
Beispiel 2:Füllen Sie die Tabellenliste mit einem bestimmten Keyword-Muster
Angenommen, wir möchten die Liste der Tabellen abrufen, deren Namen mit dem Schlüsselwort film beginnen . Wir verwenden das Schlüsselwort LIKE, um das Muster abzugleichen.
Aber wenn wir das LIKE verwenden Schlüsselwort können wir das FROM nicht verwenden Modifikator. Die Abfrage lautet wie folgt:
use sakila;
SHOW TABLES like 'film%'
Ausgabe
Beispiel 3:Tabellenliste mit ihrem Typ füllen
Um die Liste der Tabellen mit ihrem Typ zu füllen, können wir FULL verwenden Modifikator. Angenommen, wir möchten die Liste der Tabellen mit ihren Typen ableiten, die in der Sakila-Datenbank erstellt wurden. Siehe folgende Abfrage:
mysql> SHOW FULL TABLES FROM sakila;
Ausgabe
Lassen Sie uns nun die Liste der Tabellen aus information_schema.tables füllen .
Abfrage der Information_schema.tables-Tabelle
Um MySQL-Tabellen anzuzeigen, können wir information_schema.tables verwenden Tabelle, die folgende Informationen enthält:
- Table_Schema :Name der Datenbank oder des Schemas, in dem die Tabelle erstellt wurde.
- Tabellenname: Name der Tabelle.
- Tabellentyp: Art der Tabelle. Es kann Folgendes sein:
- Systemansicht: Liste der Systemansichten. Es enthält die Informationen der internen Details der Datenbank. Diese Ansichten werden erstellt, indem mehrere Basistabellen mit den Datenbankinformationen kombiniert werden.
- Basistabelle: Eine Liste von Basistabellen kann Benutzertabellen oder Systemtabellen sein.
- Ansicht: Liste der benutzerdefinierten Ansichten.
- Motor :Name der Datenbank-Engine, in der die Tabelle erstellt wurde.
- Version :Die Versionsnummer der .frm Datei der Tabelle.
- Zeilenformat :Das Format des Zeilenspeichers. Das Zeilenspeicherformat kann eines der folgenden sein:
- Behoben
- Komprimiert
- Redundant
- Dynamisch
- Kompakt
- Tabellenzeilen :Anzahl der Zeilen innerhalb der Tabelle. Wenn Sie InnoDB-Tabellen verwenden, werden die geschätzten Zeilenzahlen zurückgegeben. Um die genaue Zeilenanzahl zu erhalten, verwenden Sie SELECT COUNT(*) Abfrage.
- Avg_row_length :Durchschnittliche Zeilenlänge der Datendatei.
- Datenlänge :Wenn Sie MyISAM-Tabellen verwenden, der Wert der data_length Spalte ist die Länge der Datendatei. Wenn Sie die InnoDB-Tabellen verwenden, ist der Wert der Data_length -Spalte ist der Betrag der dem Clustered-Index zugewiesenen Größe multipliziert mit der InnoDB-Seitengröße.
- Max_data_length: Die maximal zulässige Länge der Datendatei. Es ist die Anzahl der Bytes, die in der Tabelle gespeichert werden können.
- Indexlänge: Die Länge des Index. Wenn Sie MyISAM-Tabellen verwenden, der Wert der index_length Spalte zeigt die Größe des Indexes. Wenn Sie die InnoDB-Tabellen verwenden, ist der Wert der index_length Spalte ist die Gesamtgröße aller nicht geclusterten Indizes multipliziert mit der Seitengröße.
- Datenfrei :Die Gesamtzahl der zugewiesenen, aber nicht verwendeten Bytes. Wenn Sie die InnoDB-Tabelle verwenden, ist der Wert der data_free Spalte ist der ungenutzte Platz des Tabellenbereichs, in dem die Tabelle erstellt wurde.
- Auto_increment: Der Wert von Auto_increment Spalte ist der nächste Auto-Increment-Wert.
- Create_time :Das Datum und die Uhrzeit, wann die Tabelle erstellt wurde. Wenn wir die Datenbank wiederherstellen, wird der Wert von create_date wird der Zeitpunkt sein, an dem die Datenbank wiederhergestellt wurde.
- Update_time :Datum und Uhrzeit der Aktualisierung der Datendatei. Es zeigt den Zeitstempel der letzten INSERT-, UPDATE- oder DELETE-Anweisungen an, die für die InnoDB-Tabellen ausgeführt wurden.
- Check_Time: Datum und Uhrzeit der letzten Überprüfung der Tabelle.
- Table_collation :Der Name der Standardsortierung der Tabelle.
- Prüfsumme :Der Prüfsummenwert.
- Create_Option :Die zusätzliche Konfigurationsoption, die zum Erstellen der Tabelle verwendet wurde.
- Table_comment :Der Kommentar oder die Informationen, die beim Erstellen der Tabelle verwendet wurden.
Beispiel 1:Liste aller Tabellen füllen
Angenommen, wir möchten alle in allen Datenbanken erstellten Tabellen füllen. Die Abfrage lautet wie folgt:
mysql> select table_catalog, table_schema, table_name,table_type,create_time from information_schema.tables;
Ausgabe
Wie Sie sehen können, hat die Abfrage die Liste der Tabellen mit dem Datenbanknamen und der Erstellungszeit gefüllt. Die Abfrage hat viele Datensätze zurückgegeben, daher ist die Ausgabe gekürzt.
Beispiel 2:Füllen Sie eine Liste aller Tabellen aus, die in einer bestimmten Datenbank erstellt wurden
Um die Liste der in Sakila erstellten Tabellen zu füllen Datenbank können Sie den Filter auf das Table_Schema anwenden Spalte:
mysql> select table_catalog, table_schema, table_name,table_type,create_time from information_schema.tables WHERE table_schema='sakila';
Ausgabe
Wie Sie sehen können, hat die Abfrage die Liste der in der Sakila-Datenbank erstellten Tabellen und Ansichten, ihre Erstellungszeit und ihren Typ zurückgegeben.
Beispiel 3:Liste aller Tabellen mit Zeilenanzahl füllen
Wir können die Table_rows einschließen -Spalte, um die Zeilenanzahl von MySQL-Tabellen anzuzeigen. Angenommen, Sie möchten die Liste der Tabellen abrufen, deren Name mit film beginnt . Die Ausgabe muss die Anzahl der Datensätze in diesen Tabellen enthalten.
mysql> select table_catalog, table_schema, table_name,table_type,table_rows from information_schema.tables WHERE table_schema='sakila' and table_name like 'film%' and table_type='BASE TABLE';
Ausgabe
Beispiel 4:Füllen Sie die Anzahl der Tabellen und Ansichten auf
Beispielsweise möchten wir die Anzahl der in der Datenbank erstellten Tabellen und Ansichten abrufen. Führen Sie dazu die folgende Abfrage aus:
mysql> select table_schema as 'Database OR Schema name', count(table_type) as 'Tables and Views', table_type as 'Object Type' from information_schema.tables group by table_type,table_schema;
Ausgabe
Wie Sie im obigen Bild sehen können, hat die Abfrage die Anzahl der in allen Datenbanken erstellten Tabellen und Ansichten ausgefüllt.
Beispiel 5:Tabellen mit ihrer Größe
Jetzt möchten wir die Liste der in Sakila erstellten Tabellen füllen Datenbank mit ihrer Größe. Führen Sie zum Generieren der Liste die folgende Abfrage aus:
mysql> SELECT Table_schema as 'Database Name', TABLE_NAME AS 'Table', ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 ) AS 'Size in KB' FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'sakila' and table_type='BASE TABLE' ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC;
Ausgabe
Wie Sie sehen können, hat die Abfrage den Datenbanknamen, den Tabellennamen und die Größe zurückgegeben.
Zusammenfassung
Somit haben wir die Methoden zum Füllen der Liste der in der Datenbank erstellten Tabellen definiert und zu verwenden gelernt. Wir haben die SHOW erkundet TABELLEN Befehl, und dann haben wir die Methode zum Abfragen der Information_schema.tables untersucht Tisch. Wir hoffen, dass diese Tipps in Ihrem Arbeitsablauf nützlich sind.
Wenn Sie mehr über Tabellen in SQL erfahren möchten, lesen Sie den Artikel über temporäre Tabellen in SQL Server. Und wenn Sie etwas hinzufügen, Ihre Arbeitstipps teilen oder diese Methoden diskutieren möchten, sind Sie im Kommentarbereich willkommen.