Poniżej znajdują się cztery sposoby na wyświetlenie listy tabel w bazie danych MySQL za pomocą SQL lub wiersza poleceń.
SHOW TABLES
Polecenie
SHOW TABLES
polecenie wyświetla listę niebędącą TEMPORARY
tabele i widoki w danej bazie danych:
SHOW TABLES;
Wynik:
+-----------------+ | Tables_in_music | +-----------------+ | Albums | | Artists | | Genres | | valbumsartists | | valbumsgenres | | vallalbums | | vallartists | | vallgenres | +-----------------+
To zawiera listę wszystkich tabel w bieżącej bazie danych, która nazywa się Music
.
Możemy również użyć FULL
modyfikator, aby zwrócić drugą kolumnę wyświetlającą typ:
SHOW FULL TABLES;
Wynik:
+-----------------+------------+ | Tables_in_music | Table_type | +-----------------+------------+ | Albums | BASE TABLE | | Artists | BASE TABLE | | Genres | BASE TABLE | | valbumsartists | VIEW | | valbumsgenres | VIEW | | vallalbums | VIEW | | vallartists | VIEW | | vallgenres | VIEW | +-----------------+------------+
Widzimy, że większość wymienionych tutaj wyników to w rzeczywistości widoki.
Jeśli chcemy, aby zwracane były tylko tabele bazowe, możemy użyć WHERE
klauzula przeciwko Table_type
kolumna:
SHOW FULL TABLES
WHERE Table_type = 'BASE TABLE';
Wynik:
+-----------------+------------+ | Tables_in_music | Table_type | +-----------------+------------+ | Albums | BASE TABLE | | Artists | BASE TABLE | | Genres | BASE TABLE | +-----------------+------------+
SHOW TABLES
akceptuje również LIKE
klauzula, której można użyć do zawężenia wyników tylko do tych tabel, które pasują do danego wzorca:
SHOW TABLES
LIKE 'a%';
Wynik:
+----------------------+ | Tables_in_music (a%) | +----------------------+ | Albums | | Artists | +----------------------+
W tym przypadku zwróciłem wszystkie tabele, które zaczynają się na literę a
.
SHOW TABLE STATUS
Polecenie
SHOW TABLE STATUS
polecenie jest podobne do polecenia SHOW TABLES
polecenie, ale zawiera bardziej szczegółowe informacje o każdym z nich (nie TEMPORARY
) stół.
Akceptuje również WHERE
i LIKE
klauzula, np. SHOW TABLES
.
Przykład:
SHOW TABLE STATUS
LIKE 'a%';
Wynik:
+---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+ | Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment | +---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+ | Albums | InnoDB | 10 | Dynamic | 20 | 819 | 16384 | 0 | 32768 | 0 | 21 | 2022-02-15 09:10:36 | NULL | NULL | utf8mb4_0900_ai_ci | NULL | | | | Artists | InnoDB | 10 | Dynamic | 16 | 1024 | 16384 | 0 | 0 | 0 | 17 | 2021-11-13 12:56:02 | NULL | NULL | utf8mb4_0900_ai_ci | NULL | | | +---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+
information_schema.TABLES
Tabela
Możemy również wysłać zapytanie do information_schema.TABLES
tabela:
SELECT
TABLE_NAME
FROM
information_schema.TABLES
WHERE
TABLE_SCHEMA LIKE 'Music' AND TABLE_TYPE LIKE 'BASE_TABLE';
Wynik:
+------------+ | TABLE_NAME | +------------+ | Artists | | Genres | | Albums | +------------+
Zapytanie o to bez filtrowania wyników według TABLE_SCHEMA
zwraca tabele ze wszystkich baz danych. Podobnie, zapytanie bez filtrowania według TABLE_TYPE
zwraca wszystkie typy tabel.
mysqlshow
Klient
Innym sposobem na to jest mysqlshow
pożytek.
Aby użyć tej opcji, otwórz wiersz poleceń/okno terminala i uruchom następujące polecenie (zastępując music
z interesującą Cię bazą danych):
mysqlshow music;
Wynik:
+----------------+ | Tables | +----------------+ | Albums | | Artists | | Genres | | valbumsartists | | valbumsgenres | | vallalbums | | vallartists | | vallgenres | +----------------+
Spowoduje to zwrócenie widoków i tabel.
Dane wyjściowe wyświetlają tylko nazwy tych baz danych, tabel lub kolumn, do których masz pewne uprawnienia.
Jeśli nie podano bazy danych, wyświetlana jest lista nazw baz danych. Jeśli nie podano tabeli, wyświetlane są wszystkie pasujące tabele w bazie danych. Jeśli nie podano żadnej kolumny, wyświetlane są wszystkie pasujące kolumny i typy kolumn w tabeli.
Jeśli pojawi się błąd „odmowa dostępu”, może być konieczne użycie sudo
, i wprowadź hasło po wyświetleniu monitu:
sudo mysqlshow music;
To narzędzie akceptuje sporo opcji, takich jak --user
(abyś mógł przekazać nazwę użytkownika), --password
(abyś mógł przekazać hasło), --host
dla hosta, na którym znajduje się serwer MySQL itp.
Zobacz dokumentację MySQL, aby uzyskać pełną listę opcji.