気軽に読めるPHP入門書・PHPスクリプトが動かないときの原因と対策などを紹介します。

  1. phpMyAdmin
  2. 16 view

phpMyAdminのSQLに付加される「’」に似た記号「`」は何?

「’」に似た記号「`」の正体は?

phpMyAdminでテーブルのデータを表示すると、実行されたSQLにシングルクォート「’」を斜めにしたような記号「`」が付加されます。たとえば、次の「products」の前後の記号です。

実行したSQLに付加されるバッククォート

実行したSQLに付加されるバッククォート

「’」に似ていますが、「`」は「バッククォート」という記号です。整理しておきましょう。

りんごの前後の「’」はシングルクォート
productsの前後の「`」はバッククォート

バッククォートは、キーボードでは「@」の上にあり、Shift+@キーで入力できます。

バッククォートについて2つのポイントを説明します。

バッククォートは必須ではない

まず、SQLではバッククォートは必須ではありません。次のようにバッククォートを付けずにSQLを入力しても問題なく実行されます。

SELECT * 
FROM products 
WHERE products LIKE 'りんご'

「りんご」の前後のシングルクォート「’」は必須です。

バッククォートが付加されるのは何のため?

では、何のためにphpMyAdminではバッククォートが付加されるのでしょうか。

それは、「SELECT * FROM `table`」のようなSQLも実行可能にするためです。

少し難しく言えば、予約語をエスケープするためです。

予約語とは、MySQL側で特別なキーワードだと認識される語句で、TABLE、SQL、INDEX、LOCKなどがあります。このようなキーワードは、そのままテーブル名や列名などに使うことはできません

ただし、MySQLでは予約語をバッククォートで囲むことで、テーブル名や列名として使用可能になります。

こうした点を考慮して、phpMyAdminで実行されるSQLにはバッククォートが付加されています。

「使用可能」と言っても、一般的にSQLで使われる語句なので、テーブル名などにはふさわしくありません。できるだけ使わないようにしましょう。

予約語について詳しくは、MySQLのマニュアルを参照してください。

MySQLの予約語

また、「pop-products」のように、ハイフンでつながれた名前のテーブルも、そのままでは使えないので、「SELECT * FROM `pop-products`」のようにバッククォートで囲むことになります。

繰り返しますが、「通常の」SQLではバッククォートは不要です。

phpMyAdminの最近記事

  1. phpMyAdminのSELECT文に付加される「WHERE 1」とは

  2. phpMyAdminで作成したハイフン付きのテーブル名でエラーになる

  3. phpMyAdminで似たような行を繰り返し作成する方法

  4. phpMyAdminの「TRUNCATE TABLE」とは(DROP TABLEとの違いに…

  5. phpMyAdminのSQLに付加される「’」に似た記号「`」は何?

関連記事

PAGE TOP