7-29 703 views
一、数值型
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
混合日期和时间值,时间戳