SQL Server では、varchar 列の長さを 32 または 128 に定義すると違いがありますか?
3 に答える
varcharは可変文字フィールドです。これは、テキストデータを特定の長さまで保持できることを意味します。varchar(32) は 32 文字しか保持できませんが、varchar(128) は 128 文字を保持できます。「12345」を varchar(3) フィールドに入力しようとすると、これが保存されるデータです。
「123」
「45」は「切り捨て」(失われます) になります。
これらは、特定のフィールドが最大で特定の長さしかない (またはそうあるべきである) ことがわかっている場合に非常に役立ちます。例: 郵便番号または州の略称。実際、それらは通常、ほとんどすべての種類のテキスト データ (名前/住所/その他など) に使用されます。そのコラム。
ただし、フィールドがサポートする最大文字数のみをユーザーが入力できるように、それらを使用する場合にも注意が必要です。そうしないと、ユーザーの入力を切り捨てるときに混乱を招く可能性があります。
バックエンドはその列に挿入したデータ量のみを保存するため、顕著な違いはありません。char 列の場合のように、フィールドのフルサイズにパディングされません。
編集: 詳細については、このリンクが役立つはずです。
そうすべきではありません。対応できる最大長を定義するだけで、実際に使用される長さは挿入されるデータによって異なります。