可以在型別名稱後面的括號中指定顯示寬度,顯示寬度就是select結果的顯示寬度,與範圍無關。
顯示寬度只用於顯示,並不能限制取值範圍和占用空間。
如:int(3)會占用4個位元組的儲存空間,並且允許的最大值也不會是999,而是 int整型所允許的最大值。
int(5) zerofill表示數值寬度小於5位時在數字前面填滿0;
預設情況是用空格填充,經過試驗發現空格沒有填充,所以如果不加zerofill,其實意義不大。
如不指定則int的預設寬度為int(11);
unsigned:可以用於取消符號位,如果乙個列指定為zerofill,則該列自動新增unsigned屬性。乙個表中最多只能有一列具有auto_increment屬性。auto_increment列應定義為not null,並定義為unique或者primary key。auto_increment:這個屬性只可以用於整數型別,一般從1開始,沒新增一行自動增加1,如果插入乙個資料的auto_increment值為null,實際插入值為列中當前最大值加1。
建立帶有auto_increment的列的三種方式:
1 - create
table (id int auto_increment not
null
primary
key);
2 - create
table (id int auto_increment not
null,..other column..,primary
key(id));
3 - create
table (id int auto_increment not
null,..other column..,unique(id));
浮點數和定點數都可以用型別名加(m,d)來修飾。
其中m為數字位數(整數字+小數字),小數點後面有d位。即表示保留m位有效數字,其中小數有d位。
float(5,5)
double(5,5)
decimal(5,5)
mysql儲存值時採用了四捨五入,所以float(7,4)中插入999.00009 實際儲存為 999.0001
另外,最好不要指定float和double的精度,而是採用由實際硬體和作業系統決定的預設精度。
而decimal則通常要指定精度,因為其預設值是(10,0)。
float和double儲存資料超過精度時會進行四捨五入。
decimal儲存超過精度時會報錯。(mysql報異常但是能四捨五入後存入)
bit型別用於存放位字段值。bit(m)可以存放多個二進位制數,m~(1,64),預設為1位;
對於bit型別的字段,直接查詢顯示乙個笑臉。
正確查詢方式:
select bin(bitcolumn),hex(bitcolumn) from tablename;
bin()與hex()分別為二進位制操作與十六進製制操作。
bit型別插入時,先將值轉化為二進位制數,然後插入,如果超過位數會則插入失敗。
比如 colunma bit(1) 如果插入值為2 (10)超過限制的1位,則報錯。
日期時間型別
位元組最小值
最大值date
41000-01-01
9999-12-31
datetime
81000-01-01 00:00:00
9999-12-31 23:59:59
timestamp
41970010108001
2023年的某個時刻
time
3-838:59:59
838:59:59
year
11901
2155
這些資料型別的區別如下:
如果儲存時日期超出有效範圍,將所有位以0填充並儲存。
create
table t(time1 timestamp
notnull
default
current_timestamp,
time2 timestamp
notnull
default
'0000-00-00 00:00:00');
default用於設定該列的預設值,在插入為null時會自動設為預設值。
current_timestamp為當前的時間戳。
timestamp的另乙個特性是插入時會轉為本地時區,取出時也會轉為本地時區。
timestamp存入時,如果從後往前讀可以匹配為乙個有效時期,則補全儲存。否則存0值
now()獲取當前時間。
任何標點符號都可以作為日期部分或時間部分的分隔符。
mysql數值範圍
時間資料型別轉換為int處理更快 201204 select date format 2008 08 08 22 23 01 y m d h i s int 20 是最大的 int 30 也是int 20 預設為最大值 1.bit m 位欄位型別,m表示每個值的位數,範圍從1到64,如果m被忽略,預...
MySQL數值函式
1 ceil select ceil 4.01 output 5 ceil 函式用於向上取整 2 floor select floor 4.99 output 4 floor 函式用於向下取整 3 round select round 4.99 output 5 round 函式表示四捨五入 4 t...
mysql數值型別
通過mysql手冊對mysql的數值資料型別進行了乙個回顧,總結如下 mysql支援所有標準sql數值資料型別。這些型別包括嚴格資料型別 integer smallint decimal numeric,以及近似數值資料型別 float real double precision。關鍵字int是in...