mysql类型选择什么意思_mysql 数据类型选择浅谈

最近在设计个酒店一体化产品的数据表设计,其中涉及到一些字段选择不同的数据类型

基础概念:

1)、1个字符等于多少字节   (不同的字符所占的字节是不一样的),在ASCII码中,一个数字、一个字母  代表一个【字节】,一个汉字(gbk编码下)占2个字节   一个汉字(utf8编码下)占3个字节

2)、【MYSQL】在版本4.0及以下  :  varchar(20)   指的是20个字节   即:只能存储6个汉字,一个汉字3个字节(UTF8编码下)

3)、【MYSQL】在版本5.0及以上  :  varchar(20)  指的是20个字符    即:可以存储20个汉字或者20个数字 或者20个字母

1、char和varchar:

char 是固定长度的类型   varchar是一种可变长度的类型,即:它们的区别是: char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足.(在检索操作中那些填补出来的空格字符将被去掉)在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节)

2、tinyint、smallint、mediumint、int、bigint、bit

类型

字节

最小值(带符号/不带符号)

最大值(带符号/不带符号)

tinyint

1

-128 / 0

127 / 256

smallint

2

-32768 / 0

32767 / 65536

mediumint

3

-8388608 / 0

8388607 / 16777215

int

4

-2147483648 / 0

2147483647 / 4294967295

bigint

8

-9223372036854775808

9223372036854775807

bit型数据其数据有两种取值:0或1,长度为1位。在输入0以外的其他值时,系统均把它们存储为1。这种数据类型常作为逻辑变量使用,用来表示真、假或是、否等二值选择。

2-1  关于int(4)  和 int(11) 的 区别

mysql数据库中int(4)的意义

在char和varchar这些类型的字段中,如果设置varchar(4),那么最大只能保存4个字符。因此许多人包括本人也一直以为int类型能存储的整数长度也和int字段的长度有关。

但是今天经过测试,发现int类型似乎并不是通常我们大多数人所认为的那样。

在没有为mysql 字段设置零填充 zerofill属性的时候,int(1)和int(11)没有任何区别。

测试发现int(1)和int(11),可以存储的最大数值都是 2147483647 。21亿。

但是,有一个奇怪的事情,字段在设置zerofill属性后,可以存储的最大数值居然翻了一倍,变成4294967295。 42亿。

字段在设置zerofill属性后,int(4)显示0003,而int(11)显示00000000003 (int类型最长支持11位)

也就是说,int(4),这个4不是指的int整型的长度,而是指设置zerofill属性后自动在前头填充0的位数。

经过以上测试,也就是说,以后建表的时候,如果不需填充0的话,似乎可以不用再为int字段设置长度了。

3、enum的使用

感谢以下作者的提供:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值