MySQLのUPDATE文で文字列はシングルクォート、識別子はバッククォートを使う理由
MySQLのUPDATE文:シングルクォートとバッククォートの使い分け
MySQLでは、文字列の値を指定するときはシングルクォート(')を使用します。一方、テーブル名やカラム名などの識別子にはシングルクォートを使わず、バッククォート(`)で囲むのが基本ルールです。
この2つを混同すると構文エラーの原因になるため、正しく使い分けることが重要です。特に「key」のような予約語をカラム名に使う場合は、バッククォートが必須になります。以下、具体例で確認していきましょう。
1. サンプルテーブルの作成
まず、次のようにテーブルを作成します。
mysql> create table DemoTable1552
-> (
-> `key` int,
-> Name varchar(20)
-> );
Query OK, 0 rows affected (0.82 sec)ここでカラム名「key」はMySQLの予約語であるため、バッククォートで囲む必要がある点に注意してください。
2. レコードの挿入
INSERT文でテーブルにデータを追加します。文字列の値にはシングルクォートを使用しています。
mysql> insert into DemoTable1552 values(101,'Chris'); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable1552 values(102,'David'); Query OK, 1 row affected (0.28 sec) mysql> insert into DemoTable1552 values(103,'Mike'); Query OK, 1 row affected (0.14 sec)
3. レコードの表示
SELECT文ですべてのレコードを表示してみましょう。
mysql> select * from DemoTable1552;
上記を実行すると、次のような結果が出力されます。
+------+-------+ | key | Name | +------+-------+ | 101 | Chris | | 102 | David | | 103 | Mike | +------+-------+ 3 rows in set (0.00 sec)
4. UPDATE文でのシングルクォートの使用例
UPDATE文では、WHERE句で文字列と比較する際にシングルクォートを使います。カラム名「key」にはバッククォートを用います。
mysql> update DemoTable1552 set `key`=100 where Name='Chris'; Query OK, 1 row affected (0.20 sec) Rows matched: 1 Changed: 1 Warnings: 0
5. 更新結果の確認
もう一度テーブルの内容を確認してみます。
mysql> select * from DemoTable1552;
実行結果は以下の通りです。「Chris」のkeyの値が100に更新されていることがわかります。
+------+-------+ | key | Name | +------+-------+ | 100 | Chris | | 102 | David | | 103 | Mike | +------+-------+ 3 rows in set (0.00 sec)
まとめ
- 文字列リテラル(値)→ シングルクォート(')で囲む
- テーブル名・カラム名などの識別子 → バッククォート(`)で囲む(予約語の場合は必須)
この使い分けを守ることで、UPDATE文をはじめとする各種SQL文をエラーなく正しく実行できるようになります。
-
MySQLプログラムのコマンドラインでオプションを使う方法を解説
MySQLプログラムでは、コマンドラインからさまざまなオプションを指定することで、動作を細かく制御できます。本記事では、MySQLプログラムのコマンドラインでオプションを使用する方法について、基本ルールから具体例までわかりやすく解説します。 コマンドラインオプションの基本ルール コマンドラインで指定するMySQLプログラムのオプションには、以下のルールが存在します。 1. オプションはコマンド名の後に記述する すべてのオプションは、実行するコマンド名の後に続けて指定します。 2. ショートフォームとロングフォーム オプション引数は、ハイフン1つ(-)または2つ(--)で始まります。ハイフ
-
コマンドラインオプションを使ったMySQLサーバーへの接続方法
この記事では、mysql や mysqldump などのクライアントプログラムから、コマンドラインオプションを利用してMySQLサーバーに接続する方法を解説します。クライアントプログラムがMySQLサーバーに接続するには、適切な接続パラメータを指定する必要があります。具体的には、サーバーが稼働しているホスト名、MySQLアカウントのユーザー名、パスワードなどです。すべての接続パラメータにはデフォルト値が用意されていますが、必要に応じてコマンドラインやオプションファイルで指定したプログラムオプションによって上書きすることも可能です。mysqlをデフォルト設定で起動する接続パラメータを明示的に指定