MySQL–数据类型

导读:本篇文章讲解 MySQL–数据类型,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

 整型

MySQL数据类型 含义(有符号) 用途
tinyint(m) 1个字节 范围(-128~127) 小整数值
smallint(m) 2个字节 范围(-32768~32767) 大整数值
mediumint(m) 3个字节 范围(-8388608~8388607) 大整数值
int(m) 4个字节 范围(-2147483648~2147483647) 大整数值
bigint(m) 8个字节 范围(+-9.22*10的18次方) 极大整数值

取值范围如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围为(0~256)。 int(m)里的m是表示SELECT查询结果集中的显示宽度,并不影响实际的取值范围,没有影响到显示的宽度

 

浮点型

MySQL数据类型 含义
float(m,d) 单精度浮点型 8位精度(4字节) m总个数,d小数位
double(m,d) 双精度浮点型 16位精度(8字节) m总个数,d小数位

M参数称为精度,是数据的总长度,小数点不占位置。D参数成为标度,是指小数点后面的长度是D。

举个例子:float(6,2)的含义数据是float型,数据长度是6,小数点后保留2位。所以,1234.56是符合要求的。

定点数

浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。

MySQL数据类型 含义
decimal(m, d) M为总数,D为小数,M必须大于D 大浮点数,30位小数

 

字符串

MySQL数据类型 含义 用途
char(n) 固定长度,最多255个字符 定长字符串
varchar(n) 可变长度,最多65535个字符 变长字符串
tinytext 可变长度,最多255个字符 短文本字符串
text 可变长度,最多65535个字符 长文本数据
mediumtext 可变长度,最多2的24次方-1个字符 中等长度文本数据
longtext 可变长度,最多2的32次方-1个字符 极大文本数据

char和varchar:

  • CHAR的长度是不可变的

    定义一个CHAR[10],不管存入几个字符都会占10个字节。比如存进去的是‘ABCD’, 那么CHAR所占的长度依然为10,除了字符‘ABCD’外,后面的全部用空格补齐。查询时通过trim()去掉多余的空格,而VARCHAR类型是不需要的。

  • VARCHAR的长度是可变的。

    定义一个VARCHAR[10],存进去的是‘ABCD’, 那么CHAR所占的长度只是4。

  • CHAR的存取速度要比VARCHAR快得多,因为其长度固定,方便程序的存储与查找;但是CHAR为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可以说是以空间换取时间效率,而VARCHAR则是以空间效率为首位的。

 

varchar和text:

  • varchar可指定n,text不能指定,内部存储varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),text是实际字符数+2个字节。

  • text类型不能有默认值。

  • varchar可直接创建索引,text创建索引要指定前多少个字符。varchar查询速度快于text,在都创建索引的情况下,text的索引似乎不起作用。

 

二进制数据

MySQL数据类型 含义 用途
tinyblob 最多255个字符 二进制字符串
blob 最多65535个字符 二进制形式的长文本数据
mediumblob 最多16777215个字符 二进制形式的中等长度文本数据
longbolob 最多4294967295个字符 二进制形式的极大文本数据

blob类型 blob类型是一种特殊的二进制类型。blob可以用来保存数据量很大的二进制数据,如图片等。blob类型包括tinyblob,blob,mediumblob,longblob。这几种blob类型最大的区别就是能够保存的最大长度不同。longblob的长度最大,tinyblob的长度最小。blob类型与text类型很类似,不同点在于blob类型用于存储二进制数据,blob类型数据是根据其二进制编码进行比较和排序的,而text类型是文本模式进行比较和排序的。

blob类型主要==用来存储图片,PDF文档==等二进制文件,通常情况下,可以将图片,PDF文档都可以==存储在文件系统中==,然后==在数据库中存储这些文件的路径==,这种方式存储比直接存储在数据库中简单,但是访问速度比存储在数据库中慢。

 

日期时间类型

MySQL数据类型 含义
date 日期 ‘2008-12-2’
time 时间 ’12:25:36′
datetime 日期时间 ‘2008-12-2 22:06:44’
timestamp 自动存储记录修改时间

若定义一个字段为timestamp,这个字段里的时间数据会随其他字段修改的时候自动刷新,所以这个数据类型的字段可以存放这条记录最后被修改的时间。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/114925.html

(0)
Java光头强的头像Java光头强

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!