整型:
tinyint
1位元組,範圍:-128~127
smallint
2位元組,範圍:-32768~32767
mediumint
3位元組,範圍:-8388608~8388607
int4位元組,範圍:-2147483648~2147483647
bigint
8位元組,範圍:+-9.22*10的18次方
加上unsigned 關鍵字定義成無符號型別,對應的取值範圍從0開始,如tinyint,範圍:0~255
浮點型:
float(m,d)
4位元組,單精度浮點型,m總個數,d小數字個數
double(m,d)
8位元組,雙精度浮點型,m總個數,d小數字個數
decimal(m,d)
把浮點數儲存為字串型別
注意:float和double通常不設定m,d
如果實際插入資料大於格式能承受資料,則資料庫儲存格式能承受資料,如:float(5,3)能儲存最大資料為99.999,如果向其插入123.123,那麼資料庫儲存的是99.999
字串型別:
char(n)
固定長度,最多255個字元
varchar(n)
可變長度,最多65535個字元
tinytext
可變長度,最多255個字元
text
可變長度,最多65535個字元
mediumtext
可變長度,最多2的24次方-1個字元
longtext
可變長度,最多2的32次方-1個字元
注意:1、char和varchar中的n代表字元的個數,而不是位元組個數,所以使用中文,utf-8,意味著儲存n個漢字,但實際占用n*3個位元組
2、char和varchar的區別就是:不管插入資料多大,char都會占用n個字元的空間,而varchar會占用實際資料+1字元的空間(實際+1<=n)
如:n=5,插入3個字元,char會占用5個字元的空間,而varchar會占用4個字元的空間;如果插入4或者5個字元,varchar都是占用5個字元的空間
3、超過n之後的字元會被截斷捨棄
char在儲存的時候會被截斷尾部的空格,varchar和text不會
日期和時間型別:
date
3位元組,日期,格式:2017-01-01
time
3位元組,時間,格式:08:10:30
datetime
8位元組,日期時間,格式:2017-01-01 08:10:30
範圍:'1000-01-01 00:00:00' ~ '9999-12-31 23:59:59'
timestamp
4位元組,時間戳
範圍:』1970-01-01 00:00:01′ 到 』2038-01-19 03:14:07′
year
1位元組,年份
timestamp表示的含義是「時間戳」,其實就是指「當前時刻」,本質上是乙個數字,代表從2023年1月1日0點0分0秒到某個時間之間的秒數數值。該型別的字段值無需賦值,而是會自動取得當前時間值。
列舉型別:
enum('member1','member',...)
enum列舉最多包含65535個不同成員。
當定義了乙個enum列時,列的值限制為列舉中的值。
如果列的宣告包含null,則null被認為是乙個有效值,並且是預設值;如果列宣告了not null,則列表的第乙個成員是預設值
set('member1','member',...)
set與enum的區別是:enum只能取乙個值,類似表單中的單選項;set可以取多個值,類似多選項
字段型別選擇原則:
1、盡可能小:占用儲存空間少
2、盡可能定長:占用儲存空間固定
3、盡可能使用整數
mysql 字段 MySQL欄位型別詳解
mysql支援大量的列型別,它可以被分為3類 數字型別 日期和時間型別以及字串 字元 型別。本節首先給出可用型別的乙個概述,並且總結每個列型別的儲存需求,然後提供每個類中的型別性質的更詳細的描述。概述有意簡化,更詳細的說明應該考慮到有關特定列型別的附加資訊,例如你能為其指定值的允許格式。由mysql...
MySQL欄位型別詳解
2009 01 05 09 25 小大 分享至 詞庫網 監控 伺服器監控 seo監控 手機遊戲 iphone遊戲 mysql支援大量的列型別,它可以被分為3類 數字型別 日期和時間型別以及字串 字元 型別。本節首先給出可用型別的乙個概述,並且總結每個列型別的儲存需求,然後提供每個類中的型別性質的更詳...
MySQL欄位型別詳解
mysql支援大量的列型別,它可以被分為3類 數字型別 日期和時間型別以及字串 字元 型別。本節首先給出可用型別的乙個概述,並且總結每個列型別的儲存需求,然後提供每個類中的型別性質的更詳細的描述。概述有意簡化,更詳細的說明應該考慮到有關特定列型別的附加資訊,例如你能為其指定值的允許格式。由mysql...