mysql列存储_Mysql 整形列的字节与存储范围

计算方法:

Tinyint         微小的列类型     1字节

8位:      [0][0][0][0][0][0][0][0] -->0

无符号 :[1][1][1][1][1][1][1][1] -->255     2^0+2^1+2^3+....+2^7=2^8-1=255

有符号: [符号][1][1][1][1][1][1][1] -->-2^7---2^7-1  -->  -128-127

如果表示负数,则最高位可以看成是符号位

2的N次方推导公式:

s=2^0+2^1+2^2+.....+2^n

2s=2^1+2^2+.....+2^(n+1)

2s-s=2^(n+1)-2^0=2^(n+1)-1

s=2^(n+1)-1

注意:^ 符 在数学公式中表示多少次方

在编程中表示逻辑运算符 异或

如在Python 中

C:\Users\Lee>python

Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)] on win32

Type "help", "copyright", "credits" or "license" for more information.

>>> 2^2

0

>>> 1^1

0

>>> 1^0

1

Mysql 数据类型与存储范围:

类型

字节

无符号

有符号

默认情况

Tinyint

1

8

0->2^8-1

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

默认有符号

Smallint

2

16

0->2^16-1

-2^15->+2^15-1

Mediumint

3

24

0->2^24-1

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

Int

4

32

0->2^32-1

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

Bigint

8

64

0->2^64-1

-2^63->+2^63-1

整形列的可选属性

unsignend    无符号类型(非负)影响存储范围

M                 宽度(在zerofill时才有意义)显示效果,不影响存储范围

Zerofill         不够位数时用 0 填充,默认为无符号,正数

alter table msg add `学号` tinyint(5) zerofill;

-- tinyint(5),5代表 长度为5位,zerofill,代表,不够位数用0来填充,如00001

Query OK, 0 rows affected (0.94 sec)

Records: 0 Duplicates: 0 Warnings: 0

24a1ffac451b1d7fe8625adf35547f12.png

3b0421ceffe93332afe32dcf8a77bce8.png

给列加默认值

Not Null 不为空

default    默认值   如default 0

语法:alter table 表名 add 字段名称 数据类型(如tinyint) not null default 0

alter table msg add `编号` tinyint not null default 0;

ac4bb721f0eb1b2fbb29d6286c75fc19.png

3307d55949ebc0008592fb78fa12109a.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值