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

MySQLで予約語「from」「to」をカラム名として使う方法|バッククォートでの作成とSELECT文による取得手順を解説

はじめに

MySQLでは、「FROM」や「TO」のような予約語(リザーブドワード)をそのままカラム名として使用することはできません。これらをカラム名に使いたい場合は、バッククォート(`)で囲む必要があります。

本記事では、バッククォートを使って「from」「to」というカラム名を持つテーブルを作成し、それらをSELECT文で正しく取得する方法を、実際のSQL例とともにわかりやすく解説します。

予約語をカラム名にするにはバッククォートが必要

まず、予約語をカラム名として扱うには、次のようにバッククォートで囲んで定義します。

`from`
`to`

そして、このようにバッククォート付きで定義したカラムを選択したい場合は、以下のようにSELECT文でも同様にバッククォートで囲む必要があります。

select `to`,`from` from テーブル名;

実際にテーブルを作成してみよう

それでは、「from」と「to」をバッククォートで囲んだカラム名として持つテーブルを作成してみましょう。

mysql> create table DemoTable720 (
   `from` date,
   `to` date
);
Query OK, 0 rows affected (0.69 sec)

テーブルが正常に作成されました。次に、INSERTコマンドを使っていくつかのレコードを挿入します。

mysql> insert into DemoTable720 values('2019-01-21','2019-07-23');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable720 values('2017-11-01','2018-01-31');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable720 values('2015-08-11','2016-09-19');
Query OK, 1 row affected (0.12 sec)

挿入したレコードの確認

SELECT文を使って、テーブル内のすべてのレコードを表示してみます。

mysql> select *from DemoTable720;

実行結果は以下の通りです。

+------------+------------+
| from | to |
+------------+------------+
| 2019-01-21 | 2019-07-23 |
| 2017-11-01 | 2018-01-31 |
| 2015-08-11 | 2016-09-19 |
+------------+------------+
3 rows in set (0.00 sec)

「to」と「from」カラムを選択するクエリ

それでは本題である、「to」と「from」カラムを選択するクエリを見ていきましょう。ポイントは、カラム名を必ずバッククォートで囲むことです。

mysql> select `to`,`from` from DemoTable720;

実行すると、以下の出力が得られます。

+------------+------------+
| to | from |
+------------+------------+
| 2019-07-23 | 2019-01-21 |
| 2018-01-31 | 2017-11-01 |
| 2016-09-19 | 2015-08-11 |
+------------+------------+
3 rows in set (0.00 sec)

まとめ

MySQLで「from」や「to」などの予約語をカラム名として使用する場合は、テーブル作成時だけでなく、SELECT文などのクエリでも必ずバッククォートで囲む必要があります。バッククォートを忘れると構文エラーが発生するため注意しましょう。なお、予約語をカラム名に使うことは避けられるのであれば、それが最も安全な設計と言えます。

  1. MySQLストアドプロシージャでSELECT INTOを使ってテーブルからOUTパラメータにデータを読み込む方法

    MySQLのストアドプロシージャでテーブルからデータを読み取り、OUTパラメータに格納するには、SELECT INTO構文を使用します。この記事では、テーブルの作成からストアドプロシージャの呼び出しまで、具体的な手順をサンプルコードとともに解説します。 1. サンプルテーブルの作成 まず、動作確認用のテーブルを作成します。 mysql> create table DemoTable1860 ( Amount int ); Query OK, 0 rows affected (0.00 sec) 2. レコードの挿入 INSERTコマンドを使用して、テーブルにい

  2. mysqlshowコマンドでMySQLのデータベース・テーブル・列の情報を確認する方法

    mysqlshowクライアントを使うと、システム上に存在するデータベースの一覧や、各データベースに含まれるテーブル、さらに特定のテーブルの列やインデックスの情報を簡単に確認できます。mysqlshowは、複数のSQL SHOWステートメントをコマンドラインから実行できる便利なインターフェースを提供するツールです。 mysqlshowの起動方法 mysqlshowユーティリティは、以下の形式で実行します。 shell> mysqlshow [options] [db_name [tbl_name [col_name]]] 引数の指定内容によって、表示される情報が変わります。 データベース