MySQL数据类型详解
来源:互联网 发布:2017最新seo 编辑:程序博客网 时间:2024/06/09 17:08
1,整数类型
2,实数类型
3,字符串类型
varchar
定长,根据定义时的长度分配足够的空间。存储时会删除末尾的空格。
比较适合存储长度接近或很短的字符串,如:密码的MD5值。
varchar虽然是边长存储的,但是内存一般会分配固定内存块来存储临时表等内部值,利用磁盘临时表进行排序时也一样,所以尽量分配真正需要的空间。
binary和varbinary
和var及varchar类型,但存储的是二进制的字符串
blob和text
都是为存储很大数据的字符串类型,分别使用二进制和字符方式存储。
blob家族:tinyblob,smallblob,blob,mediumblob,longblob分别于text家族对应
text家族:tinytext,smalltext,text,mediumtext,longtext
与其他类型不同,MySQL把blob和text当做独立对象处理,当存储数据太大,innoDB会使用专门的外部区域来存储,此时每个值在行内需要一个1~4字节的
值来指向外部的存储区域。
enum
枚举,只能存入预定的一些字符串,实际列值是整数,通过在.frm文件做整数和string映射,
当使用varchar进行两张表的关联时,如果列值为一些比较固定的值,可以将varchar列改成enum,然后进行关联会更快,因为enum列实际上存储的是整数类型
值,进行检索会更快(无需字符检验等额外开销)。
4,日期和时间类型
MySQL提供多种存储日期和时间的类型,如:year,date,datetime,timestamp。
datetime和timestamp类似,但是也有区别:
datetime使用8字节存储,与时区无关,范围更大从1001到9999年,精度为秒
timestamp使用4字节存储,与时区有关,范围小从1970到2038年,精度为秒
MySQL提供unix_timestamp把日期转换为unix时间戳,from_unixtime把时间戳转换为日期。
5,位数据类型(极少用)
bit
bit(M),M为位数
set
tinyint: 8bit
smallint: 16bit
mediumint: 24bit
int: 32bit
bigint: 64bit
它们可以存储从-2^(n-1)到2^(n-1)-1的数,n是位数。
整数类型有可选的unsigned属性,表示正整数,这可以使整数的上限提高一倍。2,实数类型
decimal
相对应浮点型可以存储更加大的数,精确的小数,同时需要消耗更大的存储空间。别名:dec,fixed,numeric
decimal(M,D),M为精度,1~65(MySQL5.1及更高版本,早期版本为1~254)D为小数点右边的位数0~30,不能大于M。
float
double
别名:real
3,字符串类型
varchar
不定长,更节省空间,MySQL5.0或更高版本,在检索和存储时会保留末尾的空格。
char定长,根据定义时的长度分配足够的空间。存储时会删除末尾的空格。
比较适合存储长度接近或很短的字符串,如:密码的MD5值。
varchar虽然是边长存储的,但是内存一般会分配固定内存块来存储临时表等内部值,利用磁盘临时表进行排序时也一样,所以尽量分配真正需要的空间。
binary和varbinary
和var及varchar类型,但存储的是二进制的字符串
blob和text
都是为存储很大数据的字符串类型,分别使用二进制和字符方式存储。
blob家族:tinyblob,smallblob,blob,mediumblob,longblob分别于text家族对应
text家族:tinytext,smalltext,text,mediumtext,longtext
与其他类型不同,MySQL把blob和text当做独立对象处理,当存储数据太大,innoDB会使用专门的外部区域来存储,此时每个值在行内需要一个1~4字节的
值来指向外部的存储区域。
enum
枚举,只能存入预定的一些字符串,实际列值是整数,通过在.frm文件做整数和string映射,
当使用varchar进行两张表的关联时,如果列值为一些比较固定的值,可以将varchar列改成enum,然后进行关联会更快,因为enum列实际上存储的是整数类型
值,进行检索会更快(无需字符检验等额外开销)。
4,日期和时间类型
MySQL提供多种存储日期和时间的类型,如:year,date,datetime,timestamp。
datetime和timestamp类似,但是也有区别:
datetime使用8字节存储,与时区无关,范围更大从1001到9999年,精度为秒
timestamp使用4字节存储,与时区有关,范围小从1970到2038年,精度为秒
MySQL提供unix_timestamp把日期转换为unix时间戳,from_unixtime把时间戳转换为日期。
5,位数据类型(极少用)
bit
bit(M),M为位数
set
0 0
- MySQL数据类型详解
- MySQL中数据类型详解
- 【转】mysql数据类型详解
- MySQL 数据类型 详解
- MySQL 数据类型 详解
- MySQL 数据类型 详解
- MySQL 数据类型 详解
- MySql数据类型详解
- MySQL 数据类型 详解
- MySQL 数据类型 详解
- MySQL 数据类型 详解
- MySQL数据类型详解
- MySQL 数据类型 详解
- MySQL数据类型详解
- mysql数据类型详解
- MySQL数据类型详解
- MySQL 数据类型 详解
- MySQL 数据类型 详解
- Reverse Integer
- Java动态生成类以及动态添加属性
- java 测量tool System.nanoTime
- javascript this指针的陷阱
- 了解hbase(一)
- MySQL数据类型详解
- A New Year Gift
- 小白鼠试药问题。
- 堆和栈的区别(转过无数次的文章)
- 基数排序
- Hat’s Words(字典树)
- redis安装,主从集群
- 判断输入信息是否为空
- 机房收费系统(一)MDI子窗体以及在其中应用Picturebox问题