MySQL 的數(shù)據(jù)類型有大概可以分為 5 種,分別是:
MySQL 主要提供的整數(shù)類型有 TINYINT、 SMALLINT、 MEDIUMINT、 INT、 BIGINT,其屬性字段可以添加 AUTO_INCREMENT 自增約束條件。
類型名稱 | 說(shuō)明 | 存儲(chǔ)需求 |
---|---|---|
TINYINT | 很小的整數(shù) | 1個(gè)字節(jié) |
SMALLINT | 小的整數(shù) | 2個(gè)宇節(jié) |
MEDIUMINT | 中等大小的整數(shù) | 3個(gè)字節(jié) |
INT (INTEGHR) | 普通大小的整數(shù) | 4個(gè)字節(jié) |
BIGINT | 大整數(shù) | 8個(gè)字節(jié) |
不同的整數(shù)類型有不同的取值范圍,并且需要不同的存儲(chǔ)空間,因此應(yīng)根據(jù)實(shí)際需要選擇最合適的類型,這樣有利于提高查詢的效率和節(jié)省存儲(chǔ)空間。
類型名稱 | 說(shuō)明 | 存儲(chǔ)需求 |
---|---|---|
TINYINT | -128?127 | 0 ?255 |
SMALLINT | -32768?32767 | 0?65535 |
MEDIUMINT | -8388608?8388607 | 0?16777215 |
INT (INTEGER) | -2147483648?2147483647 | 0?4294967295 |
BIGINT | -9223372036854775808?9223372036854775807 | 0?18446744073709551615 |
MySQL 中使用浮點(diǎn)數(shù)和定點(diǎn)數(shù)來(lái)表示小數(shù)。浮點(diǎn)類型有兩種,分別是單精度浮點(diǎn)數(shù)( FLOAT)和雙精度浮點(diǎn)數(shù)( DOUBLE);定點(diǎn)類型只有一種 DECIMAL。
浮點(diǎn)類型和定點(diǎn)類型都可以用 (M, D)
來(lái)表示,其中 M
稱為精度,表示總共的位數(shù); D
稱為標(biāo)度,表示小數(shù)的位數(shù)。
浮點(diǎn)數(shù)類型的取值范圍為 M(1~255)和 D(1~30,且不能大于 M-2),分別表示顯示寬度和小數(shù)位數(shù)。M 和 D 在 FLOAT 和DOUBLE 中是可選的,F(xiàn)LOAT 和 DOUBLE 類型將被保存為硬件所支持的最大精度。DECIMAL 的默認(rèn) D 值為 0、M 值為 10。
類型名稱 | 說(shuō)明 | 存儲(chǔ)需求 |
---|---|---|
FLOAT | 單精度浮點(diǎn)數(shù) | 4 個(gè)字節(jié) |
DOUBLE | 雙精度浮點(diǎn)數(shù) | 8 個(gè)字節(jié) |
DECIMAL (M, D),DEC | 壓縮的“嚴(yán)格”定點(diǎn)數(shù) | M+2 個(gè)字節(jié) |
MySQL 中表示日期的數(shù)據(jù)類型:YEAR、 TIME、 DATE、 DTAETIME、 TIMESTAMP
類型名稱 | 日期格式 | 日期范圍 | 存儲(chǔ)需求 |
---|---|---|---|
YEAR | YYYY | 1901 ~ 2155 | 1 個(gè)字節(jié) |
TIME | HH:MM:SS | -838:59:59 ~ 838:59:59 | 3 個(gè)字節(jié) |
DATE | YYYY-MM-DD | 1000-01-01 ~ 9999-12-3 | 3 個(gè)字節(jié) |
DATETIME | YYYY-MM-DD HH:MM:SS | 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 | 8 個(gè)字節(jié) |
TIMESTAMP | YYYY-MM-DD HH:MM:SS | 1980-01-01 00:00:01 UTC ~ 2040-01-19 03:14:07 UTC | 4 個(gè)字節(jié) |
MySQL 中的字符串類型有 CHAR、 VARCHAR、 TINYTEXT、 TEXT、 MEDIUMTEXT、 LONGTEXT、 ENUM、 SET 等。
類型名稱 | 說(shuō)明 | 存儲(chǔ)需求 |
---|---|---|
CHAR(M) | 固定長(zhǎng)度非二進(jìn)制字符串 | M 字節(jié),1<=M<=255 |
VARCHAR(M) | 變長(zhǎng)非二進(jìn)制字符串 | L+1字節(jié),在此,L< = M和 1<=M<=255 |
TINYTEXT | 非常小的非二進(jìn)制字符串 | L+1字節(jié),在此,L<2^8 |
TEXT | 小的非二進(jìn)制字符串 | L+2字節(jié),在此,L<2^16 |
MEDIUMTEXT | 中等大小的非二進(jìn)制字符串 | L+3字節(jié),在此,L<2^24 |
LONGTEXT | 大的非二進(jìn)制字符串 | L+4字節(jié),在此,L<2^32 |
ENUM | 枚舉類型,只能有一個(gè)枚舉字符串值 | 1或2個(gè)字節(jié),取決于枚舉值的數(shù)目 (最大值為65535) |
SET | 一個(gè)設(shè)置,字符串對(duì)象可以有零個(gè)或 多個(gè)SET成員 | 1、2、3、4或8個(gè)字節(jié),取決于集合 成員的數(shù)量(最多64個(gè)成員) |
M
表示可以為其指定長(zhǎng)度。
TEXT 類型分為 4 種:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。
ENUM 是一個(gè)字符串對(duì)象,值為表創(chuàng)建時(shí)列規(guī)定中枚舉的一列值。
值 | 索引 |
---|---|
NULL | NULL |
zero | 0 |
first | 1 |
second | 2 |
third | 3 |
SET 是一個(gè)字符串的對(duì)象,可以有零或多個(gè)值,最多可以有 64 個(gè)成員,各成員之間用逗號(hào) ,
隔開(kāi)。列值有重復(fù),自動(dòng)刪除。
MySQL 中的二進(jìn)制字符串有 BIT、 BINARY、 VARBINARY、 TINYBLOB、 BLOB、 MEDIUMBLOB 和 LONGBLOB。
類型名稱 | 說(shuō)明 | 存儲(chǔ)需求 |
---|---|---|
BIT(M) | 位字段類型 | 大約 (M+7)/8 字節(jié) |
BINARY(M) | 固定長(zhǎng)度二進(jìn)制字符串 | M 字節(jié) |
VARBINARY (M) | 可變長(zhǎng)度二進(jìn)制字符串 | M+1 字節(jié) |
TINYBLOB (M) | 非常小的BLOB | L+1 字節(jié),在此,L<2^8 |
BLOB (M) | 小 BLOB | L+2 字節(jié),在此,L<2^16 |
MEDIUMBLOB (M) | 中等大小的BLOB | L+3 字節(jié),在此,L<2^24 |
LONGBLOB (M) | 非常大的BLOB | L+4 字節(jié),在此,L<2^32 |
M
表示指定長(zhǎng)度。
位字段類型。范圍為 1~64。
BINARY 和 VARBINARY 類型類似于 CHAR 和 VARCHAR,不同的是它們包含二進(jìn)制字節(jié)字符串。
BLOB 是一個(gè)二進(jìn)制的對(duì)象,用來(lái)存儲(chǔ)可變數(shù)量的數(shù)據(jù)。BLOB 類型分為 4 種:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。
數(shù)據(jù)類型 | 存儲(chǔ)范圍 |
---|---|
TINYBLOB | 最大長(zhǎng)度為255 (28-1)字節(jié) |
BLOB | 最大長(zhǎng)度為65535 (216-1)字節(jié) |
MEDIUMBLOB | 最大長(zhǎng)度為16777215 (224-1)字節(jié) |
LONGBLOB | 最大長(zhǎng)度為4294967295或4GB (231-1)字節(jié) |
更多建議: