MySQL数据库常见的数据类型
MySQL提供的数据类型包括数值类型(整数类型和⼩数类型)、字符串类型、⽇期类型、复合类型(复合类型包括enum类型和set类型)以及⼆进制类型。
1,整数类型:
整数类型的数,默认情况下既可以表⽰正整数⼜可以表⽰负整数(此时称为有符号数)。如果只希望表⽰零和正整数,可以使⽤⽆符号关键字“unsigned”对整数类型进⾏修饰。
例如:score tinyint unsigned
mysql创建表数据类型各个类别存储空间及取值范围。
2,⼩数类型
decimal(length, precision)⽤于表⽰精度确定(⼩数点后数字的位数确定)的⼩数类型,length决定了该⼩数的最⼤位数,precision⽤于设置精度(⼩数点后数字的位数)。例如: decimal (5,2)表⽰⼩数取值范围:999.99~999.99 decimal (5,0)表⽰: -99999~99999的整数。3,字符串
char()与varchar(): 例如对于简体中⽂字符集gbk的字符串⽽⾔,varchar(255)表⽰可以存储255个汉字,⽽每个汉字占⽤两个字节的存储空间。假如这个字符串没有那么多汉字,例如仅仅包含⼀个‘中’字,那么varchar(255)仅仅占⽤1个字符(两个字节)的储存空间;⽽char(255)则必须占⽤255个字符长度的存储空间,哪怕⾥⾯只存储⼀个汉字。
4,⽇期类型。
date表⽰⽇期,默认格式为‘YYYY-MM-DD’; time表⽰时间,格式为‘HH:ii:ss’; year表⽰年份; datetime与timestamp是⽇期和时间的混合类型,格式为'YYYY-MM-DD HH:ii:ss'
datetime与timestamp都是⽇期和时间的混合类型,区别在于:表⽰的取值范围不同,datetime的取值范围远远⼤于timestamp的取值范围。将NULL插⼊timestamp字段后,该字段的值实际上是MySQL服务器当前的⽇期和时间。同⼀个timestamp类型的⽇期或时间,不同的时区,显⽰结果不同。
5,复合类型。
MySQL ⽀持两种复合数据类型:enum枚举类型和set集合类型。 enum类型的字段类似于单选按钮的功能,⼀个enum类型的数据最多可以包含65535个元素。 set 类型的字段类似于复选框的功能,⼀个set类型的数据最多可以包含64个元素。
6,⼆进制类型。
⼆进制类型的字段主要⽤于存储由‘0’和‘1’组成的字符串,因此从某种意义上将,⼆进制类型的数据是⼀种特殊格式的字符串。⼆进制类型与字符串类型的区别在于:字符串类型的数据按字符为单位进⾏存储,因此存在多种字符集、多种字符序;⽽⼆进制类型的数据按字节为单位进⾏存储,仅存在⼆进制字符集binary。
7,选择合适的数据类型。
选择合适的数据类型,不仅可以节省储存空间,还可以有效地提升数据的计算性能。
(1)在符合应⽤要求(取值范围、精度)的前提下,尽量使⽤“短”数据类型。
(2)数据类型越简单越好。
(3)在MySQL中,应该⽤内置的⽇期和时间数据类型,⽽不是⽤字符串来存储⽇期和时间。
(4)尽量采⽤精确⼩数类型(例如decimal),⽽不采⽤浮点数类型。使⽤精确⼩数类型不仅能够保证数据计算更为精确,还可以节省储存空间,例如百分⽐使⽤decimal(4,2)即可。
(5)尽量避免NULL字段,建议将字段指定为NOT NULL约束。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。