MySQLでデータベースの一覧を確認するには?使えるクエリと実行例を解説
MySQLサーバー上にどんなデータベースが存在するのかを確認したい場面はよくあります。もっとも手軽なのは SHOW DATABASES ステートメントですが、information_schema に対してSELECTクエリを実行することでも同じ情報を取得できます。ここでは、その具体的な方法を紹介します。
information_schemaを使ってデータベース一覧を取得する
次のMySQLクエリを実行すると、サーバー上に存在するすべてのデータベース(スキーマ)名の一覧を表示できます。
mysql> SELECT schema_name FROM information_schema.schemata; +--------------------+ | schema_name | +--------------------+ | information_schema | | gaurav | | mysql | | performance_schema | | query | | query1 | | sys | | tutorials | +--------------------+ 8 rows in set (0.00 sec)
information_schema.schemata テーブルには、MySQLサーバーが管理しているすべてのスキーマ(データベース)のメタ情報が格納されています。そのため、このテーブルから schema_name カラムを選択すれば、データベース名の一覧が得られるという仕組みです。
WHERE句でデータベースを絞り込む
このクエリは、通常のSELECT文と同じように WHERE句 と組み合わせることができます。たとえば、名前が特定のパターンに一致するデータベースだけを抽出したい場合は、以下のように LIKE 演算子を使用します。
mysql> SELECT schema_name FROM information_schema.schemata WHERE schema_name LIKE '%schema' OR schema_name LIKE '%s'; +--------------------+ | schema_name | +--------------------+ | information_schema | | performance_schema | | sys | | tutorials | +--------------------+ 4 rows in set (0.00 sec)
この例では、「schema」で終わる名前、または「s」で終わる名前を持つデータベースのみが結果として返されています。このように条件を組み合わせることで、多数のデータベースが存在する環境でも目的のデータベースを素早く見つけられます。
補足:SHOW DATABASESとの違い
単純に一覧を見たいだけであれば、SHOW DATABASES; コマンドでも同じ結果が得られます。一方、information_schema を使う方法は、WHERE句による柔軟な絞り込みや、他のテーブルとの結合など、より高度な検索が必要な場合に役立ちます。用途に応じて使い分けるとよいでしょう。
-
MySQLで文字列を「||」演算子で連結する方法|PIPES_AS_CONCATの設定手順を解説
MySQLで文字列を「||」で連結できるのか?はい、MySQLでもsql_modeを設定することで、||演算子を使った文字列の連結が可能です。標準のMySQLでは||は論理ORとして解釈されますが、sql_modeを「PIPES_AS_CONCAT」に変更すると、OracleやPostgreSQLと同じように文字列連結演算子として機能するようになります。sql_modeの設定方法構文は以下の通りです。set sql_mode=PIPES_AS_CONCAT;||を使った連結の基本構文||演算子で文字列を連結する際の基本構文は次の通りです。SELECT yourValue || yourColu
-
MySQLの単一クエリでIDが最も高い行を更新する方法
はい、単一のクエリで実行可能です。まずはサンプル用のテーブルを作成しましょう。mysql> create table DemoTable ( ID int, GameScore int ); Query OK, 0 rows affected (0.55 sec)次に、INSERTコマンドを使用してテーブルにレコードをいくつか挿入します。mysql> insert into DemoTable