mysql int范围与最大值分析
2019/10/10/17:33:19 阅读:1981 来源:谷歌SEO算法 标签:
夫唯SEO视频教程
在SQL语句中int代表你要创建字段的类型,int代表整型,11代表字段的长度,这个代表显示宽度.
整数列的显示宽度与mysql需要用多少个字符来显示该列数值,与该整数需要的存储空间的大小都没有关系,比如,不管设定了显示宽度是多少个字符,bigint都要占用8个字节。
int是整型,(11)是指显示字符的长度,但要加参数的,最大为255,比如它是记录行数的id,插入10笔资料,它就显示00000000001 ~~~00000000010,当字符的位数超过11,它也只显示11位,如果你没有加那个让它未满11位就前面加0的参数,它不会在前面加0
声明整型数据列时,我们可以为它指定个显示宽度M(1~255),如INT(5),指定显示宽度为5个字符,如果没有给它指定显示宽度,MySQL会为它指定一个默认值。显示宽度只用于显示,并不能限制取值范围和占用空间,如:INT(3)会占用4个字节的存储空间,并且允许的最大值也不会是999,而是INT整型所允许的最大值。
MySQL有五种整型数据列类型,即TINYINT,SMALLINT,MEDIUMINT,INT和BIGINT。它们之间的区别是取值范围不同,存储空间也各不相同。
在整型数据列后加上UNSIGNED属性可以禁止负数,取值从0开始。
int范围:
- TypeBytesMinimumValueMaximumValue
- (Signed/Unsigned)(Signed/Unsigned)
- TINYINT1-128127
- 0255
- SMALLINT2-3276832767
- 065535
- MEDIUMINT3-83886088388607
- 016777215--phpfensi.com
- INT4-21474836482147483647
- 04294967295
- BIGINT8-92233720368547758089223372036854775807
- 018446744073709551615
下面为官网的说明,代码如下:
- BecarefulwhenconsideringENUM('T','F')as"truebinary".
- Example:
- CREATETABLE`bits`(
- `val`ENUM('T','F')NOTNULL
- );
- mysql>INSERTINTO`bits`(`val`)VALUES('W'),('T'),('F');
- QueryOK,3rowsaffected,1warning(0.00sec)
- Records:3Duplicates:0Warnings:1
- mysql>SHOWWARNINGS;
- +---------+------+------------------------------------------+|Level|Code|Message|+---------+------+------------------------------------------+|Warning|1265|Datatruncatedforcolumn'val'atrow1|+---------+------+------------------------------------------+1rowinset(0.00sec)
- mysql>SELECTCOUNT(DISTINCTval)FROMbits;
- +---------------------+|COUNT(DISTINCTval)|+---------------------+|3|+---------------------+1rowinset(0.00sec)
- Well,shouldn'tabinarytypehaveonlytwodistinctvalues?
- (Notethatitisn'tNULL.)
- Explanationfrommanual(10.4.4.TheENUMType):
- -----
- IfyouinsertaninvalidvalueintoanENUM(thatis,astringnotpresentinthelistofpermittedvalues),theemptystringisinsertedinsteadasaspecialerrorvalue.Thisstringcanbedistinguishedfroma“normal”emptystringbythefactthatthisstringhasthenumericvalue0.Moreaboutthislater
热门评论