欢迎光临散文网 会员登陆 & 注册

数据类型

2021-09-09 08:45 作者:海鸥之道  | 我要投稿


1、整型

有无符号:

create table t1(x tinyint)    超过范围会自动变成 -128/127 ,不会报错

create table t2(x tinyint unsigned)

指定字节宽度:

create table t3(id int(1) unsigned)  对于整型 后面的宽度并不是存储宽度,而是显示宽度

整型的宽度已经写死,不能变

create table t5(id int(5) unsigned zerofill);

insert into t5 value(1);

select * from t5;

超过5个, 这个限制就失效了,全部显示,不超过会补0

create table t6(id int unsigned);

desc t6;

发现不指定显大小,默认为10;

create table t7(id int );

默认11 多了一个负号

所以说整型类型的不用指定宽度,用默认宽度最合理。

2、浮点型

浮点类型; float   double

float[(M,D)][unsigned][zerofill]

定义: 单精度浮点数(非准确小数值),m是数字总个数,d是小数点后个数,m最大值为255,d最大值为30

有符号: -3.402823466E+38 to -1.175494351E-38,

无符号:1.175494351E-38 to 3.402823466E+38

精确度:

随着小数的增多,精确度变得不准确

double[(M,D)][unsigned][zerofill]

定义: 双精度浮点数(非准确小数值),m是数字总个数,d是小数点后个数,m最大值为255,d最大值为30

有符号: -1.7976931348623157E+308 to -2.2250738585072014E-308

有符号: 2.2250738585072014E-308 to 1.7976931348623157E+308

精确度:

随着小数的增多,精度比float要高,但也会变得不准确

decimal[(m[,d])][unsigned][zerofill]

定义: 准确的小数值,m时数字总个数(负号不算),d是小数点后个数,m最大值为65,d最大值为30.

精确度:

随着小数的增多,精度始终准确

对于精确数值计算时需要用此类型

decalmal:定点数类型

能够存储精确值的原因在于其内部按照字符串存储

3、日期类型

  • now()是年月日 时分秒 完整时间,根据需求截取。

  • year类型 只截取 年

  • date类型截取年月日

  • time类型 截取完整时间

datetime 与timestamp的区别

1)、datetime的日期范围时1001-9999年,timestamp的日期范围是1970-2038年

2)、datetime存储时间与时区无关,timestamp存储时间与时区有关,显示的值也依赖于时区,在mysql服务器操作系统以及客户端都有时区的设置。

3)、datetime使用8字节的存储空间,timestamp的存储空间为4个字节,因此,timestamp比datetime的空间利用率更高。

4)、datetime的默认值为NULL;timestamp的字段默认不为空,默认值为当前时间,如果不做特殊处理,并且update语句中乜有指定该列的更新值,则默认更新为当前时间。

实例:

查看表:

4、枚举与集合类型

字段的值只能在给定的范围中选择,如单选框,多选框

enum单选只能在给定的范围内选一个值,如性别sex 男male/女female

set多选 在给定的范围内可以选择一个或以上

执行效果:


数据类型的评论 (共 条)

分享到微博请遵守国家法律