您的位置:首页 > 数据库 > MySQL

MySQL_整型、字符、浮点、时间类型

2017-08-17 14:59 381 查看
1. 整形

类型占用空间范围
Tinyint1字节-128~127
Smallint2字节-2^15~2^15-1
Mediumint3个字节-2^23~2^23-1
Int4个字节-2^31~2^31-1
Bigint8字节-2^63~2^63-1


整形列的可选属性:

属性名称属性作用
M宽度(在zerofull的时候才有意义)
unsigned无符号的(非负数)
zerofull0填充(默认无符号)
not null不为空
default X默认值为X


2. 浮点型/定点型

 浮点型的声明:float(M,D),其中国M为精度,是总位数(不包含点),而D为标度,表示小数位的长度。

 定点型:decimal比float更精准。

3. 字符型

类型说明典型声明方式
char定长字符串char(M),M代表宽度,即可容纳的字符数
varchar变长字符串varcahr(M),M代表宽度,即可容纳的字符数
text文本串text(不用加默认值)


注意:text是文本类型,可以存较大的文本段,搜索速度稍慢。因此,如果不是特别大的内容,建议用char或varchar来代替。

char(M)和varchar(M)的区别?

char(M)占位固定为M,如果你存储N(N<M)个字符,实际内存占位也为M,存储内容不足M个时,后面用空格补齐,取的时候,去掉后面的空格。利用率N/M<=100%,速度上比较快。

而varchar(M)是可变型的字符串,如果你存储了N(N<M)个字符,实际内存占位为N+(1~2)字节。这(1~2)字节是用来开销记录字符串字符数。利用率N/(N+1~2)<100%,速度上比较慢。

4. 日期时间类型

类型说明典型输入格式
Year占1字节,表示1901-2155年。[0000,表示错误时的选择]仅仅代表年份
Date表示范围为:1000-01-01 ~ 9999-12-311990-10-10
Time表示范围为:-838:59:59 ~ 838:59:59hh:mm:ss
DateTime表示范围为:1000-01-01 00:00:00 ~ 9999-12-31 23:59:591989-05-06 14:30:00
<1> Year类型的数据,如果输入的是两位数,那么"0-69"表示2000-2069年,如果是70-99,则代表
的是1970-1999年。为了不记错,最好输入4位数表示。

<2> 在开发中很少用日期时间类型来表示一个需要精确到秒的列。原因:虽然日期时间类型能够精确到
秒,但是不方便比较。我们经常使用时间戳来表示。


时间戳:

 一般时间戳都是用int来存储,表示1970-01-01 00:00:00到当前的秒数,比较方便运算。时间戳可以通过方法转换成yyyy-MM-dd HH:mm:ss的形式。

5. 枚举类型

 表示输入的值只能是枚举里面的某个数值,比如拿性别来说在创建表的时候,
sex enum('男','女')
。那么我们输入的只能是男或女中的一个。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息