MYSQL列類型參考
MySQL提供的每種列類型。 按下列約定給出類型名說明:
方括號( [ ]) 可選信息。
M 最大顯示寬度。除非另有說明,否則M 應(yīng)該是一個1到255 之間的整數(shù)。
D 有小數(shù)部分的類型的小數(shù)位數(shù)。D 為一個0 到30 之間的整數(shù)。D 應(yīng)該小于等于M - 2。否則,M 的值將調(diào)整為D + 2。
在ODBC 術(shù)語中,M 和D 稱為“精度”和“小數(shù)位數(shù)”。
為了描述每種類型,提供下列一個或多個信息:
說明 該類型的簡短說明。
允許的屬性 在CREATE TABLE 或ALTER TABLE 語句中與該類型相關(guān)的可選屬性關(guān)鍵字。屬性按字母順序列出,但這個順序并不一定與CREATE TABLE 或ALTE R TABLE 中使用的順序相對應(yīng)。關(guān)于這些語句的語法請參閱附錄D。每種列類型在說明中列出的屬性為通用屬性之外的屬性。
允許的長度 串類型的列值所允許的最大長度。
取值范圍 對于數(shù)值或日期與時間類型,該類型可表示的值的范圍。對于整數(shù)數(shù)值類型,給出兩個取值范圍,因?yàn)檎麛?shù)列可以是有符號或無符號的,有符號或無符號的取值范圍是不同的。
零值 對于日期和時間類型,如果將非法值插入該列,則存入一個“零”值。
缺省值 類型說明中不明確給出D E FA U LT 屬性時的缺省值。
存儲需求 存儲該類型的值所需的字節(jié)數(shù)。對于有的類型,這個值是固字的。而這個值在有些類型中根據(jù)存放在列中的值的不同是可變的。
比較 對于串類型,比較是否是區(qū)分大小寫的。這對排序和索引有效,因?yàn)檫@些操作根據(jù)比較進(jìn)行的。
同義詞 該類型名的同義詞。
注釋 關(guān)于該類型的一些雜項說明。
通用屬性 有的屬性對所有類型或?qū)τ趲缀跛蓄愋投歼m用。它們列在這里,而不是列在每種類型的說明中。可對任何類型指定NULL 或NOT NULL 屬性。還可對所有類型指定D E FA U LT default_value。
MYSQL數(shù)值類型
MySQL提供了整數(shù)和浮點(diǎn)數(shù)的數(shù)值類型。可根據(jù)所要表示的值的范圍選擇相應(yīng)的類型。
對于整數(shù)類型,如果指定了AUTO_INCREMENT 屬性,則列必須為PRIMARY KEY 或UNIQUE 索引。將NULL 插入AUTO_INCREMENT 列將會插入一個大于該列中當(dāng)前最大值的值。如果指定了UNSIGNED 屬性,則相應(yīng)的整數(shù)類型不允許取負(fù)值。
如果指定了ZEROFILL 屬性,則用前導(dǎo)零填充數(shù)值類型值以達(dá)到列的顯示寬度。
1. TINYINT[(M)]
說明:非常小的整數(shù)
允許的屬性: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字節(jié)
2. SMALLINT[(M)]
說明:小整數(shù)
允許的屬性: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 字節(jié)
3. MEDIUMINT[(M)]
說明:中等大小的整數(shù)
允許的屬性: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 字節(jié)
4. INT[(M)]
說明:標(biāo)準(zhǔn)大小的整數(shù)
允許的屬性: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 字節(jié)
同義詞:I N T E G E R [(M)]
5. BIGINT[(M)]
說明:大整數(shù)
允許的屬性: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 字節(jié)
6. FLOAT [(M, D)]
說明:小浮點(diǎn)數(shù);單精度(精度小于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 字節(jié)
同義詞:MySQL3.23 版以前,F(xiàn)LOAT(4) 為具有缺省M 和D 值的FLOAT的同義詞。
注釋:在MySQL3.23 以后,F(xiàn)LOAT(4) 為真浮點(diǎn)類型(值存儲為硬件所允許的完整精度,而不四舍五入為缺省的小數(shù)位數(shù))
7. DOUBLE[(M, D)]
說明:大浮點(diǎn)數(shù);雙精度(比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 字節(jié)
同義詞:DOUBLE PRECISION[(M, D)] 和R E A L [ (M, D)] 為D O U B L E [(M, D)] 的同義詞。MySQL3.23 版以前,F(xiàn)LOAT(8) 為具有缺省M 和D 值的FLOAT的同義詞。
注釋:在MySQL3.23 以后,F(xiàn)LOAT(8) 為真浮點(diǎn)類型(值存儲為硬件所允許的完整精度,而不四舍五入為缺省的小數(shù)位數(shù))。
8. DECIMAL(M, D)
說明:存儲為串的浮點(diǎn)數(shù)(每位數(shù)字、小數(shù)點(diǎn)或“-”號都占1字節(jié))。
允許的屬性:Z E R O F I L L
取值范圍:最大取值范圍與DOUBLE 相同;給定DECIMAL 類型的有效取值范圍由M和D 決定。如果D 為零,則列值無小數(shù)點(diǎn)或小數(shù)部分。
缺省值:如果列可為NULL,則為NULL,如果列為NOT NULL,則為0
存儲需求:對于MySQL3.23 前的版本,為M 字節(jié),而MySQL3.23 以后的版本,為M + 2 字節(jié)。
同義詞:N U M E R I C (M, D)
注釋:在MySQL3.23 以后,M 的值為符合ANSI SQL 標(biāo)準(zhǔn),不包括符號字符或小數(shù)點(diǎn)所占的字節(jié)數(shù)。
MYSQL串類型
MySQL的串類型常用來存儲文本,它不但是通用的而且還能存儲任何數(shù)據(jù)。可用串類型來存儲最大長度可變的值,而且可以選擇在處理值時是否區(qū)分大小寫。
1. CHAR(M)
說明:0 到M 字節(jié)長的定長字符串。在MySQL3.23 版以前,M 應(yīng)該為一個1到255 之間的整數(shù)。而MySQL3.23 版以后,M 應(yīng)該為一個0 到255 之間的整數(shù)。短于M 個字符的串存儲進(jìn)右邊補(bǔ)空格。長于M 個字符的串存儲時剪斷為長度是M 的串。在檢索值時,去掉后跟的空格。
允許的屬性:B I N A RY
允許的長度:0 到M 字節(jié)
缺省值:如果列可為NULL,則為NULL;如果列為NOT NULL,則為“”
存儲需求:M 字節(jié)
比較:不區(qū)分大小寫(如果具有B I N A RY 屬性,則區(qū)分大小寫)
2. VARCHAR(M)
說明:0 到M 字節(jié)長的可變長字符串。M 應(yīng)該為1到255 之間的一個整數(shù),或者自MySQL3.23 后為0 到255 之間的一個整數(shù)。存儲時后跟的空格被去掉。存儲時,大于M 個字符的串剪斷為M 個字符。
允許的屬性:B I N A RY
允許的長度:0 到M 字節(jié)
缺省值:如果列可為NULL,則為NULL;如果列為NOT NULL,則為“”
存儲需求:值的長度,加上1字節(jié)用來記錄長度
比較:不區(qū)分大小寫(如果具有B I N A RY 屬性,則區(qū)分大小寫)
3. TINYBLOB
說明:小BLOB 值
允許的屬性:除通用屬性外無其他屬性
允許的長度:0 到2 5 5(0 到28-1)字節(jié)
缺省值:如果列可為NULL,則為NULL;如果列為NOT NULL,則為“”
存儲需求:值的長度加上用于記錄長度的1個字節(jié)
比較:區(qū)分大小寫
4. BLOB
說明:常規(guī)大小的BLOB 值
允許的屬性:除通用屬性外無其他屬性
允許的長度:0 到6 5 5 3 5(0 到216-1)字節(jié)
缺省值:如果列可為NULL,則為NULL;如果列為NOT NULL,則為“”
存儲需求:值的長度加上用于記錄長度的2 個字節(jié)
比較:區(qū)分大小寫
5. MEDIUMBLOB
說明:中等大小的BLOB 值
允許的屬性:除通用屬性外無其他屬性
允許的長度:0 到16 7 7 7 2 15(0 到224 -1)字節(jié)
缺省值:如果列可為NULL,則為NULL;如果列為NOT NULL,則為“”
存儲需求:值的長度加上用于記錄長度的3 個字節(jié)
比較:區(qū)分大小寫
6. LONGBLOB
說明:大BLOB 值
允許的屬性:除通用屬性外無其他屬性
允許的長度:0 到4 2 9 4 9 6 7 2 9 5(0 到23 2-1)字節(jié)
缺省值:如果列可為NULL,則為NULL;如果列為NOT NULL,則為“”
存儲需求:值的長度加上用于記錄長度的4 個字節(jié)
比較:區(qū)分大小寫
7. TINYTEXT
說明:小TEXT 值
允許的屬性:除通用屬性外無其他屬性
允許的長度:0 到2 5 5(0 到2 8 -1)字節(jié)
缺省值:如果列可為NULL,則為NULL;如果列為NOT NULL,則為“”
存儲需求:值的長度加上用于記錄長度的2 個字節(jié)
比較:不區(qū)分大小寫
8. TEXT
說明:常規(guī)大小的TEXT 值
允許的屬性:除通用屬性外無其他屬性
允許的長度:0 到6 5 5 3 5(0 到216-1)字節(jié)
缺省值:如果列可為NULL,則為NULL;如果列為NOT NULL,則為“”
存儲需求:值的長度加上用于記錄長度的2 個字節(jié)
比較:不區(qū)分大小寫
9. MEDIUMTEXT
說明:中等大小的TEXT 值
允許的屬性:除通用屬性外無其他屬性
允許的長度:0 到16 7 7 7 2 15(0 到22 4-1)字節(jié)
缺省值:如果列可為NULL,則為NULL;如果列為NOT NULL,則為“”
存儲需求:值的長度加上用于記錄長度的3 個字節(jié)
比較:不區(qū)分大小寫
10. LONGTEXT
說明:大TEXT 值
允許的屬性:除通用屬性外無其他屬性
允許的長度:0 到4 2 9 4 9 6 7 2 9 5(0 到23 2-1)字節(jié)
缺省值:如果列可為NULL,則為NULL;如果列為NOT NULL,則為“”
存儲需求:值的長度加上用于記錄長度的4 個字節(jié)
比較:不區(qū)分大小寫
11. ENUM(“v a l ue 1”, “v a l ue 2”, ...)
說明:枚舉,列值可賦予值列表中的某個成員
允許的屬性:除通用屬性外無其他屬性
缺省值:如果列可為NULL,則為NULL;如果列為NOT NULL,則為第一個枚舉值
存儲需求:對1到255 個成員的枚舉1個字節(jié),對255 到65535 個成員的枚舉2 個字節(jié)
比較:不區(qū)分大小寫(MySQL3.22.1版以前區(qū)分大小寫)
12. SET(“v a l ue 1”,“v a l ue 2”, ...)
說明:集合,列值可賦予值列表中的零個或多個成員
允許的屬性:除通用屬性外無其他屬性
缺省值:如果列可為NULL,則為NULL;如果列為NOT NULL,則為“”(空集)
存儲需求:1字節(jié)(1到8個成員的集合),2字節(jié)(9 到16個成員的集合),3字節(jié)(17到2 4個成員的集合),4 字節(jié)(2 5到3 2個成員的集合)或8字節(jié)(3 3到6 4個成員的集合)
比較:不區(qū)分大小寫(MySQL3.22.1版以前區(qū)分大小寫)
MYSQL日期和時間類型
MySQL提供以各種形式表示時間數(shù)據(jù)的類型。這些數(shù)據(jù)有日期和時間類型。有一種特殊的時間戳類型,它在記錄更改時自動更新。還有一種用于存儲年份的類型,在不需要完全的日期時使用。
1. DAT E
說明:“Y Y Y Y- M M - D D”格式的日期
允許的屬性:除通用屬性外無其他屬性
取值范圍:“10 0 0 - 0 1- 0 1”到“9 9 9 9 - 12 - 3 1”
零值:“0 0 0 0 - 0 0 - 0 0”
缺省值:如果列可為NULL,則為NULL;如果列為NOT NULL,則為“0 0 0 0 - 0 0 - 0 0”
存儲需求:3 字節(jié)(MySQL3.22 版以前為4 字節(jié))
2. TIME
說明:“H H : M M : S S”格式的時間(負(fù)值為“ - HH:MM:SS”);表示占用的時間,但也可以作為日常時間
允許的屬性:除通用屬性外無其他屬性
取值范圍:“- 8 3 8 : 5 9 : 5 9”到“8 3 8 : 5 9 : 5 9”
零值:“0 0 : 0 0 : 0 0”
缺省值:如果列可為NULL,則為NULL;如果列為NOT NULL,則為“0 0 : 0 0 : 0 0”
存儲需求:3 字節(jié)
注釋:雖然在非法值插入TIME 列時,“0 0 : 0 0 : 0 0”用作零值,但它也作為一個合法的值出現(xiàn)在正常的取值范圍內(nèi)
3. DAT E T I M E
說明:以“Y Y Y Y-MM-DD hh:mm:ss”格式表示的日期和時間(兩個部分都需要)
允許的屬性:除通用屬性外無其他屬性
取值范圍:“1000-01-0100:00:00”到“9999-12-3123:59:59”
零值:“0000-00-00 00:00:00”
缺省值:如果列可為NULL,則為NULL;如果列為NOT NULL,則為“ 0 0 0 0 - 0 0 - 0 0 0 0 : 0 0 : 0 0”
存儲需求:8 字節(jié)
4. TIMESTA M P [ (M) ]
說明:以YYYYMMDDHHMMSS 格式表示的時間(日期和時間)
允許的屬性:除通用屬性外無其他屬性
取值范圍:19700101000000 到2037 年的某個時刻
缺省值:當(dāng)前日期和時間。注意DESCRIBE 和SHOW COLLUMNS 報告缺省值為NULL
存儲需求:4 字節(jié)
注釋:插入NULL 到表的第一個T I M E S TAMP 列將會插入當(dāng)前日期和時間。更改行中其他列的值使第一個T I M E S TAMP 列被更新為這個修改的日期和時間。在內(nèi)部計算中存儲和使用的值全都為14 位字符精度,與顯示寬度無關(guān)。如果指定了NOT NULL屬性,則此屬性不起作用
5. YEAR
說明:YYYY 格式表示的年份
允許的屬性:除通用屬性外無其他屬性
取值范圍:1900 到2 15 5
零值:0 0 0 0
缺省值:如果列可為NULL,則為NULL;如果列為NOT NULL,則為0 0 0 0
存儲需求:1字節(jié)
注釋:YEAR 是在MySQL3.22 版中引入的
關(guān)鍵字:MYSQL、列類型參考
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動項
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯
- 解決Centos7雙系統(tǒng)后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解