Det finns två primära metoder för att visa tabellerna i MySQL:
- MYSQL SHOW TABELLER kommando.
- Fråga Informationsschema.tabeller tabell.
I den här artikeln ska vi utforska dem båda.
MySQL SHOW TABLES Kommando
Kommandot show tables visar listan över alla tabeller som skapats i en databas. Syntaxen är följande:
SHOW [EXTENDED] | [FULL] TABLES
[{FROM} database_name]
[LIKE 'DBNamePattern']
I syntaxen,
- Modifierare :Vi kan använda något av följande alternativ för att visa tabellerna:
- UTÖKAD – detta alternativ fyller i listan över tabeller som har skapats av misslyckade ALTER TABLE-satser.
- FULLSTÄLLT – det här alternativet visar en extra kolumn som visar typen av tabell. Det kan vara en bastabell, en vy eller systemvyn.
- FRÅN – om du vill fylla i listan med tabeller från den specifika tabellen kan du använda nyckelordet FROM.
- GILLA – om du vill fylla i listan över tabeller med ett specifikt mönster i deras namn, kan du använda nyckelordet LIKE.
Låt oss se exemplen.
Exempel 1:Visa alla tabeller skapade i specifik databas
För att se alla MySQL-tabeller skapade i Sakila databas, använd FULL modifieraren och nyckelordet FROM. Kör följande kommando:
mysql> SHOW TABLES FROM sakila;
Utdata
Som du kan se fyllde frågan i listan över tabeller från Sakila databas.
Exempel 2:Fyll listan med tabeller med ett specifikt sökordsmönster
Anta att vi vill få listan över tabeller vilka namn börjar med nyckelordet film . Vi använder nyckelordet LIKE för att matcha mönstret.
Men när vi använder GILLA sökord kan vi inte använda FRÅN modifierare. Frågan är som följer:
use sakila;
SHOW TABLES like 'film%'
Utdata
Exempel 3:Fyll i listan med tabeller med dess typ
För att fylla i listan över tabeller med deras typ, kan vi använda FULLSTÄNDIG modifierare. Anta att vi vill härleda listan över tabeller med deras typer skapade i Sakila-databasen. Se följande fråga:
mysql> SHOW FULL TABLES FROM sakila;
Utdata
Låt oss nu fylla i listan med tabeller från information_schema.tables .
Fråga informationsschema.tabeller
För att se MySQL-tabeller kan vi använda informationsschema.tabeller tabell som innehåller följande information:
- Tabell_Schema :Namn på databasen eller schemat där tabellen har skapats.
- Tabell_name: Tabellens namn.
- Tabell_type: Typ av tabell. Det kan vara något av följande:
- Systemvy: Lista över systemvyerna. Den innehåller information om databasens interna detaljer. Dessa vyer skapas genom att kombinera flera bastabeller med databasinformationen.
- Bastabell: En lista med bastabeller kan vara användartabeller eller systemtabeller.
- Visa: Lista över användardefinierade vyer.
- Motor :Namn på databasmotorn där tabellen har skapats.
- Version :Versionsnumret för .frm tabellens fil.
- Radformat :Formatet för radlagringen. Formatet för radlagring kan vara något av följande:
- Fastad
- Komprimerad
- Redundant
- Dynamisk
- Kompakt
- Tabell_rader :Antal rader i tabellen. Om du använder InnoDB-tabeller returnerar den det uppskattade radantalet. För att få det exakta antalet rader, använd VÄLJ ANTAL(*) fråga.
- Avg_row_length :Genomsnittlig radlängd för datafilen.
- Data_längd :Om du använder MyISAM-tabeller, värdet för data_length kolumn är längden på datafilen. Om du använder InnoDB-tabellerna, värdet för Data_length kolumnen är storleken som allokerats till klustrade index multiplicerat med InnoDB-sidstorleken.
- Max_data_length: Den maximala tillåtna längden på datafilen. Det är antalet byte som kan lagras i tabellen.
- Index_längd: Längden på indexet. Om du använder MyISAM-tabeller, värdet för index_length kolumnen visar storleken på indexet. Om du använder InnoDB-tabellerna, värdet för index_length kolumnen är den totala storleken på alla icke-klustrade index multiplicerat med sidstorleken.
- Data_free :Det totala antalet tilldelade men oanvända byte. Om du använder InnoDB-tabellen, värdet av data_free kolumn är tabellutrymmets oanvända utrymme där tabellen har skapats.
- Auto_increment: Värdet för Auto_increment kolumnen är nästa automatiska ökningsvärde.
- Create_time :Datum och tid då tabellen har skapats. När vi återställer databasen kommer värdet för create_date kommer att vara den tidpunkt då databasen återställdes.
- Update_time :Datum och tid då datafilen uppdaterades. Den visar tidsstämpeln för de senaste INSERT-, UPDATE- eller DELETE-satserna som kördes på InnoDB-tabellerna.
- Check_Time: Datum och tid då tabellen senast kontrollerades.
- Table_collation :Namnet på standardsorteringen av tabellen.
- Kontrollsumma :Kontrollsummans värde.
- Create_Option :Det extra konfigurationsalternativet som användes för att skapa tabellen.
- Tabell_comment :Kommentaren eller informationen som användes när tabellen skapades.
Exempel 1:Fyll i lista över alla tabeller
Anta att vi vill fylla i alla tabeller som skapats i alla databaser. Frågan är som följer:
mysql> select table_catalog, table_schema, table_name,table_type,create_time from information_schema.tables;
Utdata
Som du kan se har frågan fyllt i listan över tabeller med databasnamnet och skapa tid. Frågan returnerade många poster, så utdata trimmas.
Exempel 2:Fyll i lista över alla tabeller skapade i specifik databas
För att fylla i listan över tabeller som skapats i Sakila databas kan du använda filtret på Table_Schema kolumn:
mysql> select table_catalog, table_schema, table_name,table_type,create_time from information_schema.tables WHERE table_schema='sakila';
Utdata
Som du kan se har frågan returnerat listan över tabeller och vyer som skapats i Sakila-databasen, dess skapelsetid och typ.
Exempel 3:Fyll lista över alla tabeller med radantal
Vi kan inkludera tabellraderna kolumn för att se radantalet i MySQL-tabeller. Anta att du vill få listan över tabeller vars namn börjar med film . Utdata måste inkludera antalet poster i dessa tabeller.
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';
Utdata
Exempel 4:Fyll i antalet tabeller och visningar
Till exempel vill vi få antalet tabeller och vyer som skapats i databasen. För att göra det, kör följande fråga:
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;
Utdata
Som du kan se i bilden ovan har frågan fyllt i antalet tabeller och vyer som skapats i alla databaser.
Exempel 5:Tabeller med deras storlek
Nu vill vi fylla i listan över tabeller som skapats i Sakila databas med deras storlek. För att skapa listan, kör följande fråga:
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;
Utdata
Som du kan se har frågan returnerat databasnamn, tabellnamn och storlek.
Sammanfattning
Således har vi definierat och lärt oss att använda metoderna för att fylla i listan med tabeller som skapats i databasen. Vi utforskade SHOW TABELLER kommandot, och sedan undersökte vi metoden för att fråga Informationsschema.tabeller tabell. Vi hoppas att dessa tips kommer att vara användbara i ditt arbetsflöde.
Om du vill lära dig mer om tabeller i SQL, läs artikeln om temporära tabeller i SQL Server. Och om du vill lägga till något, dela med dig av dina arbetstips eller diskutera dessa metoder är du välkommen till avsnittet Kommentarer.