MySQLでスペースを含むカラム名をSELECT文で取得する方法
MySQLでスペースを含むカラム名を扱うには
MySQLでは、テーブル作成時にスペースを含むカラム名を定義できますが、そのようなカラムをSELECT文で参照する際には注意が必要です。スペースを含むカラム名を指定する場合は、バッククォート(` `)でカラム名を囲む必要があります。
バッククォートは、キーボードのチルダ記号(~)の下にあるキーで入力できます。シングルクォート(')とは異なる記号なので、混同しないようにしましょう。
1. スペースを含むカラムを持つテーブルを作成する
まず、「Student Name」というスペースを含むカラム名を持つテーブルを作成します。カラム名はバッククォートで囲みます。
mysql> CREATE table SpaceColumn -> ( -> `Student Name` varchar(100) -> ); Query OK, 0 rows affected (0.48 sec)
2. レコードを挿入する
続いて、作成したテーブルにデータを挿入します。
mysql> INSERT into SpaceColumn values('John');
Query OK, 1 row affected (0.18 sec)
mysql> INSERT into SpaceColumn values('Bob');
Query OK, 1 row affected (0.17 sec)3. SELECT文でスペースを含むカラム名を指定する
スペースを含むカラムを取得するための基本構文は以下のとおりです。
SELECT `column_name` from yourTableName;
この構文に従って、実際にクエリを実行してみます。
mysql> SELECT `Student Name` from SpaceColumn;
実行結果
上記のクエリを実行すると、次のような結果が出力されます。
+--------------+ | Student Name | +--------------+ | John | | Bob | +--------------+ 2 rows in set (0.00 sec)
ポイントまとめ
- スペースを含むカラム名は、必ずバッククォート(`)で囲む
- バッククォートはチルダ(~)キーの下にあるキーで入力できる
- バッククォートで囲まないとSQL構文エラー(syntax error)が発生する
なお、MySQL以外のデータベースではダブルクォート(")や角括弧([])を使用する場合もあるため、使用しているDBMSの仕様を確認しておくと安心です。
-
JavaでResultSetから列名を取得する方法!MySQLを使ったgetMetaData()の実装例を解説
ResultSetから列名を取得するには?getMetaData()メソッドの基本JavaでJDBCを使ってデータベース操作を行っていると、「検索結果(ResultSet)に含まれる列名(カラム名)を動的に知りたい」という場面によく出会います。そんなときに活躍するのが、getMetaData()メソッドです。このメソッドを呼び出すと、結果セットの構造情報(列の数や名前、型など)を持つResultSetMetaDataオブジェクトを取得できます。プロトタイプ宣言は以下のとおりです。ResultSetMetaData getMetaData() throws SQLException;サンプル用テ
-
MySQLで特定のカラム名を持つテーブルを検索する方法
MySQLで特定のカラム名(列名)を持つテーブルを探したい場合は、システムビューである information_schema.columns を利用します。このビューにはデータベース内のすべてのテーブルとカラムの情報が格納されているため、条件を指定して検索するだけで、目的のカラムを持つテーブルを簡単に特定できます。 基本構文 カラム名からテーブル名を検索する際の基本的な構文は以下の通りです。 select distinct table_name from information_schema.columns where column_name like %yourSearchValue% a