Istnieją dwie podstawowe metody przeglądania tabel w MySQL:
- POKAŻ MYSQL STOŁY polecenie.
- Przesyłanie zapytań do Information_schema.tables stół.
W tym artykule omówimy je obie.
Polecenie MySQL SHOW TABLES
Polecenie show tables wyświetla listę wszystkich tabel utworzonych w bazie danych. Składnia jest następująca:
SHOW [EXTENDED] | [FULL] TABLES
[{FROM} database_name]
[LIKE 'DBNamePattern']
W składni
- Modyfikatory :Do przeglądania tabel możemy użyć dowolnej z następujących opcji:
- ROZSZERZONE – ta opcja wypełnia listę tabel, które zostały utworzone przez nieudane instrukcje ALTER TABLE.
- PEŁNE – ta opcja pokazuje dodatkową kolumnę, która podaje typ tabeli. Może to być tabela bazowa, widok lub widok systemowy.
- OD – jeśli chcesz wypełnić listę tabel z konkretnej tabeli, możesz użyć słowa kluczowego FROM.
- LUBIĘ – jeśli chcesz zapełnić listę tabel określonym wzorem w ich nazwach, możesz użyć słowa kluczowego LIKE.
Zobaczmy przykłady.
Przykład 1:Pokaż wszystkie tabele utworzone w określonej bazie danych
Aby wyświetlić wszystkie tabele MySQL utworzone w Sakili bazy danych, użyj modyfikatora FULL i słowa kluczowego FROM. Uruchom następujące polecenie:
mysql> SHOW TABLES FROM sakila;
Wyjście
Jak widać, zapytanie wypełniło listę tabel z Sakila baza danych.
Przykład 2:Wypełnij listę tabel określonym wzorcem słów kluczowych
Załóżmy, że chcemy uzyskać listę tabel, których nazwy zaczynają się od słowa kluczowego film . Używamy słowa kluczowego LIKE, aby dopasować wzorzec.
Ale kiedy używamy LIKE słowo kluczowe, nie możemy użyć OD modyfikator. Zapytanie jest następujące:
use sakila;
SHOW TABLES like 'film%'
Wyjście
Przykład 3:Wypełnij listę tabel jej typem
Aby wypełnić listę tabel ich typem, możemy użyć FULL modyfikator. Załóżmy, że chcemy uzyskać listę tabel wraz z ich typami utworzonymi w bazie danych Sakila. Zobacz następujące zapytanie:
mysql> SHOW FULL TABLES FROM sakila;
Wyjście
Teraz wypełnijmy listę tabel z information_schema.tables .
Odpytywanie tabeli Information_schema.tables
Aby wyświetlić tabele MySQL, możemy użyć information_schema.tables tabela zawierająca następujące informacje:
- Table_Schema :Nazwa bazy danych lub schematu, w którym utworzono tabelę.
- Nazwa_tabeli: Nazwa tabeli.
- Table_type: Rodzaj tabeli. Może to być dowolne z poniższych:
- Widok systemu: Lista widoków systemowych. Zawiera informacje o wewnętrznych danych bazy danych. Widoki te są tworzone przez połączenie wielu tabel bazowych z informacjami z bazy danych.
- Tabela podstawowa: Lista tabel podstawowych może być tabelami użytkownika lub tabelami systemowymi.
- Widok: Lista widoków zdefiniowanych przez użytkownika.
- Silnik :Nazwa silnika bazy danych, w którym utworzono tabelę.
- Wersja :numer wersji pliku .frm plik tabeli.
- Format_wiersza :Format przechowywania wierszy. Format przechowywania wierszy może być jednym z następujących:
- Naprawiono
- Skompresowany
- Zbędne
- Dynamiczny
- Kompaktowy
- Table_rows :Liczba wierszy w tabeli. Jeśli używasz tabel InnoDB, zwraca szacunkową liczbę wierszy. Aby uzyskać dokładną liczbę wierszy, użyj SELECT COUNT(*) zapytanie.
- Avg_row_length :Średnia długość wiersza w pliku danych.
- Długość_danych :jeśli używasz tabel MyISAM, wartość data_length kolumna to długość pliku danych. Jeśli używasz tabel InnoDB, wartość Długości_danych kolumna to wielkość rozmiaru przydzielonego do klastrowanego indeksu pomnożona przez rozmiar strony InnoDB.
- Max_data_length: Maksymalna dozwolona długość pliku danych. Jest to liczba bajtów, które można przechowywać w tabeli.
- Index_length: Długość indeksu. Jeśli używasz tabel MyISAM, wartość index_length kolumna pokazuje rozmiar indeksu. Jeśli używasz tabel InnoDB, wartość index_length kolumna to całkowity rozmiar wszystkich nieklastrowanych indeksów pomnożony przez rozmiar strony.
- Bez danych :Całkowita liczba przydzielonych, ale niewykorzystanych bajtów. Jeśli używasz tabeli InnoDB, wartość data_free kolumna to niewykorzystana przestrzeń przestrzeni tabel, w której utworzono tabelę.
- Automatyczna inkrementacja: Wartość Auto_increment kolumna jest następną wartością automatycznego przyrostu.
- Czas utworzenia :Data i godzina utworzenia tabeli. Kiedy przywracamy bazę danych, wartość data_tworzenia będzie to czas przywrócenia bazy danych.
- Czas_aktualizacji :Data i godzina aktualizacji pliku danych. Wyświetla znacznik czasu ostatnich instrukcji INSERT, UPDATE lub DELETE wykonanych w tabelach InnoDB.
- Czas_czeku: Data i godzina ostatniego sprawdzenia tabeli.
- Układanie_tabeli :Nazwa domyślnego sortowania tabeli.
- Suma kontrolna :Wartość sumy kontrolnej.
- Utwórz_opcję :Dodatkowa opcja konfiguracji, która została użyta do stworzenia tabeli.
- Table_comment :Komentarz lub informacje użyte podczas tworzenia tabeli.
Przykład 1:Wypełnij listę wszystkich tabel
Załóżmy, że chcemy wypełnić wszystkie tabele utworzone we wszystkich bazach danych. Zapytanie jest następujące:
mysql> select table_catalog, table_schema, table_name,table_type,create_time from information_schema.tables;
Wyjście
Jak widać, zapytanie wypełniło listę tabel nazwą bazy danych i czasem utworzenia. Zapytanie zwróciło wiele rekordów, więc dane wyjściowe są przycinane.
Przykład 2:Wypełnij listę wszystkich tabel utworzonych w określonej bazie danych
Aby wypełnić listę tabel utworzonych w Sakili bazy danych, możesz zastosować filtr na Table_Schema kolumna:
mysql> select table_catalog, table_schema, table_name,table_type,create_time from information_schema.tables WHERE table_schema='sakila';
Wyjście
Jak widać, zapytanie zwróciło listę tabel i widoków utworzonych w bazie danych Sakila, czas jej utworzenia i typ.
Przykład 3:Wypełnij listę wszystkich tabel liczbą wierszy
Możemy uwzględnić Table_rows kolumna, aby wyświetlić liczbę wierszy tabel MySQL. Załóżmy, że chcesz uzyskać listę tabel, których nazwa zaczyna się od film . Dane wyjściowe muszą zawierać liczbę rekordów w tych tabelach.
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';
Wyjście
Przykład 4:Wypełnij liczbę tabel i widoków
Na przykład chcemy uzyskać liczbę tabel i widoków utworzonych w bazie danych. Aby to zrobić, uruchom następujące zapytanie:
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;
Wyjście
Jak widać na powyższym obrazku, zapytanie wypełniło liczbę tabel i widoków utworzonych we wszystkich bazach danych.
Przykład 5:Tabele z ich rozmiarami
Teraz chcemy wypełnić listę tabel utworzonych w Sakili bazy danych wraz z ich rozmiarem. Aby wygenerować listę, uruchom następujące zapytanie:
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;
Wyjście
Jak widać, zapytanie zwróciło nazwę bazy danych, nazwę tabeli i rozmiar.
Podsumowanie
W ten sposób zdefiniowaliśmy i nauczyliśmy się korzystać z metod zapełniania listy tabel tworzonych w bazie danych. Przyjrzeliśmy się SHOW STOŁY polecenie, a następnie zbadaliśmy metodę odpytywania Information_schema.tables stół. Mamy nadzieję, że te wskazówki przydadzą się w Twojej pracy.
Jeśli chcesz dowiedzieć się więcej o tabelach w SQL, przeczytaj artykuł o tabelach tymczasowych w SQL Server. A jeśli chcesz coś dodać, podzielić się wskazówkami dotyczącymi pracy lub omówić te metody, zapraszamy do sekcji Komentarze.