MySQL ------ 数据类型(datatype)(三十一)
数据类型:定义列中可以存储什么数据以及数据实际怎样存储的基本规则。
数据类型用于以下目的:
1、允许限制可存储在列中数据。列如,数值类型的列只能接受数值
2、允许在内部更有效地存储数据。可以用一种比文本串更简洁的格式存储数值和日期时间值。
3、允许变换排序顺序。如果所有数据都作为串处理,则1位于10之前,而10 又位于2之前(串以字典的顺序排序,从左边开始比较,一次一个字符)作为数值数据类型,数值才能正确的排序。
在设计表时,应该重视所用的数据类型,使用错误的数据类型可能会严重地影响应用程序的功能和性能。更改包含数据的列不是一件小事(而且这样做可能会导致数据丢失)
one、串数据类型
最常用的数据类型就是串数据类型,他们存储串,如名字、地址、电话号码邮政编码等
主要分为定长串和变长串:
定长串接受长度固定的字符串,其长度是在创建表时指定的。定长列不允许多余指定的字符数目。它们分配的存储空间与指定的一样多
变长串存储可变长度的文本,有些变长数据类型具有最大的定长,而有些则是完全变长的。不管哪种只有指定的数据得到保存text属于变长串类型
虽然变长串比定长串要灵活好用,但是MySQL处理定长列远比处理变长列要快的多,而且MySQL不允许对变长列进行索引,使用的话也会极大的影响性能
注意;
1、不管使用何种形式的串类型数据,串值都必须括在引号内
2、虽然电话号码和邮政编码应该存储在数值字段中,但是要考虑实际情况如果数值中存储邮政编码为01234,保存的将是1234,这是不对的,
需要遵守的基本规则是:如果数值是计算(求和、平均等)中使用的数值,则应该存储在数据数据类型中。如果作为字符串使用(可能都是数字),则应该保存在串数据类型列中。
3、char 类型适合 存储少量字符串类型,varchar类型长度是可变的,当字符串的长度经常变化时,为 节约空间可使用varchar类型,其长度范围是0~65535,tinytext 和text类型可用来存储文章内容等纯文本信息
two、数值数据类型
数值数据类型存储数值,MySQL支持多种数值数据类型,每种存储的数值具有不同的取值范围。显然支持的取值范围越大,所需存储空间越多。此外,有的数值数据类型支持使用十进制小数点(和小数)。而有的只支持使用整数
注意:
1、所有数值数据类型(除bit 和 boolean外)都可以有符号或无符号,有的符号数值列可以存储正或负的数值,无符号的数值列只能存储正数。默认情况为有符号,但如果你知道自己不需要存储数值,可以使用 UNSIGNED 关键字,这样做将允许存储两倍大小的值。
2、与串不一样,数值不应该括在引号内,如果存储的数据超过该类型的取值范围,则插入的值 被截断把那个显示警告信息 。
3、float 和 double 称为 浮点数类型,decimal 称为定数类型,都可以存储含小数位数据。但是float和double 存储的事近似值,对数据的精度要求非常高,如果存储货币的数据类型,一般情况使用 decimal(8,2)
three、日期和时间数据类型
MySQL使用专门的数据类型来存储日期和时间值
注意:Mysql允许不严格的语法,任何标点符号都可以用作日期部分之间的间隔符,如表中的date类型,20-30-30,20/30/30,20@30@30的表述都是等价的
four、二进制数据类型
二进制数据类型可以存储任何数据(甚至二进制信息),如图像、多媒体、字处理文档等
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· 本地部署 DeepSeek:小白也能轻松搞定!
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 从 Windows Forms 到微服务的经验教训
· 李飞飞的50美金比肩DeepSeek把CEO忽悠瘸了,倒霉的却是程序员
· 超详细,DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方Dee