Mysql數據類型大致分為:數字、字符串、時間三種類型
1.數字類型
(1)bit[M]:二進制位,m表示二進制位的長度(1-64),默認m=1
(2)tinyint[(m)]:小整數,范圍:
有符號:-128~127 signed
無符號:0~255 unsigned
注:Mysql中無布爾值,使用tinyint(1)構造
(3)int[(m)]:整數,范圍:
有符號:-2147483648~214783647
無符號:0~4294967295
注:整數類型中的m僅用於顯示,對存儲范圍無限制。例如:int(5),當插入數據2時,select時數據顯示為:00002
(4)bigint[(m)]:大整數,范圍:
有符號:-9223372036854775808 ~ 9223372036854775807
無符號:0 ~ 18446744073709551615
(5)decimal[m[,d]]:准確的小數值(也就是說這個小數值是准確的,不是近似值),其中m表示:小數點前面位數+小數點后面位數;d表示:小數點后面的位數
(6)FLOAT[(m,d)]:單精度浮點數(是一個非精確的小數值),m是數字總個數,d是小數點后面的位數
(7)DOUBLE[(m,d)]:雙精度浮點數(非精確小數值),m是數字總位數,d是小數點后面的位數
注:對於FLOAT和DOUBLE來說數值越大,越不准確。
2.字符換類型
(1)char(m) :char數據類型用於表示固定長度的字符串,最多包含255個字符,其中m表示字符串的長度
(2)varchar(m):varchar數據類型表示變長的字符串類型,最多包含255個字符,其中m表示該字符串所允許保存的字符串的最大長度,只要長度小於該最大值的字符串都可以被保存在該數據類型中。
注:雖然varchar使用起來較為靈活,但是從整個系統的性能角度來說,char數據類型的處理速度更快,有時甚至可以超出varchar處理速度的50%。因此,用戶在設計數據庫時應當綜合考慮各方面的因素,以求達到最佳的平衡
(3)text:text數據類型用於保存變長的大字符串,可以組多到65535 (2**16 − 1)個字符。
(4)mediumtext:和text用法一致,區別在於長度比text長,長度為16777215(2**24-1)個字符
(5)longtext:和text用法一致,區別在於長度比mediumtext更長,長度為:4294967295字符(4GB)
3.時間和其他
(1)enum:枚舉類型
用法例子如下:sex ENUM('男','女','保密')
(2)set:集合類型
用法:創建一個表,里面包含了一個set類型
create table myset(
id int primary key auto_increment,
col set('a','b','c','d')
);
set的使用
insert into myset(col) values ('a,b'),('b,d'),('a,d'),('a,b,c,d')
set集合可以將col中設置的a,b,c,d任意組合,而enum類型只能選擇里面的其中一個。
(3)DATE:YYYY-MM-DD(2019-05-25)
(4)TIME:HH:MM:SS(888:59:59)
(5)YEAR:YYYY(2019)
(6)DATETIME:YYYY-MM-DD HH:MM:SS(2019-12-31 23:59:59)