1bit即爲一位二進制,mysql
1Byte=8bit,即爲八位二進制。換算成十進制可表示的最大的數值個數爲2^8個sql
1、數值型ide
整型spa
數據類型排序 |
存儲大小索引 |
tinyintrem |
1Byte 即2^8個數字字符串 |
smallintit |
2Byteio |
mediumint |
3Byte |
int |
4Byte |
bigint |
8Byte |
浮點數
數據類型 |
||
float(m,d) |
單精度浮點數 |
m:浮點型數值的長度,不包括符號。d:小數點後面數字的位數 |
double(m,d) |
雙精度浮點數 |
2、字符型
字符類型 |
大小寫 |
定長/變長 |
佔用空間 |
實佔空間 |
儲存範圍 |
char(n) |
不分區 |
定長 |
n |
n |
0--2^8-1Bytes 256字節 |
varchar(n) |
不區分 |
變長 |
n |
實際字符長度空間 |
0--2^16-1Bytes 65535字節 |
binary(n) |
區分 |
定長 |
n |
n |
0-2^8-1bytes 256字節 |
varbinary(n) |
區分 |
變長 |
n |
實際字符長度空間 |
0--2^16-1Bytes 65535字節 |
text |
不區分 |
變長 |
0-2^16-1bytes 65535字節 |
||
blob |
區分 |
變長 |
n |
實際字符長度空間 |
0-2^16-1bytes 65535字節 |
char須要佔用一個字節標記非空,因此最多254字節可用。
varchar超過255字節時須要2個字節標記字段長度,不超過255字節須要1個字節標記長度,非空標記佔用一個字節。
char類型的字符串檢索速度要比varchar類型的快。
varchar可指定n,text不能指定
text是實際字符數+2個字節。
text類型不能有默認值。
varchar可直接建立索引,text建立索引要指定前多少個字符。varchar查詢速度快於text,在都建立索引的狀況下,text的索引彷佛不起做用。
枚舉型ENUM:就是列出某個字段的全部可能取得值。儲存範圍是0-65535bytes。如ENUM('F','M')。
3、日期時間型
日期時間型 |
儲存範圍 |
佔用空間 |
日期型DATE |
"1000-01-01→9999-12-31" |
3bytes |
時間型TIME |
"-838:59:59"→"838:59:59" |
3bytes |
日期時間型DATETIME |
"1000-01-01 00:00:00"→"9999-12-31 23:59:59" |
8bytes |
時間戳型TIMESTAMP |
是1970-01-01 00:00:00到當前的秒數 |
4bytes |
年型YEAR(2) |
"00-99" |
1bytes |
年型YEAR(4) |
"1901-2155" |
1bytes |
4、字段修飾符
在聲明字段的時候,能夠爲這些字段添加額外的修飾符,不一樣的數據類型,其修飾符也是不同的,
數據類型 |
修飾符 |
整型 |
unsigned:無符號,表示非負,定義在最前面 null not null default value :定義默認值 auto_incremnet:自動增加,定義的字段必須是整型、非空、非負、惟一鍵或主鍵 |
浮點數 |
unsigned , null , not null , default value |
字符型 char、varchar、text |
null , not null , default value character set 字符集(show character set 能夠查看支持的字符集,show variables like ‘%charac%’能夠查看支持的默認字符集) collation '排序規則':設定排序規則; show collation能夠查看mysql支持的全部排序規則。 |
字符型binary、varbinary、blob |
null , not null , default value
|
日期型 |
null , not null , default value |
enum(枚舉型) |
null , not null , default value |