mysql参照_mysql类型参照

mysql数据库内容总结

数字类型:

Tinyint(M) unsigned zerofull

1个字节 默认的是有符号的-128~127

unsigned: 无符号整数 范围0~255

M: 代表宽度 (在zerofull时才有意义),只是一个显示效果,不会影响到实际的数据长度

zerofull: 零填充(如果某列是zerofull默认就是unsigned) 因为不会有 0000-1 的情况

零填充(例: 0005,多少个零就是M限制宽度)

列一般不要为null

原因一,null不好比较(等号比较不可用,只可用is null 或 is not null);

原因二,null执行效率更低,可用not null default 0 指定默认值

Smallint 同tinyInt用法

2个字节 默认有符号范围-32768~32767; 无符号范围0~65535

Mediumint 同tinyInt用法

3个字节 默认有符号范围-8388608~8388607;无符号范围0~16777215

Int 同tinyInt用法

4个字节 默认有符号范围-2147483648~2147483647; 无符号范围0~4294967295

BigInt 同tinyInt用法

8个字节 默认有符号范围-9223372036854775808-9223372036854775807;无符号范围0~18446744073709551615

Float(m,d) 浮点型

四个字节

float(6, 2)表示共有六位(不加小数点),小数占两位.

mysql中可以指定小数位数,sql server和oracle中是不允许指定小数位数的

Double(m,d) 浮点型

八个字节

double(6, 2)表示共有六位(不加小数点),小数占两位.

mysql中可以指定小数位数,sql server和oracle中是不允许指定小数位数的

Decimal(m,d) 定点型

使用同浮点型,只是更精确。

例:float(9,2) decimal(9,2) 存入1234567.23,float会显示为1234567.25,而decimal会显示1234567.23,更精确。

浮点和定点型是四个字节或八个字节

文本类型:

Char char(M),M代表宽度 0 到 255个字符之间

,可容纳的字符数(不是字节,一个字节占八位,一个汉字占两个字节,utf-8的汉字占三个字节),char(8),可存放八个汉字

Varchar 变长 varchar(M) M代表宽度 0 到 65535个字节之间, 大约能存放22000个汉字左右

有1-2个字节来标记真实的长度

Char和Varchar区别:

1、char是定长,varchar是变长

2、char的最大的存储长度是255个字符,这与字符集的设置没有关系;而varchar的最大长度则是与字符集的设置有关的

因此,如果设置的字符集为

latin1:一个字符是一个字节 ----->则能够存储的最大字符数是65532个

gbk:一个字符是两个字节------->则能够存储的最大字符数是65532/2个

utf-8:一个字符是三个字节------->则能够存储的最大字符数是65532/3个

char定长:M个字符,如果存的小于M个字符,实占M个字符,用空格补齐

varchar变长:M个字符,存的小于M个字符,设为N,N <= M,实占N个字符

3、利用率

类型          宽度     可存字符     实存字符(i<=M)实占空间利用率

char(M)  M          M               i                    M                         i/M <= 100%

varchar         M          M               i                    i字符+(1-2)字节          i/(i + 1-2) <= 100%

char有可能等于百分百,例: 四位学号char(4),利用率为100%;varchar利用率永远小于100%

4、char的速度快于varchar

text:是文本类型 能够存储比较大的数据 但是搜索的速度比较慢,没有全文索引    没有宽度 加了也没用

因此 如果不是比较大的数据 则建议采用char或者varchar来进行查询

日期类型:

年               year

日期          date

时间          time

日期时间     dateTime

时间戳          timeStamp

year类型 一个字节 表示 1901-2155[0000,表示错误时选择]

如果输入2位,'00-69' 表示 2000-2069年 加2000 计算机的元年是从1970年开始

'70-99' 表示 1970-1999年 加1900

推荐输入四位

Date类型 典型格式 1992-08-12

存储的范围:'1000-01-01'-->'9999-12-31'

time时间类型 典型格式 hh-mm-ss

存储的范围: '-838:59:59'-->'838:59:59'

dateTime日期时间类型 典型格式 '1992-09-28 12:23:23'

存储的范围: '1000-01-01 00:00:00'-->'9999-12-31 23:59:59'

timeStamp时间戳类型

是1970-01-01:00:00:00,到当前的秒数

计算很精确,也可以方便的格式化

注意:真正开发中,很少用日期时间类型来表示一个需要精确到秒的列,而是用时间戳类型来表示

原因:虽然日期时间类型能精确到秒,并且方便查看,但是遇到边界日期计算时很麻烦,不精确,像平年和闰年2月

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值