Er zijn twee primaire methoden om de tabellen in MySQL te bekijken:
- DeMYSQL SHOW TABELLEN commando.
- Opvragen van de Information_schema.tables tafel.
In dit artikel gaan we ze allebei onderzoeken.
MySQL SHOW TABLES-opdracht
De opdracht show tabellen geeft de lijst weer van alle tabellen die in een database zijn gemaakt. De syntaxis is als volgt:
SHOW [EXTENDED] | [FULL] TABLES
[{FROM} database_name]
[LIKE 'DBNamePattern']
In de syntaxis,
- Modificaties :We kunnen een van de volgende opties gebruiken om de tabellen te bekijken:
- UITGEBREID – deze optie vult de lijst met tabellen die zijn gemaakt door mislukte ALTER TABLE-instructies.
- VOL - deze optie toont een extra kolom die het type tabel aangeeft. Dit kan een basistabel, een weergave of de systeemweergave zijn.
- VAN – als u de lijst met tabellen uit de specifieke tabel wilt vullen, kunt u het sleutelwoord FROM gebruiken.
- LIKE - als u de lijst met tabellen wilt vullen met een specifiek patroon in hun naam, kunt u het LIKE-sleutelwoord gebruiken.
Laten we de voorbeelden eens bekijken.
Voorbeeld 1:Toon alle tabellen die in een specifieke database zijn gemaakt
Om alle MySQL-tabellen te bekijken die zijn gemaakt in de Sakila database, gebruik dan de FULL-modifier en het FROM-sleutelwoord. Voer de volgende opdracht uit:
mysql> SHOW TABLES FROM sakila;
Uitvoer
Zoals je kunt zien, vulde de query de lijst met tabellen uit de Sakila database.
Voorbeeld 2:vul de lijst met tabellen met een specifiek zoekwoordpatroon
Stel dat we de lijst met tabellen willen krijgen waarvan de namen beginnen met het trefwoord film . We gebruiken het LIKE-zoekwoord om bij het patroon te passen.
Maar wanneer we de LIKE . gebruiken zoekwoord, kunnen we de FROM . niet gebruiken modificator. De vraag is als volgt:
use sakila;
SHOW TABLES like 'film%'
Uitvoer
Voorbeeld 3:Vul de lijst met tabellen met zijn type
Om de lijst met tabellen met hun type te vullen, kunnen we de FULL . gebruiken modificator. Stel dat we de lijst met tabellen met hun typen willen afleiden die in de Sakila-database zijn gemaakt. Zie de volgende vraag:
mysql> SHOW FULL TABLES FROM sakila;
Uitvoer
Laten we nu de lijst met tabellen vullen uit information_schema.tables .
Informatie_schema.tables opvragen
Om MySQL-tabellen te bekijken, kunnen we de information_schema.tables gebruiken tabel die de volgende informatie bevat:
- Table_Schema :Naam van de database of het schema waarin de tabel is gemaakt.
- Table_name: Naam van de tafel.
- Table_type: Type van de tafel. Dit kan een van de volgende zijn:
- Systeemweergave: Lijst met systeemweergaven. Het bevat de informatie van de interne gegevens van de database. Deze weergaven worden gemaakt door meerdere basistabellen te combineren met de database-informatie.
- Basistabel: Een lijst met basistabellen kan gebruikerstabellen of systeemtabellen zijn.
- Bekijken: Lijst met door de gebruiker gedefinieerde weergaven.
- Motor :Naam van de database-engine waarin de tabel is gemaakt.
- Versie :Het versienummer van de .frm bestand van de tabel.
- Row_format :Het formaat van de rijopslag. Het formaat van de rij-opslag kan een van de volgende zijn:
- Opgelost
- Gecomprimeerd
- Overtollig
- Dynamisch
- Compact
- Table_rows :Aantal rijen in de tabel. Als u InnoDB-tabellen gebruikt, wordt het geschatte aantal rijen geretourneerd. Gebruik de SELECT COUNT(*) . om het exacte aantal rijen te krijgen vraag.
- Gem_row_lengte :gemiddelde rijlengte van het gegevensbestand.
- Data_length :Als u MyISAM-tabellen gebruikt, is de waarde van de data_length kolom is de lengte van het gegevensbestand. Als u de InnoDB-tabellen gebruikt, is de waarde van de Data_length kolom is het bedrag van de grootte die is toegewezen aan de geclusterde index vermenigvuldigd met de InnoDB-paginagrootte.
- Max_data_length: De maximaal toegestane lengte van het gegevensbestand. Het is het aantal bytes dat in de tabel kan worden opgeslagen.
- Index_length: De lengte van de index. Als u MyISAM-tabellen gebruikt, is de waarde van de index_length kolom toont de grootte van de index. Als u de InnoDB-tabellen gebruikt, is de waarde van de index_length kolom is de totale grootte van alle niet-geclusterde indexen vermenigvuldigd met de paginagrootte.
- Data_free :Het totale aantal toegewezen maar ongebruikte bytes. Als u de InnoDB-tabel gebruikt, is de waarde van de data_free kolom is de ongebruikte ruimte van de tabelruimte waarin de tabel is gemaakt.
- Auto_increment: De waarde van de Auto_increment kolom is de volgende waarde voor automatisch verhogen.
- Create_time :De datum en tijd waarop de tabel is gemaakt. Wanneer we de database herstellen, wordt de waarde van de create_date zal de tijd zijn waarop de database werd hersteld.
- Update_time :De datum en tijd waarop het gegevensbestand is bijgewerkt. Het toont het tijdstempel van de laatste INSERT-, UPDATE- of DELETE-instructies die zijn uitgevoerd op de InnoDB-tabellen.
- Check_Time: De datum en tijd waarop de tafel voor het laatst is gecontroleerd.
- Table_collation :De naam van de standaardsortering van de tabel.
- Checksum :De controlesomwaarde.
- Create_Option :De extra configuratieoptie die werd gebruikt om de tabel te maken.
- Table_comment :De opmerking of informatie die is gebruikt tijdens het maken van de tabel.
Voorbeeld 1:Lijst met alle tabellen invullen
Stel dat we alle tabellen willen vullen die in alle databases zijn gemaakt. De vraag is als volgt:
mysql> select table_catalog, table_schema, table_name,table_type,create_time from information_schema.tables;
Uitvoer
Zoals u kunt zien, heeft de query de lijst met tabellen gevuld met de databasenaam en de aanmaaktijd. De query heeft veel records geretourneerd, dus de uitvoer is bijgesneden.
Voorbeeld 2:Vul een lijst in met alle tabellen die in een specifieke database zijn gemaakt
Om de lijst met tabellen te vullen die zijn gemaakt in de Sakila database, kunt u het filter toepassen op het Table_Schema kolom:
mysql> select table_catalog, table_schema, table_name,table_type,create_time from information_schema.tables WHERE table_schema='sakila';
Uitvoer
Zoals u kunt zien, heeft de query de lijst met tabellen en weergaven die zijn gemaakt in de Sakila-database, de aanmaaktijd en het type geretourneerd.
Voorbeeld 3:Lijst van alle tabellen vullen met rijtelling
We kunnen de Table_rows . opnemen kolom om het aantal rijen van MySQL-tabellen te bekijken. Stel dat u de lijst met tabellen wilt krijgen waarvan de naam begint met film . De uitvoer moet het aantal records in die tabellen bevatten.
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';
Uitvoer
Voorbeeld 4:Vul het aantal tabellen en weergaven in
We willen bijvoorbeeld het aantal tabellen en weergaven krijgen die in de database zijn gemaakt. Voer hiervoor de volgende query uit:
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;
Uitvoer
Zoals u in de bovenstaande afbeelding kunt zien, heeft de query het aantal tabellen en weergaven dat in alle databases is gemaakt, ingevuld.
Voorbeeld 5:tabellen met hun grootte
Nu willen we de lijst met tabellen vullen die zijn gemaakt in de Sakila database met hun grootte. Voer de volgende query uit om de lijst te genereren:
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;
Uitvoer
Zoals u kunt zien, heeft de query de databasenaam, tabelnaam en grootte geretourneerd.
Samenvatting
We hebben dus de methoden gedefinieerd en leren gebruiken voor het vullen van de lijst met tabellen die in de database zijn gemaakt. We hebben de SHOW . verkend TABELLEN commando, en vervolgens hebben we de methode onderzocht voor het opvragen van de Information_schema.tables tafel. We hopen dat deze tips nuttig zullen zijn in uw workflow.
Wil je meer weten over tabellen in SQL, lees dan het artikel over tijdelijke tabellen in SQL Server. En als u iets wilt toevoegen, uw werktips wilt delen of deze methoden wilt bespreken, bent u welkom in het gedeelte Opmerkingen.