CHAR
のような他の列タイプでは、この追加の「機能」表示幅は非常に混乱します。 長さを指定します。
簡単な内訳は次のとおりです:
- 最も重要:そうではありません 「ストレージスペース」または「桁数」を指定します。この列のデータがフォーマットされていることを示しているだけです。 それが返される前に。 INT(5)は同じを保存できます INT(16)やINT(255)のような値-3つすべてが、INTに有効なすべての(そして唯一の)値を格納できます。 INT(255)は、255桁の数値を格納できません。それらすべてのストレージスペースは、INTが占めるスペースです。
-
ZEROFILL
を使用する場合 表示幅のある列で、格納されている数値の文字列表現が表示幅よりも短い場合は、ゼロが左に埋め込まれます。それより長い場合は、何も起こりません。 INT(5)を選択し、値が13の場合、00013として返されます。値が123456の場合、123456として返されます。 -
ZEROFILL
を使用しない場合 、パディングはまったくありません(スペースなどはありません) -
ZEROFILL
を使用する場合 、列もUNSIGNED
になることに注意する必要があります - いずれの場合も、テーブルのメタデータが照会されると、表示幅が返されます。したがって、アプリケーションはデータのフォーマット方法を知ることができます。
ストレージレイヤーが保存されたデータの視覚的表現を「認識」しているため、表示幅が嫌いです。これ以外に、私が知っている用途はありません。