みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

データの型について

少し変な質問かもしれませんがお願いします。

TINYINT型のフィールドがあるとして、0をインサートすると当然0が入るのは分かるのですが、
"0"(文字列としてのゼロ)を入れた場合、これは数字型か文字型かどちらとして入るのでしょうか?

また、セレクトで取り出した場合の型はどうなのでしょう?

投稿日時 - 2007-11-22 17:58:37

QNo.3539087

すぐに回答ほしいです

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

>数字型か文字型かどちらとして入るのでしょうか?

TINYINT型が入ります。
そもそもが小さなINT型ですから、数字以外の文字をいれれば
0が入ります。

投稿日時 - 2007-11-22 18:51:15

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

「'」(単一引用符)や「"」(二重引用符)で囲まれた値は、本来は文字データなのですが、その文字列が0~9の値であった場合、内部的に数値データにキャストしてくれるRDBMSがいくつかあります。
MySQLも、そういった変換をしてくれるRDBMSの一つであり、数値にキャストしてくれます。

また、RDBMSによって違いがあるかも知れませんが、数値定数の指定の仕方で、「123」といった整数型だと、INTEGERといったデータ型が仮定されます。123.45としった小数点を含む指定なら、DEC等が仮定されます。

文字で数字←→INTGER←→DECIMALといった、変換可能なデータ型を使うのは、利用者側としては便利と感じるかも知れません。一方で、内部的なデータ変換は、1回辺りの処理であれば殆どオーバヘッドはありませんが、これが数千万回、数億回とで発生すれば、無視できない場合もあります。

多量のデータを扱ったり、トラフィック量が相当に多いシステムを開発するなら、オーバヘッドを極力なくす設計をすることは基本であり、内部的なデータ変換も無視できないところです。

投稿日時 - 2007-11-22 20:08:02

あなたにオススメの質問