mysql数据类型

Mysql  数据类型:

 

整型                  

 

   字节

无符号 

有符号

Tinyint                     

 

1

0->2^8-1 

-2^7->+2^7-1

 

Smallint             

 

 2 

16    

0->2^16-1  

-2^15>+2^15-1

Mediumint            

 

24     

0->2^24-1 

-2^23->+2^23-1

Int                     

 

 4

32  

0->2^32-1  

-2^31->+2^31-1

Bigint                    

 

  5

40 

0->2^39-1 

-2^39->+2^39-1



 

如何申明为无符号:

Tinyintm) unsigned  zefofill

宽度(在0填充是才有意义)

Unsigned   无符号类型(非负)

Zefofill    0填充  自动为无符号

默认为有符号

 无符号申明格式:列明  tinyint  unsigned 。

 zefofill 的功能   如下申明: tinyint(2)zefofill    在这样的一个格式内输入一个数字 前面会自动补齐一个0  是宽度为2。

默认值如何设置:

Default 默认值。

 

小数型:浮点型,定点型:

Floatm,d

为小数的总长度,不包括. d为 (.)后面的长度

定点型:Decimalmd) 比float 更精确

 

字符串:

 

类型                    

 

  说明

申明方式  

范围

Char           

  定长字符串 

  char(m)

0<=m<=255

Varchar        

 变长字符串 

varchar(m)

0<=m<=16635 约2w到6w个字符

  text     

文本串    

text

 约2w到6w个字符受字符集的影响

              

M为字符个数。

 

Char  和 varchar 的区别 :

Char 如果给它自动一个长度如5  如果输入3个字符   如‘新年好’ 那么在mysql 里还是占5个字符  后面会自动补齐2个空格 。

Varchar 如果给它自动一个长度如5  如果输入3个字符   如‘新年好’ 那么在mysql 里他只会站3个字符不会用空格补齐。

如果同时在两种里面输入‘过年好  ’后面有两个空格   在读取char里的内容是 自会读取‘过年好’ 空格会省略 因为mysql会把后面的空格看系统为了补齐加的。而varchar 读取时就是‘过年好  ’后面会有空格。

两种类型的使用率:

Char 的使用率是   <=100%

Varchar 的使用利率是 <100%

为什么varchar 的使用率达不到100%呢 应为varchar 后面会有 2个字节 来记录varchar中内容的长度。

 

 

日期时间类型:

 

年类型       year

 

日期类型     date

 

 时间类型    time

 

时间日期类型 datetime

 

 

 

Year 类型 :1个字节 表示1901-2155,  如果错误时会显示 0000

 

如果输入两位年份  00-69 之间 表示为2000-2069

 

如果输入两位年份  70-99 之间 表示为1970-1999

 

 

 

Date 类型:典型格式2008-08-08

 

存储范围 1000-01-01    9999-12-31   

 

 

 

time类型:典型格式 hhmmss

 

 存储范围 -838:59:59     838:59:59

 

 

 

Datetime类型:典型格式 2008-08-08 20:20:20

 

存储范围  1000-01-01  00:00:00   到 9999-12-31 23:59:59 

 

 

 

Enum类型  枚举型:

 

Create table  tablename

 

 

Gender enum(‘男’,‘女’)

 

);

 

给字段定义为枚举型 将可以插入的内容列举出来,在插入内容时只能填写其中的一个。

 

 

 

Set类型   集合型:

 

和枚举型大致相同,但是可以填写列举出来的多个内容。

  

 

原文地址:https://www.cnblogs.com/phpshen/p/3539906.html