MySQLで現在のデータベース以外のテーブルからカラム一覧を取得する方法
現在接続しているデータベースとは別のデータベースに存在するテーブルのカラム(列)一覧を確認したい場合、SHOW COLUMNS ステートメントを使えば簡単に取得できます。ポイントは、テーブル名を「データベース名.テーブル名」の形式で指定することです。
基本構文
SHOW COLUMNS FROM db_name.tab_name;
各要素の意味は以下のとおりです。
- tab_name:カラム一覧を表示したいテーブルの名前。
- db_name:そのテーブルが格納されているデータベースの名前。ここに別のデータベースを指定することで、現在のデータベースを切り替えずに他のテーブル情報を参照できます。
実行例
たとえば、現在「query」というデータベースに接続している状態で、mysql データベース内の「arena」テーブルのカラム一覧を取得する場合は次のように実行します。
mysql> SHOW COLUMNS FROM mysql.arena\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.00 sec)この結果から、「id」カラムは主キー(PRI)で自動採番(auto_increment)が設定されていること、「Photo」カラムは NULL を許容する blob 型であることなどがひと目でわかります。
補足
なお、同様の情報は DESCRIBE db_name.tab_name; や SHOW FIELDS FROM db_name.tab_name; でも取得できます。また、別データベースのテーブルを参照するには、そのテーブルに対する適切な権限が必要になる点に注意してください。
-
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