バナー画像

MySQLのデータベース一覧確認の方法についてまとめています。

データベース一覧の確認は、show databases

MySQLでデータベースの一覧を確認するSQLは、show databasesです。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| employees          |
| employees2         |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

シノニム(エイリアス)として、show schemasでも同じ結果が表示されます。

mysql> show schemas;
+--------------------+
| Database           |
+--------------------+
| employees          |
| employees2         |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

likeでワイルドカード文字による、絞り込みも可能です。

mysql> show databases like 'emp%';
+-----------------+
| Database (emp%) |
+-----------------+
| employees       |
| employees2      |
+-----------------+

mysqlshowコマンドは、データベース、テーブル、カラム一覧が同じコマンドで表示できる

mysqlshowコマンドで、データベース一覧を表示するには以下のようにします。

$ mysqlshow -u root -p
Enter password: 
+--------------------+
|     Databases      |
+--------------------+
| employees          |
| employees2         |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

mysqlshowでテーブル件数一覧表示

–countオプションを指定すると、データベースごとのテーブル数とデータのロウ数一覧が表示されます。

内部的にselect count(*)を使っていると思われるため、巨大なデータを保管しているテーブルがあると、データベース自体のパフォーマンスに影響を及ぼす恐れがあります。注意しましょう。

$ mysqlshow --count -u root -p
Enter password: 
+--------------------+--------+--------------+
|     Databases      | Tables |  Total Rows  |
+--------------------+--------+--------------+
| employees          |      8 |      4519063 |
| employees2         |      8 |      4519063 |
| information_schema |     73 |        28980 |
| mysql              |     33 |       140834 |
| performance_schema |    103 |       369292 |
| sys                |    101 |         4732 |
+--------------------+--------+--------------+

データベース名指定で、テーブル一覧表示

データベース名を指定すると、対象データベースのテーブル一覧を表示します。

SQLで実現するなら、show tablesと同等です。

-tオプションで、テーブルタイプも表示します。

$ mysqlshow employees -t -u root -p
Enter password: 
Database: employees
+----------------------+------------+
|        Tables        | table_type |
+----------------------+------------+
| current_dept_emp     | VIEW       |
| departments          | BASE TABLE |
| dept_emp             | BASE TABLE |
| dept_emp_latest_date | VIEW       |
| dept_manager         | BASE TABLE |
| employees            | BASE TABLE |
| salaries             | BASE TABLE |
| titles               | BASE TABLE |
+----------------------+------------+

-iオプション指定で、テーブルの詳細つきで一覧表示を行います。

$ mysqlshow employees -i -u root -p
Enter password: 
Database: employees
+----------------------+--------+---------+------------+---------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+
| 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 |
+----------------------+--------+---------+------------+---------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+
| current_dept_emp     |        |         |            |         |                |             |                 |              |           |                | 2020-01-17 05:27:16 |             |            |                    |          |                | VIEW    |
| departments          | InnoDB | 10      | Dynamic    | 9       | 1820           | 16384       | 0               | 16384        | 0         |                | 2020-01-17 05:27:15 |             |            | utf8mb4_0900_ai_ci |          |                |         |
| dept_emp             | InnoDB | 10      | Dynamic    | 331143  | 36             | 12075008    | 0               | 5783552      | 4194304   |                | 2020-01-17 05:27:15 |             |            | utf8mb4_0900_ai_ci |          |                |         |
| dept_emp_latest_date |        |         |            |         |                |             |                 |              |           |                | 2020-01-17 05:27:16 |             |            |                    |          |                | VIEW    |
| dept_manager         | InnoDB | 10      | Dynamic    | 24      | 682            | 16384       | 0               | 16384        | 0         |                | 2020-01-17 05:27:15 |             |            | utf8mb4_0900_ai_ci |          |                |         |
| employees            | InnoDB | 10      | Dynamic    | 299246  | 50             | 15220736    | 0               | 0            | 4194304   |                | 2020-01-17 05:27:15 |             |            | utf8mb4_0900_ai_ci |          |                |         |
| salaries             | InnoDB | 10      | Dynamic    | 2838426 | 35             | 100270080   | 0               | 0            | 4194304   |                | 2020-01-17 05:27:16 |             |            | utf8mb4_0900_ai_ci |          |                |         |
| titles               | InnoDB | 10      | Dynamic    | 442605  | 46             | 20512768    | 0               | 0            | 0         |                | 2020-01-17 05:27:16 |             |            | utf8mb4_0900_ai_ci |          |                |         |
+----------------------+--------+---------+------------+---------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+

データベース名、テーブル指定でカラム一覧の情報を表示

データベース名とテーブル名を指定すると、カラム一覧を表示します。

SQLで実現するなら、desc テーブル名の結果と近いです。

-kオプションでキーの情報を合わせて表示します。

$ mysqlshow employees departments  -k -u root -p
Enter password: 
Database: employees  Table: departments
+-----------+-------------+--------------------+------+-----+---------+-------+---------------------------------+---------+
| Field     | Type        | Collation          | Null | Key | Default | Extra | Privileges                      | Comment |
+-----------+-------------+--------------------+------+-----+---------+-------+---------------------------------+---------+
| dept_no   | char(4)     | utf8mb4_0900_ai_ci | NO   | PRI |         |       | select,insert,update,references |         |
| dept_name | varchar(40) | utf8mb4_0900_ai_ci | NO   | UNI |         |       | select,insert,update,references |         |
+-----------+-------------+--------------------+------+-----+---------+-------+---------------------------------+---------+
+-------------+------------+-----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
| Table       | Non_unique | Key_name  | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible | Expression |
+-------------+------------+-----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
| departments | 0          | PRIMARY   | 1            | dept_no     | A         | 9           |          |        |      | BTREE      |         |               | YES     |            |
| departments | 0          | dept_name | 1            | dept_name   | A         | 9           |          |        |      | BTREE      |         |               | YES     |            |
+-------------+------------+-----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+

まとめ

ポテパンダの一言メモ
  • データベース一覧を表示するには、show databases
  • mysqlshowコマンドでもデータベース一覧を表示可能
  • mysqlshowコマンドは、同じコマンドでテーブル一覧、カラム一覧と付加情報を表示可能

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。