数値定数を「'」(単一引用符)で囲んでも、数値として扱ってくれるかどうかは、RDBMSによる仕様差が
あります。
RDBMSによっては、データ型が不一致としてエラーになるものもあります。
一方で、数値に自動的に変換してくれるRDBMSもあります。
自動変換してくれるのは、一見、楽に思えるかも知れませんが、その分、オーバーヘッドになりますから、
多量のデータを扱う場合は、見逃せない点です。
より性能を出したいなら、データ型の変換が起きない記述を心掛ける必要があります。
とりあえず、mysql はどうでしょうか? バージョンは、
3,4,5 といろいろつかっています。このあたりの横断的な情報みれるところがありましたらお願いします。
この辺の仕様は、少なくともMySQL 4.0?5.1では変更はないと思います。
(1)数値定数の指定方法
MySQL :: MySQL 5.1 リファレンスマニュアル :: 8.1.2 数値
数値定数は、
1
10.0
など、「'」(単一引用符)で囲まない。
文字定数は、
'abc'
など、「'」(単一引用符)で囲むといったことの説明があります。
(2)キャストの説明
MySQL :: MySQL 5.1 リファレンスマニュアル :: 11.8 キャスト関数と演算子
MySQLでは、
select 1+'1'
のように「'」(単一引用符)で囲んでも、数値として扱うことが説明されています。
しかし、キャストを自動的にやってしまう訳ですから、オーバーヘッドにはなります。