標籤:
MySQL支援的資料類型
1、數實值型別
整數類型:TINYINT (1)、SMALLINT (2)、MEDIUMINT (3)、INT/INTEGER (4)、BIGINT (8)
浮點數類型:FLOAT (4)、DOUBLE (8)
位類型:BIT(M) (1~8)
對於整形資料,支援在類型名稱後面的小括弧內指定西安是寬度。
如int(5),意思是數值寬度小於5位的時候在數字前面填滿寬度。
不顯示指定寬度預設為int(11),配合zerofill使用:用0填充,
但如果超過也可以進入,如
AUTO_INCREMENT,整形類型的屬性,一個表最多隻有一個,其列為NOT NULL,並定義為PRIMARY KEY或者UNIQUE鍵。
浮點數和定點數都可以用類型名稱後加(M,D)的方式進行表示:
表示一共顯示M位元字(整數+小數),其中D表示位於小數點後面/(精度和標度)
2、時間類型
DATE:年月日
DATETIME:年月日時分秒
TIME:時分秒
TIMESTAMP:需要經常插入或者更新日期為當前系統時間 YYYY-MM-DD HH:MM:SS (共19個字元)
TIMESTAMP與DATETIME的表示方法非常類似,主要區別:
(1)、TIMESTAMP支援的時間範圍較小,而DATETIME範圍更大
(2)、表中的第一個TIMESTAMP列自動化佈建為系統時間。如果在一個TIMESTAMP列中插入NULL,則該列值將自動化佈建為當前的日期和時間。再插入或更新一行但不明確給TIMESTAMP列賦值時也會自動化佈建該列為當前日期和時間,當插入的值超出取值範圍,MySQL會溢出,使用“0000-00-00 00:00:00”進行填補。
(3)、TIMESTAMP的插入和查詢都受當地時區的影響,更能反應出實際的日期。而DATETIME只能反映出插入時當地的時區,其他時區會有誤差。
(4)、TIMESTAMP的屬性受MySQL版本和吳福氣SQLMode的影響很大。
YEAR的範圍為(1901-2155)。使用兩位字串時範圍(00-99)(00-69:2000-2069;70-99:1970-1999)
3、字串類型
CHAR和VARCHAR類型
CHAR:長度固定為建立表時聲明的長度,char列刪除了尾部的空格
VARCHAR:可變長字串,varchar保留結尾空格
BINARY和VARBINARY類型
BINARY和VARBINARY類型類似於CHAR和VARCHAR,不同的的是它們包含二進位字串而不包含非二進位字串。
ENUM類型
枚舉類型,對於1-255個成員需要1個位元組儲存;對於255-65535個成員,需要2個位元組。
create table t(gender enum(‘M’, ‘F’)); //描述了範圍只在M,F之間。
insert into t values(‘M’), (‘l’), (‘f’), (null)
SET類型(不重複)
跟ENUM類型類似,也是一個字串對象。SET一次可以選取多個成員,而ENUM只能選一個。
MySQL支援的資料類型