MySQL数据类型

4.1、 MySQL数据类型
数据类型是数据的一种属性,其可以决定数据的存储格式,有效范围和相应的限制。mysql的数据类型包括整数类型(int),浮点数类型,日期和时间类型,字符串类型(char)和二进制类型。
4.2、 为什么定义数据类型?为什么要数据分类?
1、使系统能够根据数据类型来操作数据。
2、预防数据运算时出错。
例:通过强大的数据分类把每个类型与特定的行为联系在一起,执行这些行为时,数据分类可以预防错误。最长见的错误是字符与数字相加。
3、更有效的利用空间。数据分类,可以使用最少的存储来存放数据,同时提高性能。
4.3、 数据类型解释
MySQL中定义数据字段的类型对你数据库的优化是非常重要的。
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
int 类型修饰符
unsigned 无符号整数,不可以用负数,增大这个字段的支持的范围
zerofill 可以使用负数,但是会减小字段的支持范围
int(M) 在 integer 数据类型中,M 表示最大显示宽度。
在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。其实,除了显示给用户的方式有点不同外,int(M) 跟 int 数据类型是相同的
浮点型数据类型(小数)
double:双精度浮点型,占字节数为8,用64位二进制描述,有符号是15个有效位,无符号是16个有效位
decimal:数字型,用128位二进制描述,不存在精度损失,常用于银行帐目计算。(28个有效位)
精度是指计算机表达小数近似值的一种方式,单精度32位二进制,4个字节;双精度64位二进制,8个字节。float数值类型
float(m,n) :表示此字段有效位数为m位,小数点后面n位数字,小数点后超过1位,mysql自动四舍五入
decimal double 要比float存储小数更精确。
char varchar
char 后面括号中必须要数值,来确认字符串的范围。大小范围:0-255.
char(10);指定了一个长度为10的字符串。超过长度会自动报错
varchar:字符串可变长 长度支持到65535,超过长度自动报错,最大支持长度65535
4.11.8、 char和varchar区别
CHAR(M)定义的列的长度为固定的,M取值可以为0~255之间,当保存CHAR值时,在它们的右边填充空格以达到指定的长度。当检索到CHAR值时,尾部的空格被删除掉。
VARCHAR(M)定义的列的长度为可变长字符串,M取值可以为0~65535之间。
VARCHAR值保存时只保存需要的字符数,另加一个字节来记录长度(如果列声明的长度超过255,则使用两个字节)。VARCHAR值保存时不进行填充。
varchar存储变长数据,但存储效率没有CHAR高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么"+1"呢?这一个字节用于保存实际使用了多大的长度。
从空间上考虑,用varchar合适;从效率上考虑,用char合适。
1、VARCHAR型字段比CHAR型字段占用更少的内存和硬盘空间。当你的数据库很大时,这种内存和磁盘空间的节省会变得非常重要.
2、虽然VARCHAR使用起来较为灵活,但是从整个系统的性能角度来说,CHAR数据类型的处理速度更快,有时甚至可以超出VARCHAR处理速度的50%。
所以在设计数据库时应当综合考虑各方面的因素,以求达到最佳的平衡。
date 日期
time 时间
year 年
datatime 能保存的最大范围的值为1001年到9999年,精度为秒,它把日期和时间封装到格式为YYYY-MM-DD HH:MM:SS的整数中,与时区无关,使用8个字节的存储空间。
timestamp类型保存了从1970年1月1日(格林尼治时间)以来的秒数,它和linux的时间戳相同,只是用了4个字节的存储空间,因此它的范围比datetime的范围小了很多,只能表示从1970年到2038年,我们可以使用它提高空间利用率。
复合类型
枚举 enum(‘m’,‘n’)m或n 必须选一个 选其他的报错
set 可以取多个,不可以写重复选项

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值