「’」に似た記号「`」の正体は?
phpMyAdminでテーブルのデータを表示すると、実行されたSQLにシングルクォート「’」を斜めにしたような記号「`」が付加されます。たとえば、次の「products」の前後の記号です。
「’」に似ていますが、「`」は「バッククォート」という記号です。整理しておきましょう。
りんごの前後の「’」はシングルクォート
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のマニュアルを参照してください。
また、「pop-products」のように、ハイフンでつながれた名前のテーブルも、そのままでは使えないので、「SELECT * FROM `pop-products`」のようにバッククォートで囲むことになります。
繰り返しますが、「通常の」SQLではバッククォートは不要です。