MySQL資料型別

2021-06-26 08:26:10 字數 3010 閱讀 5798

現在做的專案在用mysql,這裡總結一下mysql的資料型別。

1.整數

可選引數m表示查詢結果中資料列的最大顯示寬度,對取值沒有影響.

資料型別

範圍(有符號)

範圍(無符號)

儲存需求

tinyint(m)

-128~127(2^7-1)

0~255(2^8-1)

8位整數,佔1個位元組

smallint(m)

-32768~32767(2^15-1)

0~65535(2^16-1)

16位整數,佔2個位元組

mediumint(m)

-8388608~8388607(2^23-1)

0~16777215(2^24-1)

24位整數,佔3個位元組

int(m)

-2147483648~

2147483647(2^31-1)

0~4294967295(2^32-1)

32位整數,佔4個位元組

bigint(m)

-9223372036854775808~

9223372036854775807(2^63-1)

0~18446744073709551615

(2^64-1)

64位整數,佔8個位元組

2.浮點數

m是十進位制數的總個數(包括小數點後面數字的個數),d是小數點後面的數字個數,m>=d,引數m只顯示數值的顯示效果,對數值的精度沒有影響,引數d會對數值作四捨五入,比如float(6,2)或double(6,2),如果插入1111.1254,則會取值1111.13;如果插入1111.1244,則會取值1111.12;如果插入的數字在擷取小數後長度超過總長度m,比如插入11211.1254,則會出錯,插入的數字變成總長度為m、小數點後面位數為d的最大數字,也就是9999.99。

下面的範圍只是理論值,具體值與硬體或作業系統有關。

資料型別 範圍

說明float[(m,d)]

-3.402823466e+38  ~ -1.175494351e-38, 0,和1.175494351e-38 ~ 3.402823466e+38

8位精度,佔4個位元組

double[(m,d)]

-1.7976931348623157e+308  ~ - 2.2250738585072014e-308, 0,和2.2250738585072014e-308~  1.7976931348623157e+308

16位精度,佔8個位元組

3.定點數

資料型別 範圍

儲存需求

decimal[(m,d)]

m表示數字總個數,最大值是65,預設為0;

d表示小數點後面的數字總個數,最大值是30,預設為0;

以字串形式來存放定點數,m>=d,引數d會對數值作四捨五入,比如decimal(6,2),如果插入1111.1254,則會取值1111.13;

如果插入1111.1244,則會取值1111.12;

如果插入的數字在擷取小數後長度超過總長度m,比如插入11211.1254,則會出錯,插入的數字變成總長度為m、小數點後面位數為d的最大數字,也就是9999.99。

4.字串

資料型別 範圍

說明char(n)

最多2^8-1=255個字元

固定長度的字串

varchar(n)

最多2^16-1=65535個字元

可變長度的字串,varchar最大字元長度必須在宣告列時設定,超長的字串將在儲存時截斷。

tinytext

最多2^8-1=255個字元

可變長度的字串,不允許設定最大長度。

text

最多2^16-1=65535個字元

可變長度的字串,不允許設定最大長度。

mediumtext

最多2^24-1= 16777215個字元

可變長度的字串,不允許設定最大長度。

longtext

最多2^32-1= 4294967295個位元組,

可變長度的字串,不允許設定最大長度。

5.二進位制

資料型別 範圍

說明bit(n)

最多64位

存放二進位制資料,n是二進位制的位數.

tinyblob

最多2^8-1=255個位元組

可變長度二進位制資料

blob

最多2^16-1=65535個位元組

可變長度二進位制資料

mediumblob

最多2^24-1= 16777215個位元組

可變長度二進位制資料

longblob

最多2^32-1= 4294967295個位元組

可變長度二進位制資料

6.日期與時間

資料型別 範圍

說明date

1000-01-01~9999-12-31

佔3個位元組,格式是yyyy-mm-dd

datetime

1000-01-01  00:00:00

~9999-12-31  23:59:59

佔8個位元組,格式是yyyy-mm-dd hh:mm:ss

timestamp

1970-01-01  00:00:00 ~ 2037

佔4個位元組,格式是yyyy-mm-dd hh:mm:ss;

不要選用timestamp資料列來儲存「真正的」日期/時間資料,那麼做的最佳選擇是datetime資料型別。

time

-838:59:59 ~  838:59:59

佔3個位元組,格式是hh:mm:ss

year

1901 ~ 2155

佔1個位元組,格式是yyyy

7.集合

資料型別 範圍

說明enum

最多65535個成員

字串的排列集合。

set最多255個成員

字串的組合集合,不贊成使用enum或set作為資料型別,因為不方便資料遷移。

mysql資料型別用法 mysql資料型別和用法

歡迎進入linux社群論壇,與200萬技術人員互動交流 進入 mysql支援多種列型別 數值型別 日期 時間型別和字串 字元 型別。本章首先對這些列型別進行了概述,然後更加詳細地描述了各種列的型別,以及列型別儲存需求的總結。概述很簡單。關於具體列型別 歡迎進入linux社群論壇,與200萬技術人員互...

mysql 資料型別 真假 MySQL 資料型別

mysql基礎 資料型別 整型型別 根據所儲存的整數數值取值範圍不同,可分為以下五類 1 tinyint佔1個位元組 2 smallint佔2個位元組 3 mediumint 佔3個位元組 4 int佔4個位元組 5 bigint佔8個位元組 根據每種型別所佔的位元組數可確定其無符號整數和有符號整數...

mysql 郵箱 資料型別 mysql 資料型別

1 整型mysql資料型別含義 有符號 tinyint m 1個位元組 範圍 128 127 smallint m 2個位元組 範圍 32768 32767 mediumint m 3個位元組 範圍 8388608 8388607 int m 4個位元組 範圍 2147483648 21474836...