MySQL數據類型

1、MySQL數據類型

·整型:

tinyint、INT、smallint、mediumint、bigint

int(21)和int(11)本質是無區別的,只有在補零顯示是有區別

create table t(a int(11) zerofill,b int(21) zerofill);

#zerofill表示補零

insert into t values(1,1);

select * from t;

·浮點型 ? ?

FLOAT(M,D) 單精度, DOUBLE(M,D)雙精度,double類型精度高于float,但是都會造成精度丟失,如:

create table t (id int,a float(7,4),b double(6,4));

insert into t (id ,a,b) values(1,123.12345,78.876598);

select * from t where id=1;

查詢結果如下

出現了四舍五入,精度丟失的情況,如果數據是和money有關的話,就有意思了

decimal ?高精度數據類型,decimal(M,N) M為總精度,N為小數點位數,1<M<254,0<N<60,存儲空間變長,

經驗總結

? ? ·存儲性別、省份、類型等分類信息時優先使用tinyint、enum

? ? ?·BIGINT存儲空間更大,int和bigint之間通常使用bigint

? ? ? ·交易等高精度數據時選擇decimal

·字符串型

char、varchar、text、blog、binary

char與varchar

? ? ·char和varchar的存儲單位都是字符

? ? ?字符與字節的區別

字節是計算機中表示數據的存儲單位,字符是一個符號,

char 存儲定長,容易造成空間的浪費

varchar存儲變長,可以節省存儲空間,用多少存多少

text與char、varchar的區別

·char和varchar的存儲單位為字符

·text存儲單位為字節,總大小為65535字節,約為64kb

·char數據類型最大為255字符

·varchar數據類型為變長存儲,可以存儲超過255字符

·text在數據庫內部大多存儲為溢出頁,效率不如char

blog、binary存儲圖片音頻,如頭像,

雖然可以,但是非常不推薦

經驗總結

·char與varchar定義的長度是字符長度不是字節長度

·存儲字符串推薦選擇使用varchar

·雖然數據庫可以存儲二進制數據,但性能低下,不要使用數據庫存儲文件音頻等二進制數據


·日期型

date、dateTime、Timestamp、Time、Year

時間類型的區別

·存儲空間的區別

date三字節,如:2015-05-01

time三字節,如: ? 11:12:00

TimeStamp四字節,如:2015-05-01 ?11:12:00

DateTime 八字節,如:2015-05-01? 11:12:00

·存儲精度的區別

Date精確到年月日

Time精確到小時分鐘秒

timestamp、DateTime都包含上述兩者

timestamp與DateTime區別

timestamp存儲范圍:1970-01-01 00:00:01 to 2038-01-19 03:14:07

DateTime存儲范圍:1000-01-01 00:00:00 to 9999-12-31 23:59:59

字段類型和時區的關系

timestamp會根據系統時區進行轉變,datetime不會

國際化系統使用timestamp,如:

create table t (a_datetime datetime,b_timestamp timestamp);

#插入當前系統時間

insert into t values(now(),now());

select * from t;


#重置系統時間

set time_zone= '+00:00';

select * from t;

#結果顯示timestamp類型的時間隨著時區改變而改變,

#改回系統時間

set time_zone='+08:00';

bigint 也可以存儲時間類型

bigint存儲時間時,需要應用程序,將時間轉為數字

經驗總結

date和Time類型精度交差

bigint類型一樣可以存儲時間

數據類型選擇,按需選擇

·其他數據類型:BINARY、VARBINARY、ENUM、SET、

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 本文基于MySQL5.6版本進行描述從大的方面來講,MySQL的數據類型分為4種 數值類型 日期和時間 字符串類型...
    黑哥兒666閱讀 772評論 0 0
  • sql 將數據類型分為三大類:數值類型,字符串,日期時間型 一、數值型: 數值大類:整數型和小數型 整數型 整數型...
    陳智濤閱讀 1,059評論 0 0
  • MySQL不同存儲引擎可能會有不同。下面的內容以InnoDB為主。 選擇數據類型的步驟 確定合適的大類型:數字、字...
    linjinhe閱讀 1,744評論 0 3
  • 所謂的數據類型:對數據進行統一的分類,從系統的 角度出發為了能夠使用統一的方式進行管理,更好的利用有限的空間;SQ...
    coder_hong閱讀 632評論 0 0
  • 太陽閉上眼睛 風,歇斯底里地狂吼 驚嚇了樹 掉了葉,斷了枝 變成一間劫后的房屋 地鐵關上車門 手,條件反射地活躍 ...
    仔萄閱讀 915評論 0 3