186

ZEROFILLINTDataTypeを定義することの利点/使用法は何MySQLですか?

`id` INT UNSIGNED ZEROFILL NOT NULL 
4

9 に答える 9

273

タイプで列を選択するとZEROFILL、列定義で指定された表示幅まで、フィールドの表示値にゼロが埋め込まれます。表示幅より長い値は切り捨てられません。ZEROFILLの使用はも意味することに注意してくださいUNSIGNED

と表示幅を使用ZEROFILLしても、データの格納方法には影響しません。表示方法のみに影響します。

の使用を示す SQL の例を次に示しますZEROFILL

CREATE TABLE yourtable (x INT(8) ZEROFILL NOT NULL, y INT(8) NOT NULL);
INSERT INTO yourtable (x,y) VALUES
(1, 1),
(12, 12),
(123, 123),
(123456789, 123456789);
SELECT x, y FROM yourtable;

結果:

        x          y
 00000001          1
 00000012         12
 00000123        123
123456789  123456789
于 2011-03-10T07:03:56.120 に答える
142

ZEROFILLの使用法が興味深いかもしれない、理解するための 1 つの例:

ドイツでは、5 桁の郵便番号があります。ただし、これらのコードはゼロで始まる場合があるため80337、ミュンヘンの有効な郵便番号で01067あり、ベルリンの郵便番号です。

ご覧のとおり、ドイツ市民は郵便番号が 5 桁のコードとして表示されることを期待しているため、1067奇妙に見えます。

これらのデータを保存するには、VARCHAR(5)またはを使用できますがINT(5) ZEROFILL、ゼロで埋められた整数には 2 つの大きな利点があります。

  1. ハードディスクのストレージ容量が大幅に減少
  2. を挿入する1067と、まだ01067戻ってきます

おそらく、この例は の使用法を理解するのに役立ちますZEROFILL

于 2012-07-18T11:10:15.030 に答える
63

四角い箱が好きな乱れた性格向けの機能です。

あなたが挿入します

1
23
123 

ただし、選択すると、値がパディングされます

000001
000023
000123
于 2011-03-10T07:09:13.727 に答える
15

この「整数」を「テキスト」としてソートする必要がある他のもの (別の数値またはテキスト) と連結する必要がある場合に、正しいソートに役立ちます。

例えば、

A-005 または 10/0005 として連結された整数フィールド番号 (5 としましょう) を使用する必要がある場合

于 2013-08-24T20:43:37.657 に答える
5

私はパーティーに遅れていることを知っていますが、ゼロフィルは TINYINT(1) のブール表現に役立ちます。Null は常に False を意味するとは限りません。tinyint をゼロフィルすることで、これらの値を効果的に INT に変換し、アプリケーションが対話時に混乱する可能性を取り除きます。アプリケーションは、プリミティブ データ型 True = Not(0) と同様の方法でこれらの値を処理できます。

于 2012-09-06T05:42:06.010 に答える
2

ゼロフィル

これは基本的に、整数値 23 が幅 8 の INT 列に挿入されると、使用可能な残りの位置が自動的にゼロで埋められることを意味します。

したがって

23

になります:

00000023
于 2011-03-10T07:03:03.870 に答える
1

数値列にZEROFILLを指定すると、MySQLは自動的にUNSIGNED属性を列に追加します。

UNSIGNED属性を許可する数値データ型は、SIGNEDも許可します。ただし、これらのデータ型はデフォルトで署名されているため、SIGNED属性は効果がありません。

上記の説明は、MYSQLの公式Webサイトから引用したものです。

于 2012-05-20T16:20:41.083 に答える
1

オプションの (非標準) 属性 ZEROFILL と組み合わせて使用​​すると、スペースのデフォルトのパディングがゼロに置き換えられます。たとえば、INT(4) ZEROFILL として宣言された列の場合、値 5 は 0005 として取得されます。

http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html

于 2011-03-10T07:05:28.913 に答える