计算方法:
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>pythonPython 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or "license" for more information.>>> 2^20>>> 1^10>>> 1^01
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来填充,如00001Query OK, 0 rows affected (0.94 sec)Records: 0 Duplicates: 0 Warnings: 0
给列加默认值
Not Null 不为空
default 默认值 如default 0
语法:alter table 表名 add 字段名称 数据类型(如tinyint) not null default 0
alter table msg add `编号` tinyint not null default 0;