文档章节

Mysql 整形列的字节与存储范围

明月知心
 明月知心
发布于 2017/02/16 23:03
字数 470
阅读 39
收藏 0

计算方法:

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

给列加默认值

Not Null 不为空 

default    默认值   如default 0

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

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

© 著作权归作者所有

明月知心
粉丝 7
博文 158
码字总数 71882
作品 0
武汉
程序员
私信 提问
高性能MYSQL读书要点摘录_3_Schema与数据类型优化

一 选择优化的数据类型 更小的通常更好:占用更少的磁盘,内存 ,CPU。同时要确保没有低估要存储值的范围。 简单就好:简单的数据类型操作通常需要更少的CPU周期。比如 整形比字符操作的代价...

robin-yao
2016/01/03
185
0
关于Mac系统中SequelPro工具对于Mysql数值类型nt(M)存值的bug

说问题之前,聊表一下mysql数值类型int。众所周知,mysql数值类型int占四个字节,有符号、无符号整形存储的范围不同,有符号范围-2147483648 - 2127483647,无符号范围是0 - 4294967295(2^3...

mrc_elite
2016/07/29
0
0
MySQL数据表的设计

数据表(Table) 数据表是数据库的基本组成元素,以记录(行)和字段(列)组成的二位结构用于储存数据。数据库由表结构和表内容组成,先建立表结构,然后才能输入数据。数据表结构设计主要包...

全栈coder
2017/02/26
0
0
MySQL数据类型选择优化

选择正确的数据类型对于获得高性能至关重要,数据类型选择可以有以下原则: 1,更小的通常更好;更小的数据类型通常更快,因为它们占用更少的磁盘,内存,CPU缓存,处理时需要的 CPU周期也少...

克温s
2016/03/17
109
0
MySql中的varchar类型

MySql中的varchar类型(转) 今天新开始的项目在做数据库设计,发现自己对MySql的varchar类型还不熟悉,故又上网收集资料整理如下。 1.varchar类型的变化 MySQL 数据库的varchar类型在4.1以下...

馨缘6009
2013/12/12
191
0

没有更多内容

加载失败,请刷新页面

加载更多

500行代码,教你用python写个微信飞机大战

这几天在重温微信小游戏的飞机大战,玩着玩着就在思考人生了,这飞机大战怎么就可以做的那么好,操作简单,简单上手。 帮助蹲厕族、YP族、饭圈女孩在无聊之余可以有一样东西让他们振作起来!...

上海小胖
今天
8
0
关于AsyncTask的onPostExcute方法是否会在Activity重建过程中调用的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/XG1057415595/article/details/86774575 假设下面一种情况...

shzwork
今天
7
0
object 类中有哪些方法?

getClass(): 获取运行时类的对象 equals():判断其他对象是否与此对象相等 hashcode():返回该对象的哈希码值 toString():返回该对象的字符串表示 clone(): 创建并返此对象的一个副本 wait...

happywe
今天
6
0
Docker容器实战(七) - 容器中进程视野下的文件系统

前两文中,讲了Linux容器最基础的两种技术 Namespace 作用是“隔离”,它让应用进程只能看到该Namespace内的“世界” Cgroups 作用是“限制”,它给这个“世界”围上了一圈看不见的墙 这么一...

JavaEdge
今天
8
0
文件访问和共享的方法介绍

在上一篇文章中,你了解到文件有三个不同的权限集。拥有该文件的用户有一个集合,拥有该文件的组的成员有一个集合,然后最终一个集合适用于其他所有人。在长列表(ls -l)中这些权限使用符号...

老孟的Linux私房菜
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部