MySQL学习(一)
来源:互联网 发布:python 数据采集 编辑:程序博客网 时间:2024/06/05 18:53
在创建表时,经常会遇到 int(11) varchar(100)等这个的考虑。也容易误解为存放的长度等。
在mysql中,int(M) 中的M其实表示的是最大显示宽度。
bigint:
为8个字节,所以可以存放:-2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字);
int:
smallint:
为2个字节,存放 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整型数据;
tinyint:
为1个字节,存放从 0 到 255 的整型数据。
所以,int(1)与int(11)在存放字节上是一致的。M的设置表示显示的。但是要设置一个参数:如果列制定了zerofill 就会用0填充显示,int(4)指定后就会显示为0002,即会自动以0补全位数。
不过要注意的是:M在varchar和char中,并不是表示显示宽度
varchar(100)和varchar(200)表示的含义是一个可以最大存放100个字符,一个可以最大存放200个字符。
在深入的了解下。如果varchar(100) 和varchar(200)存放 5个字符,则他们在实际存储中也同样只是占用了5个字符的空间。
即:对于VARCHAR数据类型来说,硬盘上的存储空间虽然都是根据实际字符长度来分配存储空间的。但是对于内存来说,则不是。其时使用固定大小的内存块来保存值。简单的说,就是使用字符类型中定义的长度,即200个字符空间。显然,这对于排序或者临时表(这些内容都需要通过内存来实现)作业会产生比较大的不利影响。所以在实际应用中,还是要尽量考虑长度的,而不是笼统用个最大值。
那对于char和varchar来说,char在存储时是固定长度的,而varchar是变动的。char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足.(在检索操作中那些填补出来的空格字符将被去掉)在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节)。
- mysql学习(一)
- MySQL学习(一)
- MYSQL学习(一)
- MySQL学习(一)
- MySQL学习(一)
- MySQL学习(一)
- MySQL学习(一)
- Mysql学习(一)
- MySQL学习(一)
- mysql学习(一)
- MySQL学习(一)
- MySql学习(一)
- MySQL学习(一)
- mysql学习(一)
- MySQL学习(一)
- mysql学习笔记(一)
- MySQL学习笔记(一)
- MySql函数学习(一)
- android中src和background区别
- Serv-U设置FTP Passvie模式端口范围
- Redis数据结构简介
- java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal res
- leetcode:Unique Substrings in Wraparound String
- MySQL学习(一)
- Linux初学笔记
- 黑马——LINUX学习笔记(二)
- 状态选择器
- 编程实战の计蒜客 矩阵乘法
- 字符数组和字符指针
- 离散题目1
- git
- Java中Unsafe类详解