2006年7月 4日

[mysql 13142] Re: 記号「`」とWHERE 「1」の意味は?

こんにちは、さいとうです。

> MyTableを囲んでいる記号「``」は、つけてもつけなくても動作するのですが、
> あえてつける意味はなんでしょうか?記号の読み方もわからないので調べられず…。

`の読み方は、バッククォートです。
MySQLでテーブル名やカラム名を引用する場合、通常はバッククォート
をつけなくても動作しますが、特殊文字(間のスペースとか日本語とか)

や予約語が使われているとエラーになるようです。

バッククォートで囲っておけば、テーブル名やカラム名にそれらの
文字や単語が含まれていてもSQL上ではエラーになりません。

自分はテーブル名やカラム名は英数字で構成するので、まだそういう
場面に想定したことはないのですが、以下マニュアルの記述です。

□6.1.2. データベース名、テーブル名、インデックス名、
カラム名、エイリアス名
http://dev.mysql.com/doc/refman/4.1/ja/legal-names.html

---------------------------
識別子(データベース名、テーブル名、カラム名)を ‘`’ で
引用する事ができます。MySQL バージョン 3.23.6 以降では、
ANSI モードで実行した時は、‘"’ も識別子の引用処理に使用
することができます。

識別子が予約語である場合や、識別子に特殊文字が含まれている
場合は、引用符として使用したバッククォート(「`」)文字で
その識別子を必ず囲む必要があります。
---------------------------

予約語に関してはこちらに一覧が載っています。
http://dev.mysql.com/doc/refman/4.1/ja/reserved-words.html

英数字で、予約語を避けて命名しているならば、通常は意識しな
くていいと思います。何かの時のために、可能であれば常に
つけるクセをつけておくのは望ましいと思いますが。

------------------------------------------
齊藤 貴義
Mail saito@xxxxx
Web http://www.mirai-city.org
------------------------------------------

投稿者 xml-rpc : 2006年7月 4日 18:55
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/38952
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。