• ベストアンサー

mysql の insert文のクォーテーションについて

インサート文を作るとき、 INSERT INTO shitumon (  title_question,  komari_level )VALUES(  'mysql の insert文のクォーテーションについて',  '2' ) のように、int系のデータに''とクォーテーションつけても 問題ないのでしょうか? int系のデータのクォーテーションは外しておくのが望ましいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

つけてもつけなくても、MySQL側で判断して吸収してくれます。 回答としては「どちらでもいい」ですね。 ただユーザビリティとしては、ついてなければ「数字なんだ」と 判断できるのでその方が望ましいです。 逆にプログラムで一括処理をするのであれば、あえて例外処理を 発生させない方がソース的にはいいかもしれません。

yuzuru0024
質問者

お礼

回答ありがとうございます。 ''をつけないとデータがないとき エラーが出てしまうことがあるので 全データに''をつけたかったのですが ''をつけることにします。

その他の回答 (1)

回答No.2

次の3点くらいを頭に置いて、自分なりに考えてみてください。 1.MySQLだけ使う場合でも、型変換のオーバーヘッド  数値と文字の型変換をMySQL側で勝手にやってくれる(=やられてしまう)のは一見、便利。しかし、型変換というオーバーヘッドが行われていることに注視すれば、多量なデータを扱う場合には、要注意。 2.他RDBMSへの移植性  数値を文字定数のように「'」と囲んでも、数値に型変換してくれるRDBMSもあれば、そういった変換をやらないRDBMSもある。  複数のRDBMSを使う場合や、異なるRDBMSへデータをSQLで移植するようなケースでは注意が必要。 3.情報処理技術者試験などでの頭の切り替え  数値定数でも、文字定数のように「'」で囲むことに慣れてしまっていた場合、情報処理技術者試験、あるいはベンダー試験などで、普段通りのSQLを書いてしまうと、誤答になってしまう可能性がある。試験を受ける場合に、MySQLを使っているときと、うまく頭を切り替えられるといいが。

yuzuru0024
質問者

お礼

回答ありがとうございます。 平たく言えば 1.パフォーマンス 2.互換性 3.癖 ということですね? クォーテーションつける方向でいきます。

関連するQ&A