?? manual_reference.html
字號:
<dt><code>MEDIUMBLOB</code> </dt>
<dd> </dd>
<dt><code>MEDIUMTEXT</code> </dt>
<dd>一個<code>BLOB</code>或<code>TEXT</code>列,最大長度為16777215(2^24-1)個字符。見<a HREF="manual_Reference.html#Silent_column_changes">7.7.1 隱式列指定變化</a>。 <a NAME="IDX234"></a> <a NAME="IDX235"></a> </dd>
<dt><code>LONGBLOB</code> </dt>
<dd> </dd>
<dt><code>LONGTEXT</code> </dt>
<dd>一個<code>BLOB</code>或<code>TEXT</code>列,最大長度為4294967295(2^32-1)個字符。見<a HREF="manual_Reference.html#Silent_column_changes">7.7.1 隱式列指定變化</a> <a NAME="IDX236"></a> </dd>
<dt><code>ENUM('value1','value2',...)</code> </dt>
<dd>枚舉。一個僅有一個值的字符串對象,這個值式選自與值列表<code>'value1'</code>、<code>'value2'</code>,
<code>...</code>,或<code>NULL</code>。一個<code>ENUM</code>最多能有65535不同的值。
<a NAME="IDX237"></a> </dd>
<dt><code>SET('value1','value2',...)</code> </dt>
<dd>一個集合。能有零個或多個值的一個字符串對象,其中每一個必須從值列表<code>'value1'</code>,
<code>'value2'</code>, <code>...</code>選出。一個<code>SET</code>最多能有64個成員。
</dd>
</dl>
<h3><a NAME="Storage_requirements" HREF="manual_toc.html#Storage_requirements">7.3.1
列類型存儲需求</a></h3>
<p>對于每個由<strong>MySQL</strong>支持的列類型的存儲需求在下面按類列出。
</p>
<h3>7.3.2 數字類型</h3>
<table BORDER="1" WIDTH="100%" NOSAVE="#101090" class="p4">
<tr>
<td><strong>列類型</strong> </td>
<td><strong>需要的存儲量</strong> </td>
</tr>
<tr>
<td><code>TINYINT</code> </td>
<td>1 字節</td>
</tr>
<tr>
<td><code>SMALLINT</code> </td>
<td>2 個字節</td>
</tr>
<tr>
<td><code>MEDIUMINT</code> </td>
<td>3 個字節</td>
</tr>
<tr>
<td><code>INT</code> </td>
<td>4 個字節</td>
</tr>
<tr>
<td><code>INTEGER</code> </td>
<td>4 個字節</td>
</tr>
<tr>
<td><code>BIGINT</code> </td>
<td>8 個字節</td>
</tr>
<tr>
<td><code>FLOAT(X)</code> </td>
<td>4 如果 X < = 24 或 8 如果 25 < = X < = 53</td>
</tr>
<tr>
<td><code>FLOAT</code> </td>
<td>4 個字節</td>
</tr>
<tr>
<td><code>DOUBLE</code> </td>
<td>8 個字節</td>
</tr>
<tr>
<td><code>DOUBLE PRECISION</code> </td>
<td>8 個字節</td>
</tr>
<tr>
<td><code>REAL</code> </td>
<td>8 個字節</td>
</tr>
<tr>
<td><code>DECIMAL(M,D)</code> </td>
<td><code>M</code>字節(<code>D</code>+2 , 如果<code>M < D</code>) </td>
</tr>
<tr>
<td><code>NUMERIC(M,D)</code> </td>
<td><code>M</code>字節(<code>D</code>+2 , 如果<code>M < D</code>) </td>
</tr>
</table>
<h3>7.3.3 日期和時間類型</h3>
<table BORDER="1" WIDTH="100%" NOSAVE="#101090" class="p4">
<tr>
<td><strong>列類型</strong> </td>
<td><strong>需要的存儲量</strong> </td>
</tr>
<tr>
<td><code>DATE</code> </td>
<td>3 個字節</td>
</tr>
<tr>
<td><code>DATETIME</code> </td>
<td>8 個字節</td>
</tr>
<tr>
<td><code>TIMESTAMP</code> </td>
<td>4 個字節</td>
</tr>
<tr>
<td><code>TIME</code> </td>
<td>3 個字節</td>
</tr>
<tr>
<td><code>YEAR</code> </td>
<td>1 字節</td>
</tr>
</table>
<h3>7.3.4 串類型</h3>
<table BORDER="1" WIDTH="100%" NOSAVE="#101090" class="p4">
<tr>
<td><strong>列類型</strong> </td>
<td><strong>需要的存儲量</strong> </td>
</tr>
<tr>
<td><code>CHAR(M)</code> </td>
<td><code>M</code>字節,<code>1 <= M <= 255</code> </td>
</tr>
<tr>
<td><code>VARCHAR(M)</code> </td>
<td><code>L</code>+1 字節, 在此<code>L <= M</code>和<code>1 <= M <= 255</code>
</td>
</tr>
<tr>
<td><code>TINYBLOB</code>, <code>TINYTEXT</code> </td>
<td><code>L</code>+1 字節, 在此<code>L</code>< 2 ^ 8</td>
</tr>
<tr>
<td><code>BLOB</code>, <code>TEXT</code> </td>
<td><code>L</code>+2 字節, 在此<code>L</code>< 2 ^ 16</td>
</tr>
<tr>
<td><code>MEDIUMBLOB</code>, <code>MEDIUMTEXT</code> </td>
<td><code>L</code>+3 字節, 在此<code>L</code>< 2 ^ 24</td>
</tr>
<tr>
<td><code>LONGBLOB</code>, <code>LONGTEXT</code> </td>
<td><code>L</code>+4 字節, 在此<code>L</code>< 2 ^ 32</td>
</tr>
<tr>
<td><code>ENUM('value1','value2',...)</code> </td>
<td>1 或 2 個字節, 取決于枚舉值的數目(最大值65535)</td>
</tr>
<tr>
<td><code>SET('value1','value2',...)</code> </td>
<td>1,2,3,4或8個字節, 取決于集合成員的數量(最多64個成員)</td>
</tr>
</table>
<p><code>VARCHAR</code>和<code>BLOB</code>和<code>TEXT</code>類型是變長類型,對于其存儲需求取決于列值的實際長度(在前面的表格中用<code>L</code>表示),而不是取決于類型的最大可能尺寸。例如,一個<code>VARCHAR(10)</code>列能保存最大長度為10個字符的一個字符串,實際的存儲需要是字符串的長度(<code>L</code>),加上1個字節以記錄字符串的長度。對于字符串<code>'abcd'</code>,<code>L</code>是4而存儲要求是5個字節。
</p>
<p><code>BLOB</code>和<code>TEXT</code>類型需要1,2,3或4個字節來記錄列值的長度,這取決于類型的最大可能長度。
</p>
<p>如果一個表包括任何變長的列類型,記錄格式將也是變長的。注意,當一個表被創建時,<strong>MySQL</strong>可能在某些條件下將一個列從一個變長類型改變為一個定長類型或相反。見<a HREF="manual_Reference.html#Silent_column_changes">7.7.1 隱式列指定變化</a>。 </p>
<p>一個<code>ENUM</code>對象的大小由不同枚舉值的數量決定。1字節被用于枚舉,最大到255個可能的值;2個字節用于枚舉,最大到65535
值。 </p>
<p>一個<code>SET</code>對象的大小由不同的集合成員的數量決定。如果集合大小是<code>N</code>,對象占據<code>(N+7)/8</code>個字節,四舍五入為1,2,3,4或8
個字節。一個<code>SET</code>最多能有64個成員。 </p>
<h3><a NAME="Numeric_types" HREF="manual_toc.html#Numeric_types">7.3.5 數字類型</a></h3>
<p><strong>MySQL</strong>支持所有的ANSI/ISO SQL92的數字類型。這些類型包括準確數字的數據類型(<code>NUMERIC</code>,
<code>DECIMAL</code>, <code>INTEGER</code>,和<code>SMALLINT</code>),也包括近似數字的數據類型(<code>FLOAT</code>,
<code>REAL</code>,和<code>DOUBLE PRECISION</code>)。關鍵詞<code>INT</code>是<code>INTEGER</code>的一個同義詞,而關鍵詞<code>DEC</code>是<code>DECIMAL</code>一個同義詞。
</p>
<p><code>NUMERIC</code>和<code>DECIMAL</code>類型被<strong>MySQL</strong>實現為同樣的類型,這在SQL92標準允許。他們被用于保存值,該值的準確精度是極其重要的值,例如與金錢有關的數據。當聲明一個類是這些類型之一時,精度和規模的能被(并且通常是)指定;例如:</p>
<pre>salary DECIMAL(9,2) </pre>
<p>在這個例子中,<code>9</code>(<code>precision</code>)代表將被用于存儲值的總的小數位數,而<code>2</code>(<code>scale</code>)代表將被用于存儲小數點后的位數。因此,在這種情況下,能被存儲在<code>salary</code>列中的值的范圍是從<code>-9999999.99</code>到<code>9999999.99</code>。在ANSI/ISO
SQL92中,句法<code>DECIMAL(p)</code>等價于<code>DECIMAL(p,0)</code>。同樣,句法<code>DECIMAL</code>等價于<code>DECIMAL(p,0)</code>,這里實現被允許決定值<code>p</code>。<strong>MySQL</strong>當前不支持<code>DECIMAL</code>/<code>NUMERIC</code>數據類型的這些變種形式的任一種。這一般說來不是一個嚴重的問題,因為這些類型的主要益處得自于明顯地控制精度和規模的能力。
</p>
<p><code>DECIMAL</code>和<code>NUMERIC</code>值作為字符串存儲,而不是作為二進制浮點數,以便保存那些值的小數精度。一個字符用于值的每一位、小數點(如果<code>scale</code>>0)和<samp>“-”</samp>符號(對于負值)。如果<code>scale</code>是0,<code>DECIMAL</code>和<code>NUMERIC</code>值不包含小數點或小數部分。
</p>
<p><code>DECIMAL</code>和<code>NUMERIC</code>值得最大的范圍與<code>DOUBLE</code>一樣,但是對于一個給定的<code>DECIMAL</code>或<code>NUMERIC</code>列,實際的范圍可由制由給定列的<code>precision</code>或<code>scale</code>限制。當這樣的列賦給了小數點后面的位超過指定<code>scale</code>所允許的位的值,該值根據<code>scale</code>四舍五入。當一個<code>DECIMAL</code>或<code>NUMERIC</code>列被賦給了其大小超過指定(或缺省的)<code>precision</code>和<code>scale</code>隱含的范圍的值,<strong>MySQL</strong>存儲表示那個范圍的相應的端點值。
</p>
<p>作為對ANSI/ISO SQL92標準的擴展,<strong>MySQL</strong>也支持上表所列的整型類型<code>TINYINT</code>、MEDIUMINT和<code>BIGINT</code>。另一個擴展是<strong>MySQL</strong>支持可選地指定一個整型值顯示的寬度,用括號跟在基本關鍵詞之后(例如,<code>INT(4)</code>)。這個可選的寬度指定被用于其寬度小于列指定寬度的值得左填補顯示,但是不限制能在列中被存儲的值的范圍,也不限制值將被顯示的位數,其寬度超過列指定的寬度。當與可選的擴展屬性<code>ZEROFILL</code>一起使用時,缺省的空格填補用零代替。例如,對于聲明為<code>INT(5)
ZEROFILL</code>的列,一個為4的值作為<code>00004</code>被檢索。注意,如果你在一個整型列存儲超過顯示寬度的更大值,當<strong>MySQL</strong>對于某些復雜的聯結(join)生成臨時表時,你可能會遇到問題,因為在這些情況下,<strong>MySQL</strong>相信數據確實適合原來的列寬度。
</p>
<p>所有的整型類型可以有一個可選(非標準的)屬性<code>UNSIGNED</code>。當你想要在列中僅允許正數并且你需要一個稍大一點的列范圍,可以使用無符號值。
</p>
<p><code>FLOAT</code>類型被用來標示近似數字的數據類型。ANSI/ISO SQL92標準允許一個可選的精度說明(但不是指數的范圍),跟在關鍵詞<code>FLOAT</code>后面的括號內位數。<strong>MySQL</strong>實現也支持這個可選的精度說明。當關鍵詞<code>FLOAT</code>被用于一個列類型而沒有精度說明時,<strong>MySQL</strong>使用4個字節存儲值。一個變種的句法也被支持,在<code>FLOAT</code>關鍵詞后面的括號給出2個數字。用這個選項,第一個數字繼續表示在字節計算的值存儲需求,而第二個數字指定要被存儲的和顯示跟隨小數點后的位數(就象<code>DECIMAL</code>和<code>NUMERIC</code>)。當<strong>MySQL</strong>要求為這樣一個列,一個小數點后的小數位超過列指定的值,存儲值時,該值被四舍五入,去掉額外的位。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -