Mysql
 sql >> база данни >  >> RDS >> Mysql

4 начина за изброяване на всички таблици в MySQL база данни

По-долу са изброени четири начина за изброяване на таблиците в 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 за пълен списък с опции.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да се свържете с MySQL сървър след инсталиране на XAMPP на Mac OS

  2. MySQL, по-добре да вмъкнете NULL или празен низ?

  3. Мигриране на MySQL към PostgreSQL на AWS RDS, част 1

  4. Android studio getSlotFromBufferLocked:неизвестна грешка в буфера

  5. MySQL търсене в списъка със запетая