【数据库】——MySQL支持的数据类型

一、数值类型

MySQL支持所有标准SQL中的数值类型,其中包括严格数值类型(INTEGER,SMALLINT,DECIMAL和NUMERIL),以及近似数值数据类型(FLOAT,REAL和DOUBLE PRECISION),并在此基础上扩展了很多。我们在此就不一一详细介绍,下面我们来讲述一些关于数值类型中需要注意的点。

1、zerofill——用“0”填充

(1)创建表ti,有id1和id2两个字段,指定其数值宽度分别为int和int(5).
在这里插入图片描述
(2)分别修改id1和id2的字段类型,加入zerofill参数
在这里插入图片描述
注意:**如果一个列指定是zerofill,则MySQL自动为该列添加unsigned属性。**所以当我们往id2中添加大于5个字节的数时,也不会报错。

2、小数的表示——float,double,decimal

我们知道小数的表示有两种方式,一个是浮点数的float(单精度)double(双精度),另一个是定点数的decimal.我们来讲讲他们的区别吧~
(1)创建测试表,分别将id1,id2,id3字段设置为float(5,2),double(5,2),decimal(5,2)
在这里插入图片描述
浮点数如果不写精度和标度,就会按照实际精度值显示,如果有精度和标度,则会自动将四舍五入后的结果插入,系统不会报错。定点数如果不写精度和标度,则按照默认值decimal(10,0)来进行操作,并且如果数据超越了精度和标度值,系统就会报错。
在这里插入图片描述

二、日期时间类型

1、data、time.datatime三种日期类型区别

在这里插入图片描述
用now()函数插入当前日期:
在这里插入图片描述

2、timestamp和datatime区别

1、前者支持的时间范围较小,其取值范围是从19700101080001到2038年的某个时间,但是后者范围更大
2、t
imestamp列自动设置为系统时间
,如果在一个imestamp列中插入NULL或者插入或更新一行但不明确给其赋值时,会自动设置该列的值为当前的日期和时间。当插入的值超出范围时,会认为其溢出,使用**“0000-00-00 00:00:00”进行填补。**
3、timestamp的插入和查询受当地时区影响,datatime只能反应出插入时当地的时区。
在这里插入图片描述

3、日期正确的插入格式

insert into t6 values('2006-9-3 12:10:10');
insert into t6 values('2006/9/3 12+10+10');
insert into t6 values('200693121010');
insert into t6 values(200693121010);

三、字符串类型

1、char和varchar

区别:char的长度固定为创建表时声明的长度,可以是0-255的任何值。varchar中的值为可变长字符串,长度为指定的值。
创建测试表,并定义两个字段v和c

在这里插入图片描述

2、binary和varbinary类型

binary和varbinary类似char和varchar,不同的是他们包含二进制字符串而不包含非二进制字符串。

3、enum和set类型

enum类型
在这里插入图片描述
set和enum类型区别:set类型一次可以选取多个成员,而enum则只能选一个。
在这里插入图片描述

发布了62 篇原创文章 · 获赞 7 · 访问量 2558

猜你喜欢

转载自blog.csdn.net/qq_43412060/article/details/104803196
今日推荐