- ベストアンサー
mysql の insert文のクォーテーションについて
インサート文を作るとき、 INSERT INTO shitumon ( title_question, komari_level )VALUES( 'mysql の insert文のクォーテーションについて', '2' ) のように、int系のデータに''とクォーテーションつけても 問題ないのでしょうか? int系のデータのクォーテーションは外しておくのが望ましいのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
つけてもつけなくても、MySQL側で判断して吸収してくれます。 回答としては「どちらでもいい」ですね。 ただユーザビリティとしては、ついてなければ「数字なんだ」と 判断できるのでその方が望ましいです。 逆にプログラムで一括処理をするのであれば、あえて例外処理を 発生させない方がソース的にはいいかもしれません。
その他の回答 (1)
- chukenkenkou
- ベストアンサー率43% (833/1926)
次の3点くらいを頭に置いて、自分なりに考えてみてください。 1.MySQLだけ使う場合でも、型変換のオーバーヘッド 数値と文字の型変換をMySQL側で勝手にやってくれる(=やられてしまう)のは一見、便利。しかし、型変換というオーバーヘッドが行われていることに注視すれば、多量なデータを扱う場合には、要注意。 2.他RDBMSへの移植性 数値を文字定数のように「'」と囲んでも、数値に型変換してくれるRDBMSもあれば、そういった変換をやらないRDBMSもある。 複数のRDBMSを使う場合や、異なるRDBMSへデータをSQLで移植するようなケースでは注意が必要。 3.情報処理技術者試験などでの頭の切り替え 数値定数でも、文字定数のように「'」で囲むことに慣れてしまっていた場合、情報処理技術者試験、あるいはベンダー試験などで、普段通りのSQLを書いてしまうと、誤答になってしまう可能性がある。試験を受ける場合に、MySQLを使っているときと、うまく頭を切り替えられるといいが。
お礼
回答ありがとうございます。 平たく言えば 1.パフォーマンス 2.互換性 3.癖 ということですね? クォーテーションつける方向でいきます。
お礼
回答ありがとうございます。 ''をつけないとデータがないとき エラーが出てしまうことがあるので 全データに''をつけたかったのですが ''をつけることにします。