MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのSELECTステートメントでテーブル名を一覧取得する方法

MySQLでSELECTステートメントを使ってデータベース内のテーブル名を取得するには、information_schema.tables を利用します。information_schemaは、MySQLサーバーが管理するメタデータ(テーブル名、カラム情報など)を格納している特殊なデータベースです。

テーブル名を取得する基本構文

以下の構文を使うことで、指定したデータベースに含まれるすべてのテーブル名をSELECT文で一覧表示できます。

SELECT Table_name as TablesName from information_schema.tables where table_schema = 'yourDatabaseName';

yourDatabaseName の部分には、対象となるデータベース名を指定してください。table_schema 列にはデータベース名が格納されているため、WHERE句で絞り込むことで特定のデータベース内のテーブルだけを抽出できます。

実行例:testデータベースの場合

ここでは「test」というデータベースに対して、上記の構文を実際に適用してみます。まずUSE文でデータベースを選択し、その後にSELECT文を実行します。

mysql> use test;
Database changed
mysql> SELECT Table_name as TablesName from information_schema.tables where table_schema = 'test';

実行結果

実行すると、testデータベースに存在する3つのテーブル名が次のように出力されます。

+--------------------+
| TablesName         |
+--------------------+
| destination        |
| myisamtoinnodbdemo |
| originaltable      |
+--------------------+
3 rows in set (0.00 sec)

このように、AS句を使って TablesName という別名を付けることで、結果を見やすく表示できます。なお、SHOW TABLES文でも同様の結果が得られますが、information_schema.tablesを使う方法は、WHERE句による柔軟な条件指定や他のテーブルとの結合が可能という利点があります。

  1. MySQLでテーブル名に「group」を使うと構文エラーになる理由とバッククォートによる回避方法

    MySQLにおいて「group」は予約語(リザーブドキーワード)です。そのため、テーブル名としてそのまま使用すると構文エラーが発生します。このエラーを回避するには、テーブル名「group」をバッククォート(`)で囲む必要があります。テーブルの作成例まず、バッククォートで囲んだテーブル名を使ってテーブルを作成してみましょう。mysql> create table `group` -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> Name varchar(20) -> );Query

  2. MySQLで別テーブルのIDからユーザー名を取得する方法|JOINの使い方を徹底解説

    MySQLでは、別々のテーブルに保存されたデータをIDをキーに関連付けて取得したい場面が多くあります。そのような場合にはJOIN(内部結合)を使うことで、複数のテーブルを結合し、目的のユーザー名を簡単に取り出すことができます。 本記事では、実際にサンプルテーブルを作成しながら、JOINクエリの書き方をステップごとに解説します。 1つ目のテーブル「demo77」を作成する まず、ユーザーID(userid)とユーザー名(username)を格納するテーブルを作成します。useridは主キーとして設定します。 mysql> create table demo77 -> (