Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
26
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

@masa_stone22

MYSQL バッククオートについて

SQL文でバッククオートを使っているのを今まで見たことがなく、なるほどー知らなかったなと思ったのでメモ(見たことあるかもしれないけど忘れた(^^)

バッククオートとは

バッククオートとは、『`』という記号のことです。
MacのUSキーで言う所の左上の記号になります。
また、これと似ているのが『'』よく使われるシングルクオートです。

SQLにてどのように使うのか?

・バッククオートはテーブル名やフィールド名
・シングルクオートは値や文字列
と使い分けるようです。

CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8

だが、もちろんバッククオートは必ず使うものでもない

バッククオートは何の為に使われるのか?

それは下記のリンクからの引用で
phpMyAdminのSQLに付加される「'」に似た記号「`」は何?

では、何のためにphpMyAdminではバッククォートが付加されるのでしょうか。
それは、「SELECT * FROM table」のようなSQLも実行可能にするためです。
少し難しく言えば、予約語をエスケープするためです。
予約語とは、MySQL側で特別なキーワードだと認識される語句で、TABLE、SQL、INDEX、LOCKなどがあります。こ>のようなキーワードは、そのままテーブル名や列名などに使うことはできません。
ただし、MySQLでは予約語をバッククォートで囲むことで、テーブル名や列名として使用可能になります。
こうした点を考慮して、phpMyAdminで実行されるSQLにはバッククォートが付加されています。
「使用可能」と言っても、一般的にSQLで使われる語句なので、テーブル名などにはふさわしくありません。できるだ>け使わないようにしましょう。
予約語について詳しくは、MySQLのマニュアルを参照してください。
●MySQLの予約語
また、「pop-products」のように、ハイフンでつながれた名前のテーブルも、そのままでは使えないので、>「SELECT * FROM pop-products」のようにバッククォートで囲むことになります。

ということらしい。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
26
Help us understand the problem. What are the problem?