- ベストアンサー
データの型について
少し変な質問かもしれませんがお願いします。 TINYINT型のフィールドがあるとして、0をインサートすると当然0が入るのは分かるのですが、 "0"(文字列としてのゼロ)を入れた場合、これは数字型か文字型かどちらとして入るのでしょうか? また、セレクトで取り出した場合の型はどうなのでしょう?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>数字型か文字型かどちらとして入るのでしょうか? TINYINT型が入ります。 そもそもが小さなINT型ですから、数字以外の文字をいれれば 0が入ります。
その他の回答 (1)
- chukenkenkou
- ベストアンサー率43% (833/1926)
回答No.2
「'」(単一引用符)や「"」(二重引用符)で囲まれた値は、本来は文字データなのですが、その文字列が0~9の値であった場合、内部的に数値データにキャストしてくれるRDBMSがいくつかあります。 MySQLも、そういった変換をしてくれるRDBMSの一つであり、数値にキャストしてくれます。 また、RDBMSによって違いがあるかも知れませんが、数値定数の指定の仕方で、「123」といった整数型だと、INTEGERといったデータ型が仮定されます。123.45としった小数点を含む指定なら、DEC等が仮定されます。 文字で数字←→INTGER←→DECIMALといった、変換可能なデータ型を使うのは、利用者側としては便利と感じるかも知れません。一方で、内部的なデータ変換は、1回辺りの処理であれば殆どオーバヘッドはありませんが、これが数千万回、数億回とで発生すれば、無視できない場合もあります。 多量のデータを扱ったり、トラフィック量が相当に多いシステムを開発するなら、オーバヘッドを極力なくす設計をすることは基本であり、内部的なデータ変換も無視できないところです。