Der er to primære metoder til at se tabellerne i MySQL:
- MYSQL SHOW TABELLER kommando.
- Forespørgsel efter Informationsskema.tabeller tabel.
I denne artikel skal vi udforske dem begge.
MySQL SHOW TABLES Kommando
Kommandoen show tables viser listen over alle tabeller, der er oprettet i en database. Syntaksen er som følger:
SHOW [EXTENDED] | [FULL] TABLES
[{FROM} database_name]
[LIKE 'DBNamePattern']
I syntaksen,
- Modifiers :Vi kan bruge en af følgende muligheder til at se tabellerne:
- UDVIDET – denne indstilling udfylder listen over de tabeller, der er blevet oprettet af mislykkede ALTER TABLE-sætninger.
- FULD – denne indstilling viser en ekstra kolonne, der angiver tabellens type. Det kan være en basistabel, en visning eller systemvisning.
- FRA – hvis du vil udfylde listen over tabeller fra den specifikke tabel, kan du bruge søgeordet FROM.
- LIKE – hvis du ønsker at udfylde listen over tabeller med et bestemt mønster i deres navne, kan du bruge søgeordet LIKE.
Lad os se eksemplerne.
Eksempel 1:Vis alle tabeller oprettet i specifik database
For at se alle MySQL-tabeller oprettet i Sakila database, skal du bruge FULL modifier og FROM nøgleordet. Kør følgende kommando:
mysql> SHOW TABLES FROM sakila;
Output
Som du kan se, udfyldte forespørgslen listen over tabeller fra Sakila database.
Eksempel 2:Udfyld listen over tabeller med et specifikt søgeordsmønster
Antag, at vi ønsker at få listen over tabeller, hvilke navne starter med søgeordet film . Vi bruger søgeordet LIKE til at matche mønsteret.
Men når vi bruger LIKE søgeord, kan vi ikke bruge FRA modifikator. Forespørgslen er som følger:
use sakila;
SHOW TABLES like 'film%'
Output
Eksempel 3:Udfyld listen over tabeller med dens type
For at udfylde listen over tabeller med deres type, kan vi bruge FULD modifikator. Antag, at vi ønsker at udlede listen over tabeller med deres typer oprettet i Sakila-databasen. Se følgende forespørgsel:
mysql> SHOW FULL TABLES FROM sakila;
Output
Lad os nu udfylde listen over tabeller fra information_schema.tables .
Forespørgsel efter Information_schema.tables tabel
For at se MySQL-tabeller kan vi bruge informationsskema.tabeller tabel, som indeholder følgende oplysninger:
- Tabel_skema :Navn på databasen eller skemaet, hvori tabellen er oprettet.
- Tabelnavn: Tabellens navn.
- Tabeltype: Type af bordet. Det kan være en af følgende:
- Systemvisning: Liste over systemvisningerne. Den indeholder oplysningerne om databasens interne detaljer. Disse visninger oprettes ved at kombinere flere basistabeller med databaseoplysningerne.
- Basistabel: En liste over basistabeller kan være brugertabeller eller systemtabeller.
- Vis: Liste over brugerdefinerede visninger.
- Motor :Navn på databasemotoren, hvori tabellen er blevet oprettet.
- Version :Versionsnummeret for .frm tabellens fil.
- Rækkeformat :Formatet på rækkelageret. Rækkelagringsformatet kan være et af følgende:
- Løst
- Komprimeret
- Overflødig
- Dynamisk
- Kompakt
- Tabel_rækker :Antal rækker i tabellen. Hvis du bruger InnoDB-tabeller, returnerer det det anslåede antal rækker. Brug SELECT COUNT(*) for at få det nøjagtige rækkeantal forespørgsel.
- Gns._rækkelængde :Gennemsnitlig rækkelængde for datafilen.
- Datalængde :Hvis du bruger MyISAM-tabeller, værdien af data_længde kolonne er længden af datafilen. Hvis du bruger InnoDB-tabellerne, værdien af Data_længde kolonne er størrelsen af den størrelse, der er allokeret til klynget indeks ganget med InnoDB-sidestørrelsen.
- Maks_data_længde: Den maksimalt tilladte længde af datafilen. Det er antallet af bytes, der kan gemmes i tabellen.
- Indeks_længde: Længden af indekset. Hvis du bruger MyISAM-tabeller, værdien af index_length kolonne viser størrelsen af indekset. Hvis du bruger InnoDB-tabellerne, værdien af index_length kolonne er den samlede størrelse af alle ikke-klyngede indekser ganget med sidestørrelsen.
- Data_free :Det samlede antal tildelte, men ubrugte bytes. Hvis du bruger InnoDB-tabellen, er værdien af data_free kolonne er tablespaces ubrugte rum, hvor tabellen er blevet oprettet.
- Auto_increment: Værdien af Auto_increment kolonne er den næste automatiske stigningsværdi.
- Create_time :Dato og klokkeslæt, hvor tabellen er blevet oprettet. Når vi gendanner databasen, værdien af create_date vil være tidspunktet, hvor databasen blev gendannet.
- Update_time :Datoen og tidspunktet, hvor datafilen blev opdateret. Den viser tidsstemplet for de sidste INSERT-, UPDATE- eller DELETE-sætninger udført på InnoDB-tabellerne.
- Tjek_tid: Datoen og klokkeslættet, hvor tabellen sidst blev tjekket.
- Tabel_indsamling :Navnet på standardsorteringen af tabellen.
- Tjeksum :Kontrolsumværdien.
- Create_Option :Den ekstra konfigurationsmulighed, som blev brugt til at oprette tabellen.
- Tabel_kommentar :Kommentaren eller informationen, der blev brugt under oprettelse af tabellen.
Eksempel 1:Udfyld liste over alle tabeller
Antag, at vi ønsker at udfylde alle tabeller, der er oprettet i alle databaser. Forespørgslen er som følger:
mysql> select table_catalog, table_schema, table_name,table_type,create_time from information_schema.tables;
Output
Som du kan se, har forespørgslen udfyldt listen over tabeller med databasenavnet og oprettelsestidspunktet. Forespørgslen returnerede mange poster, så outputtet er trimmet.
Eksempel 2:Udfyld liste over alle tabeller oprettet i specifik database
At udfylde listen over tabeller oprettet i Sakila database, kan du anvende filteret på Tabelskema kolonne:
mysql> select table_catalog, table_schema, table_name,table_type,create_time from information_schema.tables WHERE table_schema='sakila';
Output
Som du kan se, har forespørgslen returneret listen over tabeller og visninger, der er oprettet i Sakila-databasen, dens oprettelsestid og type.
Eksempel 3:Udfyld liste over alle tabeller med rækkeantal
Vi kan inkludere Tabel_rækkerne kolonne for at se rækkeantallet af MySQL-tabeller. Antag, at du vil have listen over tabeller, hvis navn starter med film . Outputtet skal indeholde antallet af poster i disse 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';
Output
Eksempel 4:Udfyld antallet af tabeller og visninger
For eksempel ønsker vi at få optællingen af de tabeller og visninger, der er oprettet i databasen. For at gøre det skal du køre følgende forespørgsel:
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;
Output
Som du kan se på billedet ovenfor, har forespørgslen udfyldt antallet af tabeller og visninger, der er oprettet i alle databaser.
Eksempel 5:Tabeller med deres størrelse
Nu ønsker vi at udfylde listen over tabeller, der er oprettet i Sakila database med deres størrelse. For at generere listen skal du køre følgende forespørgsel:
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;
Output
Som du kan se, har forespørgslen returneret databasenavnet, tabelnavnet og størrelsen.
Oversigt
Således har vi defineret og lært at bruge metoderne til at udfylde listen over tabeller oprettet i databasen. Vi udforskede SHOW TABELLER kommandoen, og så undersøgte vi metoden til at forespørge Information_schema.tables bord. Vi håber, at disse tips vil være nyttige i din arbejdsgang.
Hvis du vil lære mere om tabeller i SQL, så læs artiklen om midlertidige tabeller i SQL Server. Og hvis du gerne vil tilføje noget, dele dine arbejdstip eller diskutere disse metoder, er du velkommen til kommentarsektionen.