您好,欢迎访问一九零五行业门户网

mysql数据类型与存储

http://dev.mysql.com/doc/refman/5.5/en/data-types.html 最近在做oceanbase与mysql的数据类型兼容工作,仔细看了下mysql的数据类型 mysql支持的数据类型分类: 1)numeric 2)date and time 3)string(character and byte) 4)spatial 1.numeric 1)intege
http://dev.mysql.com/doc/refman/5.5/en/data-types.html
最近在做oceanbase与mysql的数据类型兼容工作,仔细看了下mysql的数据类型
mysql支持的数据类型分类:
1)numeric
2)date and time
3)string(character and byte)
4)spatial
1.numeric
1)integer types(exact value)—interger,int,smallint,tinyint,mediumint,bigint
    tinyint[(m)] [unsigned] [zerofill] 
smallint[(m)] [unsigned] [zerofill]
mediumint[(m)] [unsigned] [zerofill]
int[(m)] [unsigned] [zerofill] / integer[(m)] [unsigned] [zerofill]
bigint[(m)] [unsigned] [zerofill]
unsigned:无符号类型,默认为signed
zerofill:数字长度不够的数据前面填充0,如果设置了,则默认为unsigned类型。
serial:bigint unsigned not null auto_increment unique
    m:显示宽度
2)fixed-point types (exact value) – decimal, numeric
    decimal[(m[,d])] [unsigned] [zerofill]
dec[(m[,d])] [unsigned] [zerofill]
    numeric是通过decimal实现的
    decimal(precision,scale)
    precision:有效数字位数
    scale:小数点后的位数
    decimal(m)相当于decimal(m,0)
    decimal相当于decimal(m)
    m默认为10,m最大值为65
    d默认为0,最大值为30
3)floating-point types (approximate value) – float, double
    float[(m,d)] [unsigned] [zerofill]
    double[(m,d)] [unsigned] [zerofill]
    float使用4个字节
    double使用8个字节
    m表示最多可以存多少个数字,d表示小数点后的位数
4)bit-value type – bit
bit[(m)]
    m表示存储的位数
    m的范围是1~64
    实例:b'110001'
    转换:b'101' bit(6) b'000101'
bool,boolean
    等同于tinyint(1)
    0表示false,非0值表示true
5)存储字节数
2.date and time
1)date, datetime, timestamp
    ->date
        日期格式
        范围:'1000-01-01' to '9999-12-31'
        显示格式:'yyyy-mm-dd'
        允许strings或number格式转换成date类型
    ->datetime
        日期+时间
        范围:'1000-01-01 00:00:00' to '9999-12-31 23:59:59'
        显示格式:'yyyy-mm-dd hh:mm:ss'
    ->timestamp
        时间戳
        范围:'1970-01-01 00:00:01' utc to '2038-01-19 03:14:07' utc
        存储格式为从'1970-01-01 00:00:01'开始的秒数
2)time
    时间
    范围:'-838:59:59' to '838:59:59'
    显示格式:'hh:mm:ss'
3)year[(2|4)]
    2个数字或4个数字
    2个数字范围:70~69
    4个数字范围:1970~2069
    显示格式:yyyy or yy
4)存储字节数
3.string
character:字符集
    collate:校验算法
    ascii:character set latin1.
    unicode:character set ucs2.
1)char,varchar
    [national] char[(m)] [character set charset_name] [collate collation_name]
    [national] varchar(m) [character set charset_name] [collate collation_name]
    charm范围:0~255,默认为1
    varcharm范围:0~65535
2)binary,varbinary
    binary(m)
varbinary(m)
    同char,varchar,但是存储的是二进制类型
3)blob,test
tinyblob 二进制类型,最多支持255个字节,每个value用一个字节前缀表示字节数
blob[(m)] 二进制类型,最多支持65535个字节,每个value用两个字节前缀表示字节数
    mediumblob 二进制类型,最多支持16777215个字节(2^24-1)字节,用3个三字表示字节数
    longblob 二进制类型,最多支持 4,294,967,295个字节(2^32-1)字节,用4个三字表示字节数
tinytext [character set charset_name] [collate collation_name]
文本类型,最多支持255个字节,每个value用一个字节前缀表示字节数
text[(m)] [character set charset_name] [collate collation_name]
文本类型,最多支持65535个字节,每个value用两个字节前缀表示字节数
mediumtext [character set charset_name] [collate collation_name]
文本类型,最多支持16777215个字节(2^24-1)字节,用3个三字表示字节数
longtext [character set charset_name] [collate collation_name]
文本类型,最多支持 4,294,967,295个字节(2^32-1)字节,用4个三字表示字节数
4)enum
enum('value1','value2',…) [character set charset_name] [collate collation_name]
枚举类型,在内部是以整数实现的。最多支持65535个元素
5)set
    set('value1','value2',…) [character set charset_name] [collate collation_name]
可以有0个或多个值,在内部是以整数实现的。
6)存储字节数
原文地址:mysql数据类型与存储, 感谢原作者分享。
其它类似信息

推荐信息