列的数据类型
一、数字数据类型
1、整数类型
类型 存储空间/字节 有符号范围 无符号范围
tinyint 1 -128~127 0~255
samllint 2 -32768~32767 0~65535
mediumint 3 -8388608~8388607 0~16777215
int(integer) 4 -2147483648~2147483674 0~4294976295
bigint 8 -9223372036854775808~923372036854775807 0~18446744073709551615
语法格式:int[(m) [unsigned] [zerofill]]
(1)m,指定数据的显示宽度。例int(5),当数值宽度小于5位时,在数字前填满宽度,如不指定宽度,默认位int(11)。
(2)[unsigned],指定数据为无符号数据
(3)[zerofill],在数字位数不够时用0填充,一般配合unsigned使用
CREATE TABLE t1(
id1 int,
id2 int(5),
id3 int ZEROFILL,
id4 int(5)ZEROFILL
);
2、浮点数类型、定点数和位类型
浮点数类型
类型 存储空间/字节 范围
float(m,d) 4 1.175494351E-38 3.402823466E+38
double(m,d) 8 2.2250738585072014E-308 1.7976931348623157E+308
m表示显示的位数,d表示小数点后的位数,在不指定精度时,默认按照实际精度显示。
范例:float(7,4) 999.9999
3、定点数类型(了解)
类型 存储空间/字节 描述
dec/decimal(m,d) M+2 最大值与double相同,给定decimal的有效范围由m,d决定
在不指定精度时,整数位为10,小数位为0
4、位类型(了解)
类似与boolean,只有true和false,0和1
类型 存储空间/字节 最小值 最大值
bit(m) 1~8 bit(1) bit(8)
m的范围为1-64,默认值为1
二、日期和时间类型
类型 存储空间/字节 最小值 最大值 说明
date 4 1000-01-01 9999-12-31 年月日yyyy-dd-mm
time 8 1000-01-01 00:00:00 9999-12-31 23:59:59 时分秒hh:mm:ss
datetime 4 19700101080001 2038年的某一时刻 年月日时分秒
timestamp 3 -838:59:59 838:59:59 用于更新当前系统时间
year[2|4] 1 1901 2155 年份
year默认为四位,允许的值1901~2155和0000;两位格式中,允许的值为70~69(1970~2069)
timestamp,是yyyy-mm-dd hh:mm:ss字符串。显示宽度固定为19,如想获得字符值,则需在前面添加0。
三、字符串类型
1、char和varchar
类型 存储空间/字节 说明
char[(m)] m 固定长度的字符串数据,长度为m字节,m取值0~255
varchar[(m)] 1~m+1 可变长度的字符串数据,长度为m字节,m取值0~65535
char无论用户输入多少(<=m),长度均为m,varchar则为实际长度
2、text和blob字符串
类型 说明
tinytext 允许长度0~255字节,占用字符串长度+2字节
text 允许长度0~65535字节,占用字符串长度+2字节
mediumtext 允许长度0~167772150字节,占用字符串长度+3字节
longtext 允许长度0~4294967295字节,占用字符串长度+4字节
tinyblob 允许长度0~255字节,占用字符串长度+2字节
blob 允许长度0~65535字节,占用字符串长度+2字节
mediumblob 允许长度0~167772150字节,占用字符串长度+3字节
longblob 允许长度0~4294967295字节,占用字符串长度+4字节
blob大文件类型,text大文本类型
3、binary字符串,二进制数据类型
类型 存储空间/字节 说明
binary[(m)] m 允许长度为0~m字节的定长字节字符串
varbinary[(m)] m 允许长度为0~m字节的定长字节字符串,占用长度+1字节
4、enum和set字符串类型,存储字符串对象
类型 存储空间/字节
enum() 1或2字节,取决于枚举值得个数(最多65535个值)
set() 1/2/3/4/8字节,取决于set成员的个数(最多64个成员)