人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

MySQLについての質問です。
phpMyAdminにてSQLを吐き出させてみました。
DROP TABLE IF EXISTS `tbl_bbs`;
このバックスラッシュは必須でしょうか?
なんでバックスラッシュをつかわれているのでしょうか???
(カンマじゃないのが言語仕様?)

●質問者: nakeyouguisu
●カテゴリ:ウェブ制作
✍キーワード:MySQL phpMyAdmin SQL バックスラッシュ 仕様
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● typista
●24ポイント

http://netmirror.org/mirror/mysql.com/doc/mysql/ja/legal-names.h...

以下は、公式サイト(1つ目のURL)の引用ですが、仕様といえば仕様のようです。

---

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

---


2つ目のURLの

「データベースの追加・削除」

を見ていただくと、ハイフン付きのデータベース名だとエラーになるとのことなので、総じて、phpMyAdminでは(本来の仕様でもあり)安全のために`(バッククォート)を付加しているのだと思います。

→ tbl_bbsの場合は無くても問題ありません。

※特殊文字(厳密には調べきれていませんが、演算子になり得る文字でしょう)を使っているテーブル名、予約語(selectやorderなど)にあるテーブル名の場合には必須となります。


http://www.marronkun.net/linux/other/mysql_2.html

MySQL基本操作 : マロンくん.NET

◎質問者からの返答

引用符自体で囲む事は丁寧なやりかたなのかなとは思うのですが、バッククォートはなかなかものめずらしいです。

バックスラッシュはミスです。皆様おきになさらずに。


2 ● informalattract
●23ポイント

「バックスラッシュ」じゃなくて「バッククォート」ですね。


予約語や特殊文字を含むテーブル名になっている場合を想定して、自動生成のSQLではバッククォートで囲っているのではないでしょうか。


このURLを既に回答なさっている方がいるようですが

(ダブってたらポイントいりません)

http://netmirror.org/mirror/mysql.com/doc/mysql/ja/legal-names.h...


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

◎質問者からの返答

と、思ったらやはり皆様気になるようですね。

了解です。


3 ● ukp
●23ポイント

>カンマじゃないのが?


仰るとおり文字列であることを明示するときに必要になります。テーブル名にMySQLの特殊文字を使用している場合はバックスラッシュが無いとエラーになります。

◎質問者からの返答

カンマ・・・

これもクオートのミスです。

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ