現在のデータベース以外にあるテーブルから列の一覧を取得するには?(MySQL)
現在接続しているデータベースとは別のデータベースに存在するテーブルの列情報を取得したい場合、SHOW COLUMNS ステートメントに IN 句を組み合わせることで実現できます。USE 文でデータベースを切り替えなくても、そのまま他のデータベースのテーブル構造を確認できるのが便利なポイントです。
基本構文
SHOW COLUMNS FROM tab_name IN db_name
- tab_name: 列の一覧を表示したいテーブルの名前
- db_name: そのテーブルが格納されているデータベースの名前
使用例
以下の例では、現在「query」というデータベースを使用している状態で、「mysql」データベース内に保存されているテーブル「arena」の列一覧を取得しています。
mysql> SHOW COLUMNS FROM arena IN mysql\G
*************************** 1. row ***************************
Field: id
Type: int(10) unsigned zerofill
Null: NO
Key: PRI
Default: NULL
Extra : auto_increment
*************************** 2. row ***************************
Field: Photo
Type: blob
Null: YES
Key:
Default: NULL
Extra:
2 rows in set (0.08 sec)出力結果の見方
実行結果には、テーブルの各列に関する次のような情報が表示されます。
- Field: 列(カラム)の名前
- Type: 列のデータ型
- Null: NULL 値を許容するかどうか
- Key: インデックスの種類(PRI は主キーを示す)
- Default: 既定値
- Extra: auto_increment などの追加情報
このように IN 句を指定するだけで、データベースを移動することなく目的のテーブルの構造を手軽に調べることができます。
-
MySQLで別テーブルのIDからユーザー名を取得する方法|JOINの使い方を徹底解説
MySQLでは、別々のテーブルに保存されたデータをIDをキーに関連付けて取得したい場面が多くあります。そのような場合にはJOIN(内部結合)を使うことで、複数のテーブルを結合し、目的のユーザー名を簡単に取り出すことができます。 本記事では、実際にサンプルテーブルを作成しながら、JOINクエリの書き方をステップごとに解説します。 1つ目のテーブル「demo77」を作成する まず、ユーザーID(userid)とユーザー名(username)を格納するテーブルを作成します。useridは主キーとして設定します。 mysql> create table demo77 -> (
-
C言語・C++でディレクトリ内のファイル一覧を取得する方法
C++のサンプルコードをもとに、ディレクトリ内のファイル一覧を取得して表示する方法を解説します。ここではPOSIX系システム(Linuxなど)で利用できる dirent.h ヘッダと、opendir()・readdir()・closedir() の各関数を使用します。アルゴリズム開始 DIR型へのポインタ dr を宣言する。 dirent構造体へのポインタ en を宣言する。 opendir()関数を呼び出し、カレントディレクトリを開く。 ポインタdrを dr = opendir(.) として初期化する。 if(dr) while ((en = readdir(dr