關於mysql中的數值字段!!

2021-09-30 08:40:34 字數 3176 閱讀 6903

m指示最大顯示寬度。最大有效顯示寬度是255。顯示寬度與儲存大小或型別包含的值的範圍無關。

如果為乙個數值列指定zerofill,mysql自動為該列新增unsigned屬性。

serial是bigint unsigned not null auto_increment unique的乙個別名。

在整數列定義中,serial default value是not null auto_increment unique的乙個別名。

警告:應當清楚,當使用在整數值(其中乙個是unsigned型別)之間使用減號時,結果是無符號。

·         bit[(m)]」。

位欄位型別。m表示每個值的位數,範圍為從1到64。如果m被省略, 預設為1。

·         tinyint[(m)] [unsigned] [zerofill]

很小的整數。帶符號的範圍是-128到127。無符號的範圍是0到255。

·         bool,boolean

是tinyint(1)的同義詞。zero值被視為假。非zero值視為真。

在將來,將根據標準sql引入完全布林型別的處理。

·         smallint[(m)] [unsigned] [zerofill]

小的整數。帶符號的範圍是-32768到32767。無符號的範圍是0到65535。

·         mediumint[(m)] [unsigned] [zerofill]

中等大小的整數。帶符號的範圍是-8388608到8388607。無符號的範圍是0到16777215。

·         int[(m)] [unsigned] [zerofill]

普通大小的整數。帶符號的範圍是-2147483648到2147483647。無符號的範圍是0到4294967295。

·         integer[(m)] [unsigned] [zerofill]

這是int的同義詞。

·         bigint[(m)] [unsigned] [zerofill]

大整數。帶符號的範圍是-9223372036854775808到9223372036854775807。無符號的範圍是0到18446744073709551615。

應清楚bigint列的下述內容:

o        使用帶符號的bigint或double值進行所有演算法,因此除了位函式,不應使用大於9223372036854775807(63位)的無符號的大整數! 如果這樣做,結果中的最後幾位可能出錯,這是由於將bigint值轉換為double進行四捨五入時造成的錯誤。

mysql可以在以下情況下處理bigint:

§         當使用整數在乙個bigint列儲存大的無符號的值時。

§         在min(col_name)或max(col_name)中,其中col_name指bigint列。

§         使用操作符(+,-,*等等)並且兩個運算元均為整數時。

o        總是可以使用乙個字串在bigint列中儲存嚴格整數值。在這種情況下,mysql執行字串-數字轉換,其間不存在雙精度表示。

o        當兩個運算元均為整數值時,-、+和* 操作符使用bigint演算法。這說明如果乘兩個大整數(或來自返回整數的函式),當結果大於9223372036854775807時,會得到意想不到的結果。

·         float[(m,d)] [unsigned] [zerofill]

小(單精度)浮點數。允許的值是-3.402823466e+38到-1.175494351e-38、0和1.175494351e-38到3.402823466e+38。這些是理論限制,基於ieee標準。實際的範圍根據硬體或作業系統的不同可能稍微小些。

m是小數縱位數,d是小數點後面的位數。如果m和d被省略,根據硬體允許的限制來儲存值。單精度浮點數精確到大約7位小數字。

如果指定unsigned,不允許負值。

使用浮點數可能會遇到意想不到的問題,因為在mysql中的所有計算用雙精度完成。

·         double[(m,d)] [unsigned] [zerofill]

普通大小(雙精度)浮點數。允許的值是-1.7976931348623157e+308到-2.2250738585072014e-308、0和2.2250738585072014e-308到 1.7976931348623157e+308。這些是理論限制,基於ieee標準。實際的範圍根據硬體或作業系統的不同可能稍微小些。

m是小數總位數,d是小數點後面的位數。如果m和d被省略,根據硬體允許的限制來儲存值。雙精度浮點數精確到大約15位小數字。

如果指定unsigned,不允許負值。

·         double precision[(m,d)] [unsigned] [zerofill], real[(m,d)] [unsigned] [zerofill]

為double的同義詞。除了:如果sql伺服器模式包括real_as_float選項,real是float的同義詞而不是double的同義詞。

·         float(p) [unsigned] [zerofill]

浮點數。p表示精度(以位數表示),但mysql只使用該值來確定是否結果列的資料型別為float或double。如果p為從0到24,資料型別變為沒有m或d值的float。如果p為從25到53,資料型別變為沒有m或d值的double。結果列範圍與本節前面描述的單精度float或雙精度double資料型別相同。

float(p)語法與odbc相容。

·         decimal[(m[,d])] [unsigned] [zerofill]

壓縮的「嚴格」定點數。m是小數字數(精度)的總數,d是小數點(標度)後面的位數。小數點和(負數)的『-』符號不包括在m中。如果d是0,則值沒有小數點或分數部分。decimal整數最大位數(m)為65。支援的十進位制數的最大位數(d)是30。如果d被省略, 預設是0。如果m被省略, 預設是10。

如果指定unsigned,不允許負值。

所有decimal列的基本計算(+,-,*,/)用65位精度完成。

·         dec[(m[,d])] [unsigned] [zerofill], numeric[(m[,d])] [unsigned] [zerofill], fixed[(m[,d])] [unsigned] [zerofill]

是decimal的同義詞。fixed同義詞適用於與其它伺服器的相容性。

修改Oracle表中字元 數值字段的長度

無資料 alter table tablename modify colname varchar2 40 alter table tablename modify colname number 20 有資料 alter table tablename modify colname varchar2 ...

《Scala機器學習》一一1 3 數值字段概述

雖然資料集的大多數列可能是類別 categorical 型別或複雜型別,但這裡還是要介紹一下數值資料。通常數值資料會有五種彙總方式,即中位值 均值 四分位數 最小值和最大值。spark執行中位數和四分位數會特別簡單,因此在介紹spark的dataframe時再來介紹這兩種彙總方式。下面是採用scal...

mysql數值字串型別的按照數值進行排序

1 2 3 order by 欄位名稱 0 desc asc的形式進行排序 親測有效 order by 欄位名稱 1 desc asc的形式進行排序 沒有進行測試 這樣mysql會將數值字串型別的資料當作數值進行處理,但是存在效率問題,不推薦使用varchar char型別來儲存數值,這樣會帶來不不...