アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (2件)

つけてもつけなくても、MySQL側で判断して吸収してくれます。


回答としては「どちらでもいい」ですね。

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

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

お礼日時:2009/01/19 12:41

次の3点くらいを頭に置いて、自分なりに考えてみてください。



1.MySQLだけ使う場合でも、型変換のオーバーヘッド
 数値と文字の型変換をMySQL側で勝手にやってくれる(=やられてしまう)のは一見、便利。しかし、型変換というオーバーヘッドが行われていることに注視すれば、多量なデータを扱う場合には、要注意。

2.他RDBMSへの移植性
 数値を文字定数のように「'」と囲んでも、数値に型変換してくれるRDBMSもあれば、そういった変換をやらないRDBMSもある。
 複数のRDBMSを使う場合や、異なるRDBMSへデータをSQLで移植するようなケースでは注意が必要。

3.情報処理技術者試験などでの頭の切り替え
 数値定数でも、文字定数のように「'」で囲むことに慣れてしまっていた場合、情報処理技術者試験、あるいはベンダー試験などで、普段通りのSQLを書いてしまうと、誤答になってしまう可能性がある。試験を受ける場合に、MySQLを使っているときと、うまく頭を切り替えられるといいが。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

平たく言えば
1.パフォーマンス
2.互換性
3.癖
ということですね?

クォーテーションつける方向でいきます。

お礼日時:2009/01/19 12:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す