|
カテゴリ:データベース
何かシリーズ化してしまっているMySQLの型で気になったシリーズです。
前回ZEROFILLオプションというのがあるとチラッと書いて、気になったのでまた試してみました。 --ZEROFILLオプションを指定するとどうなるのか-- mysql> create table `test_tbl4` (`ti` tinyint ZEROFILL,`ti1` tinyint(1) ZEROFILL,`ti2` tin yint(2) ZEROFILL,`ti3` tinyint(3) ZEROFILL,`ti4` tinyint(4) ZEROFILL,`ti5` tinyint(5) ZERO FILL); Query OK, 0 rows affected (0.01 sec) mysql> desc test_tbl4; +-------+------------------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+------------------------------+------+-----+---------+-------+ | ti | tinyint(3) unsigned zerofill | YES | | NULL | | | ti1 | tinyint(1) unsigned zerofill | YES | | NULL | | | ti2 | tinyint(2) unsigned zerofill | YES | | NULL | | | ti3 | tinyint(3) unsigned zerofill | YES | | NULL | | | ti4 | tinyint(4) unsigned zerofill | YES | | NULL | | | ti5 | tinyint(5) unsigned zerofill | YES | | NULL | | +-------+------------------------------+------+-----+---------+-------+ 6 rows in set (0.01 sec) 前回を見ている方はアレ?と思ったかもしれません。というか実際私も ぇ? となりました。 まず全体的にzerofillしかつけていないはずなのにunsignedが自動で付いています。 これについてはマニュアルに記載がありました。あれほどマニュアルは読めと( でも何故付くんだろう・・・-0001とか表現がありえないから??謎です・・・ unsignedオプションが自動で付くことにより、表示桁数指定なしの場合のデフォルトが4から3に変わっています。(前回参照) この事からおさかなさんの"「マイナス記号を含めた最大の桁数」が付くんでしょうね。"という考えが結構裏付けされたんではないでしょうか? --値を入れてみる-- mysql> insert into test_tbl4 values(1,1,1,1,1,1); Query OK, 1 row affected (0.00 sec) mysql> insert into test_tbl4 values(11,11,11,11,11,11); Query OK, 1 row affected (0.00 sec) mysql> insert into test_tbl4 values(111,111,111,111,111,111); Query OK, 1 row affected (0.00 sec) mysql> insert into test_tbl4 values(1111,1111,1111,1111,1111,1111); Query OK, 1 row affected, 6 warnings (0.00 sec) mysql> select * from test_tbl4; +------+------+------+------+------+-------+ | ti | ti1 | ti2 | ti3 | ti4 | ti5 | +------+------+------+------+------+-------+ | 001 | 1 | 01 | 001 | 0001 | 00001 | | 011 | 11 | 11 | 011 | 0011 | 00011 | | 111 | 111 | 111 | 111 | 0111 | 00111 | | 255 | 255 | 255 | 255 | 0255 | 00255 | +------+------+------+------+------+-------+ 4 rows in set (0.00 sec) はい、見事に先頭が0で埋まった形となっています。 最後のクエリは予想通り符号なしの最大値255に丸められてます。 こうやって使うんですね~勉強になりました。 お気に入りの記事を「いいね!」で応援しよう
[データベース] カテゴリの最新記事
|