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

SQL構文に関する質問です。データ型が整数や実数の場合には、insert 文などで、values(5,'name') などのように ' を省くことができます。逆に省かないで、つけることもしてよいのでしょうか?


●質問者: isogaya
●カテゴリ:コンピュータ インターネット
✍キーワード:name SQL データ 実数 整数
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● chuken_kenkou
●35ポイント

数値定数を「'」(単一引用符)で囲んでも、数値として扱ってくれるかどうかは、RDBMSによる仕様差

あります。

RDBMSによっては、データ型が不一致としてエラーになるものもあります。

一方で、数値に自動的に変換してくれるRDBMSもあります。

自動変換してくれるのは、一見、楽に思えるかも知れませんが、その分、オーバーヘッドになりますから、

多量のデータを扱う場合は、見逃せない点です。

より性能を出したいなら、データ型の変換が起きない記述を心掛ける必要があります。



http://q.hatena.ne.jp/だみー

◎質問者からの返答

とりあえず、mysql はどうでしょうか? バージョンは、

3,4,5 といろいろつかっています。このあたりの横断的な情報みれるところがありましたらお願いします。


2 ● chuken_kenkou
●35ポイント

この辺の仕様は、少なくとも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'

のように「'」(単一引用符)で囲んでも、数値として扱うことが説明されています。

しかし、キャストを自動的にやってしまう訳ですから、オーバーヘッドにはなります。

関連質問


●質問をもっと探す●



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