sql >> データベース >  >> RDS >> Mysql

MySQL:ゼロフィルを使用せずに表示幅を指定する理由

    CHARのような他の列タイプでは、この追加の「機能」表示幅は非常に混乱します。 長さを指定します。

    簡単な内訳は次のとおりです:

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

    ストレージレイヤーが保存されたデータの視覚的表現を「認識」しているため、表示幅が嫌いです。これ以外に、私が知っている用途はありません。




    1. SQLLIKEとINを一緒に使用する

    2. Wufooのデータベーススキーマ-どのように設計しますか?

    3. mysql.hがありません....(Ruby on Rails、OSX)

    4. SQLServerデータベースで一意の制約を持つ列のリストを取得する方法-SQLServer/TSQLチュートリアルパート98