性格悪い人が優勝

始めたばかりの初心者です。
よろしくお願いします。

phpmyadminの事で質問があります。

◇型の設定で、桁数を決める際にINTで(6)としても
試しに10桁を入れても(phpmyadminで直接)
入ってしまいます。試しにと思ってINTのところに
”あいうえお”を入れても入ってしまいます。
どういう事でしょうか?


◇またINTの上限数値って4294967295だとすると
桁数の設定は(10)までは意味があっても、(11)以上に
しても意味がないのでしょうか?


◇INT(11)に上限数値の4294967295をいれると
何が起こるのですか?

◇最後にもうひとつ
テーブル作成の際にphpmyadminの(sqlタブ)でつくるとき
以下のような記述をするとそのやり方を習ったのですが、
 (サンプル)
  Name` varchar(32) NOT NULL default '',

この記述の意味がイマイチ理解しきれません。
NOT NULLとは、ヌル値は認めないというのに、
defaultは””(ヌル)で設定ができてしまう。って
矛盾してませんか?それとも私の解釈が間違っていますか?

たくさん質問してしまいましたが、よろしくお願いします。

A 回答 (1件)

>INTで(6)としても


>試しに10桁を入れても(phpmyadminで直接)
>入ってしまいます。

INTの桁数はUNSIGNED ZEROFILL属性をつけた際にゼロ埋めするための桁数です。

>試しにと思ってINTのところに
>”あいうえお”を入れても入ってしまいます。

それはない、勘違いでしょう。

>桁数の設定は(10)までは意味があっても、(11)以上に
>しても意味がないのでしょうか?

前述の通り有効桁数ではなく表記上の桁数なので、
よほど特殊な使い方を想定していなければ気にする必要はありません。

>INT(11)に上限数値の4294967295をいれると
>何が起こるのですか?

普通に入力される以外なにもおきません。
そういうのはご自身でためしてみるが一番です

◇最後にもうひとつ
>Name` varchar(32) NOT NULL default '',

>NOT NULLとは、ヌル値は認めないというのに、
>defaultは””(ヌル)で設定ができてしまう。って
>矛盾してませんか?それとも私の解釈が間違っていますか?

基本を理解していないようで、完全に間違っていますね。
実際「」とNULLは排他的な関係ではなく必要に応じて共存できます。

具体的にはNULL指定すると「空ですよ」いう情報が入ります。「」は文字の長さが0の文字情報が入ります。
LENGTHで長さを拾う時LENGTH(NULL)はNULLを返しLENGHT('')は0を返します。
カウントを取る時に、「」はカウントの対象となりますがNULLはカウントの対象外です。
たとえばあるテーブルのXというカラムに10個のデータが保持されているとき
NULLのレコードが3件あれば、SELECT COUTN(X) FROM テーブルすると
7件しかレコードが拾えません。

また、NULLへのアクセスはIS NULLなどで評価を行うなど
NULLというのは特徴のある属性ですので、きちんと理解を深める
必要があります。
    • good
    • 0
この回答へのお礼

NULLについてはそれなりに今まで調べてきましたが、
今回のご説明とあげていただいた例で理解が
ほぼ完全になったように思えます。

また桁数の考え方もようやく分かりました。

ご親切にお答えいただきありがとうございました。

お礼日時:2013/03/17 19:25

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