По-долу са изброени четири начина за изброяване на таблиците в MySQL база данни с помощта на SQL или командния ред.
SHOW TABLES
Команда
SHOW TABLES
командата изброява не-TEMPORARY
таблици и изгледи в дадена база данни:
SHOW TABLES;
Резултат:
+-----------------+ | Tables_in_music | +-----------------+ | Albums | | Artists | | Genres | | valbumsartists | | valbumsgenres | | vallalbums | | vallartists | | vallgenres | +-----------------+
Това изброява всички таблици в текущата база данни, която се нарича Music
.
Можем също да използваме FULL
модификатор за връщане на втора колона, която показва типа:
SHOW FULL TABLES;
Резултат:
+-----------------+------------+ | Tables_in_music | Table_type | +-----------------+------------+ | Albums | BASE TABLE | | Artists | BASE TABLE | | Genres | BASE TABLE | | valbumsartists | VIEW | | valbumsgenres | VIEW | | vallalbums | VIEW | | vallartists | VIEW | | vallgenres | VIEW | +-----------------+------------+
Можем да видим, че повечето от резултатите, изброени тук, всъщност са изгледи.
Ако искаме да бъдат върнати само базови таблици, можем да използваме WHERE
клауза срещу Table_type
колона:
SHOW FULL TABLES
WHERE Table_type = 'BASE TABLE';
Резултат:
+-----------------+------------+ | Tables_in_music | Table_type | +-----------------+------------+ | Albums | BASE TABLE | | Artists | BASE TABLE | | Genres | BASE TABLE | +-----------------+------------+
SHOW TABLES
също така приема LIKE
клауза, която може да се използва за стесняване на резултатите само до тези таблици, които съответстват на даден модел:
SHOW TABLES
LIKE 'a%';
Резултат:
+----------------------+ | Tables_in_music (a%) | +----------------------+ | Albums | | Artists | +----------------------+
В този случай върнах всички таблици, които започват с буквата a
.
SHOW TABLE STATUS
Команда
SHOW TABLE STATUS
командата е подобна на SHOW TABLES
команда, но предоставя по-подробна информация за всеки (не-TEMPORARY
) маса.
Също така приема WHERE
и LIKE
клауза, като SHOW TABLES
.
Пример:
SHOW TABLE STATUS
LIKE 'a%';
Резултат:
+---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+ | 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
Таблица
Можем също да направим заявка за information_schema.TABLES
таблица:
SELECT
TABLE_NAME
FROM
information_schema.TABLES
WHERE
TABLE_SCHEMA LIKE 'Music' AND TABLE_TYPE LIKE 'BASE_TABLE';
Резултат:
+------------+ | TABLE_NAME | +------------+ | Artists | | Genres | | Albums | +------------+
Запитване за това без филтриране на резултатите по TABLE_SCHEMA
връща таблици от всички бази данни. По същия начин, заявка за него без филтриране по TABLE_TYPE
връща всички типове таблици.
mysqlshow
Клиент
Друг начин да го направите е с mysqlshow
полезност.
За да използвате тази опция, отворете прозорец на командния ред/терминал и изпълнете следното (заменяйки music
с базата данни, от която се интересувате):
mysqlshow music;
Резултат:
+----------------+ | Tables | +----------------+ | Albums | | Artists | | Genres | | valbumsartists | | valbumsgenres | | vallalbums | | vallartists | | vallgenres | +----------------+
Това връща изгледи и таблици.
Резултатът показва само имената на тези бази данни, таблици или колони, за които имате някои привилегии.
Ако не е дадена база данни, се показва списък с имена на бази данни. Ако не е дадена таблица, се показват всички съответстващи таблици в базата данни. Ако не е дадена колона, се показват всички съвпадащи колони и типове колони в таблицата.
Ако получите грешка „отказан достъп“, може да се наложи да използвате sudo
, и въведете паролата си при подкана:
sudo mysqlshow music;
Тази помощна програма приема доста опции, като --user
(за да можете да подадете потребителското име), --password
(за да можете да предадете паролата), --host
за хоста, на който се намира MySQL сървъра и т.н.
Вижте документацията на MySQL за пълен списък с опции.