MySQL数据类型

列的数据类型

一、数字数据类型

1、整数类型

类型  存储空间/字节                         有符号范围                                        无符号范围

tinyint         1                                      -128~127                                             0~255

samllint       2                                  -32768~32767                                       0~65535

mediumint   3                              -8388608~8388607                                  0~16777215

int(integer)   4                       -2147483648~2147483674                           0~4294976295

bigint           8    -9223372036854775808~923372036854775807   0~18446744073709551615

语法格式:int[(m)  [unsigned]   [zerofill]]

(1)m,指定数据的显示宽度。例int(5),当数值宽度小于5位时,在数字前填满宽度,如不指定宽度,默认位int(11)。

(2)[unsigned],指定数据为无符号数据

(3)[zerofill],在数字位数不够时用0填充,一般配合unsigned使用

CREATE TABLE t1(

  id1  int,

  id2  int(5),

  id3  int ZEROFILL,

  id4  int(5)ZEROFILL

);


2、浮点数类型、定点数和位类型

浮点数类型

类型              存储空间/字节                                         范围

float(m,d)              4                    1.175494351E-38                      3.402823466E+38

double(m,d)          8                     2.2250738585072014E-308     1.7976931348623157E+308

m表示显示的位数,d表示小数点后的位数,在不指定精度时,默认按照实际精度显示。

范例:float(7,4)           999.9999


3、定点数类型(了解)

类型                      存储空间/字节                                        描述

dec/decimal(m,d)           M+2         最大值与double相同,给定decimal的有效范围由m,d决定

在不指定精度时,整数位为10,小数位为0


4、位类型(了解)

类似与boolean,只有true和false,0和1

类型            存储空间/字节             最小值            最大值

bit(m)                  1~8                       bit(1)               bit(8)

m的范围为1-64,默认值为1


二、日期和时间类型

类型       存储空间/字节     最小值                         最大值                        说明

date                4                1000-01-01                  9999-12-31               年月日yyyy-dd-mm

time                8           1000-01-01 00:00:00   9999-12-31 23:59:59      时分秒hh:mm:ss

datetime         4             19700101080001       2038年的某一时刻        年月日时分秒

timestamp       3                -838:59:59             838:59:59             用于更新当前系统时间

year[2|4]          1                   1901                             2155                       年份

year默认为四位,允许的值1901~2155和0000;两位格式中,允许的值为70~69(1970~2069)

timestamp,是yyyy-mm-dd hh:mm:ss字符串。显示宽度固定为19,如想获得字符值,则需在前面添加0。

三、字符串类型

1、char和varchar

类型             存储空间/字节                                  说明

char[(m)]               m           固定长度的字符串数据,长度为m字节,m取值0~255

varchar[(m)]      1~m+1       可变长度的字符串数据,长度为m字节,m取值0~65535

char无论用户输入多少(<=m),长度均为m,varchar则为实际长度

2、text和blob字符串

类型                                                说明

tinytext                允许长度0~255字节,占用字符串长度+2字节

text                      允许长度0~65535字节,占用字符串长度+2字节

mediumtext     允许长度0~167772150字节,占用字符串长度+3字节

longtext           允许长度0~4294967295字节,占用字符串长度+4字节

tinyblob                 允许长度0~255字节,占用字符串长度+2字节

blob                     允许长度0~65535字节,占用字符串长度+2字节

mediumblob        允许长度0~167772150字节,占用字符串长度+3字节

longblob       允许长度0~4294967295字节,占用字符串长度+4字节

blob大文件类型,text大文本类型

3、binary字符串,二进制数据类型

类型         存储空间/字节              说明

binary[(m)]          m          允许长度为0~m字节的定长字节字符串

varbinary[(m)]     m        允许长度为0~m字节的定长字节字符串,占用长度+1字节

4、enum和set字符串类型,存储字符串对象

类型                                  存储空间/字节          

enum()        1或2字节,取决于枚举值得个数(最多65535个值)

set()            1/2/3/4/8字节,取决于set成员的个数(最多64个成员)

你可能感兴趣的:(MySQL数据类型)