本附錄介紹mysql提供的每種列類型。關于利用每種類型的詳細說明請參閱第2 章。除非另有說明,否則所列出的類型早在mysql3.21.0 中就已經有了。 按下列約定給出類型名說明: 方括號( [ ]) 可選信息。 m 最大顯示寬度。除非另有說明,否則m 應該是一個1到255 之間的整數。 d 有小數部分的類型的小數位數。d 為一個0 到30 之間的整數。d 應該小于等于m - 2。否則,m 的值將調整為d + 2。 在odbc 術語中,m 和d 稱為“精度”和“小數位數”。 為了描述每種類型,提供下列一個或多個信息: 說明 該類型的簡短說明。 允許的屬性 在create table 或alter table 語句中與該類型相關的可選屬性關鍵字。屬性按字母順序列出,但這個順序并不一定與create table 或alte r table 中使用的順序相對應。關于這些語句的語法請參閱附錄d。每種列類型在說明中列出的屬性為通用屬性之外的屬性。 允許的長度 串類型的列值所允許的最大長度。 取值范圍 對于數值或日期與時間類型,該類型可表示的值的范圍。對于整數數值類型,給出兩個取值范圍,因為整數列可以是有符號或無符號的,有符號或無符號的取值范圍是不同的。 零值 對于日期和時間類型,如果將非法值插入該列,則存入一個“零”值。 缺省值 類型說明中不明確給出d e fa u lt 屬性時的缺省值。 存儲需求 存儲該類型的值所需的字節數。對于有的類型,這個值是固字的。而這個值在有些類型中根據存放在列中的值的不同是可變的。 比較 對于串類型,比較是否是區分大小寫的。這對排序和索引有效,因為這些操作根據比較進行的。 同義詞 該類型名的同義詞。 注釋 關于該類型的一些雜項說明。 通用屬性 有的屬性對所有類型或對于幾乎所有類型都適用。它們列在這里,而不是列在每種類型的說明中。可對任何類型指定null 或not null 屬性。還可對所有類型指定d e fa u lt default_value。
mysql數值類型
mysql提供了整數和浮點數的數值類型。可根據所要表示的值的范圍選擇相應的類型。 對于整數類型,如果指定了auto_increment 屬性,則列必須為primary key 或unique 索引。將null 插入auto_increment 列將會插入一個大于該列中當前最大值的值。如果指定了unsigned 屬性,則相應的整數類型不允許取負值。 如果指定了zerofill 屬性,則用前導零填充數值類型值以達到列的顯示寬度。 1. tinyint[(m)] 說明:非常小的整數 允許的屬性:auto _ i n c r e m e n t, unsigned, zerofill 取值范圍:-128 到127(-27 到27-1),或者如果為u n s i g n e d,則0 到2 5 5(0 到2 8-1) 缺省值:如果列可為null;則為null;如果列為not null,則為0 存儲需求:1字節 2. smallint[(m)] 說明:小整數 允許的屬性:auto _ i n c r e m e n t, unsigned, zerofill 取值范圍:-32768 到3 27 6 7(-215 到215-1),或者如果為u n s i g n e d,則0 到6 5 5 3 5 (0 到216-1) 缺省值:如果列可為null;則為null;如果列為not null,則為0 存儲需求:2 字節 3. mediumint[(m)] 說明:中等大小的整數 允許的屬性:auto _ i n c r e m e n t, unsigned, zerofill 取值范圍:-8388608 到8 3 8 8 6 07(-22 3 到22 3-1),或者如果為u n s i g n e d,則0 到16 7 7 2 15(0 到22 4-1) 缺省值:如果列可為null,則為null;如果列為not null,則為0 存儲需求:4 字節 4. int[(m)] 說明:標準大小的整數 允許的屬性:auto _ i n c r e m e n t, unsigned, zerofill 取值范圍:-2147483648 到2 14 7 4 8 3 6 4 7(-231到2 3 1-1),或者如果為u n s i g n e d,則0 到4 2 9 4 9 6 7 2 9 5(0 到2 3 2-1) 缺省值:如果列為null,則為null;如果列為not full,則為0 存儲需求:4 字節 同義詞:i n t e g e r [(m)] 5. bigint[(m)] 說明:大整數 允許的屬性:auto _ i n c r e m e n t, unsigned, zerofill 取值范圍:-9223372036854775808 到9 2 2 3 3 7 2 0 3 6 8 5 4 7 7 5 8 07(-263 到2 6 3-1),或者如果為u n s i g n e d,則0 到18 4 4 6 7 4 4 07 3 7 0 9 5 5 16 15(0 到26 4 -1) 缺省值:如果列可為null,則為null;如果列為not null,則為0 存儲需求:8 字節 6. float [(m, d)] 說明:小浮點數;單精度(精度小于d o u b l e) 允許的屬性:z e r o f i l l 取值范圍:最小非零值為±1.75494351e -38; 最大非零值為±3 . 4 0 2 8 2 3 4 6 6 e + 3 8 缺省值:如果列可為null,則為null;如果列為not null,則為0 存儲需求:4 字節 同義詞:mysql3.23 版以前,float(4) 為具有缺省m 和d 值的float的同義詞。 注釋:在mysql3.23 以后,float(4) 為真浮點類型(值存儲為硬件所允許的完整精度,而不四舍五入為缺省的小數位數) 7. double[(m, d)] 說明:大浮點數;雙精度(比float更精確) 允許的屬性:z e r o f i l l 取值范圍:最小非零值為±2 . 2 2 5 07 3 8 5 8 5 07 2 0 14 e -308; 最大非零值為±1。7 9 7 6 9 3 13 - 4 8 6 2 3 15 7 e + 3 0 8 缺省值:如果列可為null,則為null;如果列為not null,則為0 存儲需求:8 字節 同義詞:double precision[(m, d)] 和r e a l [ (m, d)] 為d o u b l e [(m, d)] 的同義詞。mysql3.23 版以前,float(8) 為具有缺省m 和d 值的float的同義詞。 注釋:在mysql3.23 以后,float(8) 為真浮點類型(值存儲為硬件所允許的完整精度,而不四舍五入為缺省的小數位數)。 8. decimal(m, d) 說明:存儲為串的浮點數(每位數字、小數點或“-”號都占1字節)。 允許的屬性:z e r o f i l l 取值范圍:最大取值范圍與double 相同;給定decimal 類型的有效取值范圍由m和d 決定。如果d 為零,則列值無小數點或小數部分。 缺省值:如果列可為null,則為null,如果列為not null,則為0 存儲需求:對于mysql3.23 前的版本,為m 字節,而mysql3.23 以后的版本,為m + 2 字節。 同義詞:n u m e r i c (m, d) 注釋:在mysql3.23 以后,m 的值為符合ansi sql 標準,不包括符號字符或小數點所占的字節數。