sql >> Databasteknik >  >> RDS >> Mysql

Olika sätt att visa tabeller i MySQL Server

Det finns två primära metoder för att visa tabellerna i MySQL:

  1. MYSQL SHOW TABELLER kommando.
  2. 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,

  1. Modifierare :Vi kan använda något av följande alternativ för att visa tabellerna:
    1. UTÖKAD – detta alternativ fyller i listan över tabeller som har skapats av misslyckade ALTER TABLE-satser.
    2. FULLSTÄLLT – det här alternativet visar en extra kolumn som visar typen av tabell. Det kan vara en bastabell, en vy eller systemvyn.
  2. FRÅN – om du vill fylla i listan med tabeller från den specifika tabellen kan du använda nyckelordet FROM.
  3. 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.


  1. Hur kan jag skicka e-post från PostgreSQL trigger?

  2. När ska jag använda semikolon i SQL Server?

  3. Mysql välj distinkt

  4. Postgres dumpning av endast delar av tabeller för en dev-ögonblicksbild