一、数值型

1、整型

                   类型                字节            范围(有符号)         范围(无符号)            用途 

TINYINT           1字节          (-2^7+1 ,2^7-1)               (0,2^8)                  小整数值

SMALLINT          2字节        (-2^15+1 ,2^15-1)           (0,2^16)                 大整数值

MEDIUMINT       3字节        (-2^23+1 ,2^23-1)           (0,2^24)                大整数值

INT或INTEGER    4字节        (-2^31+1 ,2^31-1)           (0,2^32)                大整数值

BIGINT             8字节        (-2^63+1 ,2^63-1)           (0,2^64)              极大整数值

2、浮点型

FLOAT(M,D)          4字节      单精度浮点数值

DOUBLE(M,D)         8字节       双精度浮点数值     M是总位数,D是小数点后面的位数。

DECIMAL(P[,S])      精度比float、double更高,适合存储货币等要求精确的数字。默认为p=10,s=0

 

3、修饰符

unsigned:无符号,列的值从0开始,不为负。(默认属性)

zer0fill:用0填充至固定宽度,适合用于学号、编码等。

 

二、字符串类型

1、MySQL 提供了8个基本的字符串类型,分别:CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM 和SET等多种字符串类型。

              字符串类型     字节大小         描述及存储需求

CHAR(M)         0-2^8-1字节         定长字符串 ,0<=m<=2^8-1,若内容右侧有空格将丢失

VARCHAR(M)      0-2^16-1字节          变长字符串 ,0<=m<=2^16-1

TINYBLOB     0-2^8-1字节        不超过 255 个字符的二进制字符串

BLOB           0-2^16-1字节      二进制形式的长文本数据

MEDIUMBLOB   0-2^32-1字节      二进制形式的中等长度文本数据

LOGNGBLOB    0-2^64-1字节     二进制形式的极大文本数据

TINYTEXT     0-2^8-1字节        短文本字符串

TEXT           0-2^16-1字节      长文本数据

MEDIUMTEXT   0-2^32-1字节      中等长度文本数据

LONGTEXT      0-2^64-1字节     极大文本数据

BINARY(M)                                      允许长度0-M个字节的定长字节符串

VARBINARY(M)                                 允许长度0-M个字节的定长字节符串,值的长度+1个字节

ENUM('VALUE1','VALUE2',''VALUE3'',...)       只能有其中一个值

SET('VALUE1','VALUE2',...)         可以有零个或多个值

2、CHAR与VARCHAR

前者的速度会比较快,如果相差不大的话,尽量选择CHAR;

都可用BINARY修饰,以二进制方式参于运算,而不是以传统的区分大小写的方式。

3、TEXT 和 BLOB

主要用于存储文本块或图像、声音文件等二进制数据类型;

BLOB 类型区分大小写,而 TEXT 不区分大小写;

大小修饰符不用于各种 BLOB 和 TEXT 子类型。

三、时间日期型

  类型     大小(字节)          范围                                  格式                   用途 

DATE         4        1000-01-01/9999-12-31    YYYY-MM-DD        日期值

TIME         3        '-838:59:59'/'838:59:59'         HH:MM:SS     时间值或持续时间

YEAR         1                    1901/2155                          YYYY                年份值

DATETIME   8    1000-01-01 00:00:00/9999-12-31 23:59:59      YYYY-MM-DD HH:MM:SS

混合日期和时间值

TIMESTAMP  4    1970-01-01 00:00:00/2037 年某时     YYYYMMDD HHMMSS

混合日期和时间值,时间戳

 

欢迎留言