[マイ] SQLのVARCHARのサイズとNULL終了
-
16-09-2019 - |
質問
免責事項:私は一般的なSQLとデータベースに非常に新しいです。
<時間>私は、テキストデータの最大32個の文字を格納するフィールドを作成する必要があります。 「VARCHAR(32)
は、」私は私のデータのための正確に32 の文字を持っていることを意味していますか?私は、NULL終了のための余分な文字を予約する必要がありますか?
私は簡単なテストを実施し、WYSIWYGバッファであるようです。しかし、私は実際に彼らがやっていることを知っている人からの具体的な答えを得るために望んでいた。
<時間>私はC [++]背景を持っているので、この質問は、私の頭の中で警鐘を高めてます。
解決
はい、あなたはあなたの処分で32個の文字を持っています。いくつかのプログラミング言語が行うようにNULは、文字列を終了してSQL自体には関係しません。
他のヒント
あなたのVARCHAR仕様・サイズは、あなたのデータの最大サイズであるので、この場合は、32の文字。ただし、CLOBデータ・タイプはVARCHARSはダイナミックな分野ですので、使用される実際の物理ストレージは、1つまたは2つのバイトだけで、あなたのデータのサイズである、プラスます。
あなたはVARCHAR(32)に10文字の文字列を入れる場合は、物理ストレージは11または12バイトになります。(マニュアルはあなたに正確な式を教えてくれます)。
MySQLは結果セット(すなわち、選択した後)を扱っているときにしかし、32バイトすべてのレコードのそのフィールドのためにメモリに割り当てられます。
所属していません StackOverflow