20

免責事項:私はSQLとデータベース全般に非常に慣れていません。


最大32文字のテキストデータを格納するフィールドを作成する必要があります。「 」は、データに正確に32文字VARCHAR(32)あることを意味しますか?ヌル終了のために追加の文字を予約する必要がありますか?

簡単なテストを行ったところ、これはWYSIWYGバッファーのようです。しかし、実際に何をしているのかを知っている人から具体的な答えを得たいと思いました。


私はC[++]のバックグラウンドを持っているので、この質問は私の頭の中で警鐘を鳴らしています。

4

2 に答える 2

32

はい、32文字を自由に使用できます。SQLは、一部のプログラミング言語のように、ヌル文字で終了する文字列には関係しません。

于 2009-08-13T18:57:03.640 に答える
4

VARCHAR 仕様のサイズはデータの最大サイズなので、この場合は 32 文字です。ただし、VARCHARS は動的フィールドであるため、実際に使用される物理ストレージは、データのサイズに 1 バイトまたは 2 バイトを加えたもののみです。

10 文字の文字列を VARCHAR(32) に入れると、物理ストレージは 11 または 12 バイトになります (正確な式はマニュアルに記載されています)。

ただし、MySQL が結果セットを処理している場合 (つまり、SELECT の後)、レコードごとにそのフィールドのメモリに 32 バイトが割り当てられます。

于 2009-08-13T18:59:42.183 に答える