smallint

阅读 / 问答 / 标签

mysql 中varchar tinyint text date smallint 这些怎么称呼?都怎么用啊?谢谢各位高手了!

char 和 varchar (Transact-SQL)固定长度或可变长度的字符数据类型。 char [ ( n ) ] 固定长度,非 Unicode 字符数据,长度为 n 个字节。n 的取值范围为 1 至 8,000,存储大小是 n 个字节。char 的 SQL 2003 同义词为 character。varchar [ ( n | max ) ] 可变长度,非 Unicode 字符数据。n 的取值范围为 1 至 8,000。max 指示最大存储大小是 2^31-1 个字节。存储大小是输入数据的实际长度加 2 个字节。所输入数据的长度可以为 0 个字符。SQL-2003 中的 varchar 就是 char varying 或 character varying。备注如果未在数据定义或变量声明语句中指定 n,则默认长度为 1。如果在使用 CAST 和 CONVERT 函数时未指定 n,则默认长度为 30。将为使用 char 或 varchar 的对象指派数据库的默认排序规则,除非使用 COLLATE 子句指派了特定的排序规则。该排序规则控制用于存储字符数据的代码页。如果站点支持多语言,请考虑使用 Unicode nchar 或 nvarchar 数据类型,以最大限度地消除字符转换问题。如果使用 char 或 varchar,建议执行以下操作: 如果列数据项的大小一致,则使用 char。如果列数据项的大小差异相当大,则使用 varchar。如果列数据项大小相差很大,而且大小可能超过 8,000 字节,请使用 varchar(max)。当执行 CREATE TABLE 或 ALTER TABLE 时,如果 SET ANSI_PADDING 为 OFF,则定义为 NULL 的 char 列将作为 varchar 处理。当排序规则代码页使用双字节字符时,存储大小仍然为 n 个字节。根据字符串的不同,n 个字节的存储大小可能小于 n 个字符。-----------------------------------------------------------int、bigint、smallint 和 tinyint (Transact-SQL)使用整数数据的精确数字数据类型。 数据类型 范围 存储 bigint -2^63 (-9,223,372,036,854,775,808) 到 2^63-1 (9,223,372,036,854,775,807) 8 字节int -2^31 (-2,147,483,648) 到 2^31-1 (2,147,483,647) 4 字节smallint -2^15 (-32,768) 到 2^15-1 (32,767) 2 字节tinyint 0 到 255 1 字节备注int 数据类型是 SQL Server 2005 中的主要整数数据类型。bigint 数据类型用于整数值可能超过 int 数据类型支持范围的情况。在数据类型优先次序表中,bigint 介于 smallmoney 和 int 之间。只有当参数表达式为 bigint 数据类型时,函数才返回 bigint。SQL Server 不会自动将其他整数数据类型(tinyint、smallint 和 int)提升为 bigint。注意: 使用 +、-、*、/ 或 % 等算术运算符将 int、smallint、tinyint 或 bigint 常量值隐式或显式转换为 float、real、decimal 或 numeric 数据类型时,SQL Server 计算数据类型和表达式结果的精度时应用的规则有所不同,这取决于查询是否是自动参数化的。 因此,查询中的类似表达式有时可能会生成不同的结果。如果查询不是自动参数化的,则将常量值转换为指定的数据类型之前,首先将其转换为 numeric,该数据类型的精度很大足以保存常量的值。例如,常量值 1 转换为 numeric (1, 0),常量值 250 转换为 numeric (3, 0)。 如果查询是自动参数化的,则将常量值转换为最终数据类型之前,始终先将其转换为 numeric (10, 0)。如果涉及 / 运算符,则对于类似查询而言,不仅结果类型的精度可能不同,而且结果值也可能不同。例如,包含表达式 SELECT CAST (1.0 / 7 AS float) 的自动参数化查询的结果值将不同于非自动参数化的同一查询的结果值,因为自动参数化查询的结果将被截断以适合 numeric (10, 0) 数据类型。有关参数化查询的详细信息,请参阅简单参数化。 -----------------------------------------------------------ntext、text 和 image (Transact-SQL)重要事项: 在 Microsoft SQL Server 的未来版本中将删除 ntext、text 和 image 数据类型。请避免在新开发工作中使用这些数据类型,并考虑修改当前使用这些数据类型的应用程序。请改用 nvarchar(max)、varchar(max) 和 varbinary(max)。有关详细信息,请参阅 使用大值数据类型。用于存储大型非 Unicode 字符、Unicode 字符及二进制数据的固定长度数据类型和可变长度数据类型。Unicode 数据使用 UNICODE UCS-2 字符集。 ntext长度可变的 Unicode 数据,最大长度为 2^30 - 1 (1,073,741,823) 个字符。存储大小是所输入字符个数的两倍(以字节为单位)。ntext 的 SQL 2003 同义词为 national text。text服务器代码页中长度可变的非 Unicode 数据,最大长度为 2^31-1 (2,147,483,647) 个字符。当服务器代码页使用双字节字符时,存储仍是 2,147,483,647 字节。根据字符串,存储大小可能小于 2,147,483,647 字节。image长度可变的二进制数据,从 0 到 2^31-1 (2,147,483,647) 个字节。-----------------------------------------------------------日期和时间 (Transact-SQL)用于表示某天的日期和时间的数据类型。 datetime 和 smalldatetime表示某天的日期和时间。数据类型 范围 精确度 datetime 1753 年 1 月 1 日到 9999 年 12 月 31 日 3.33 毫秒smalldatetime 1900 年 1 月 1 日到 2079 年 6 月 6 日 1 分钟备注Microsoft SQL Server 2005 Database Engine 用两个 4 字节的整数内部存储 datetime 数据类型的值。 第一个 4 字节存储“基础日期”(即 1900 年 1 月 1 日)之前或之后的天数。基础日期是系统参照日期。另外一个 4 字节存储天的时间(以午夜后经过的毫秒数表示)。smalldatetime 数据类型存储天的日期和时间,但精确度低于 datetime。数据库引擎 将 smalldatetime 值存储为两个 2 字节的整数。第一个 2 字节存储 1900 年 1 月 1 日后的天数。另外一个 2 字节存储午夜后经过的分钟数。-----------------------------------------------------------这些东西MSDN里都有,自己看看就知道了。不过还是非常喜欢这种不用动脑筋的问题,嘿嘿……

sql server 2008操作数类型冲突: date 与 smallint 不兼容 有大神回答吗?

在数据库服务器图标上右键,打开[Facets=方面]选项,选择[外围应用配置器]把[RemoteDacEnabled=启用远程DAC]的value改成true。这一步的目的是允许建立远程专用管理员连接,此种连接拥有最高权限,即使无法建立标准连接,也可以建立DAC连接。

smallint字段不能为空,怎么设置

不管是什么字段,不能为空,都可以写成NOT NULL

SQL 数据访问接口错误(SQL_ERROR),发生数据类型smallint的算术溢出错误,值=-842150451。语句中止

可能是在方法中做 数据转换 的时候出错了,要看具体的方法../

32767是SQL中的smallint常量吗

smallint 的范围是 -32768~32767

sqlsmallint数据类型怎么添加数据

sqlsmallint数据类型怎么添加数据参考以下方法SQL语句插入 smallint 类型的数据关于smallint类型的值只要输入1位 却插不到表中.SQL codeINSERT INTO student_Info(stu_ID,stu_Year) VALUES(001,3)stu_ID 是 char(8) (主键)stu_Year 是 smallint

smallint和int的区别

  在支持整数值的地方支持 bigint 数据类型。但是,bigint 用于某些特殊的情况,当整数值超过 int 数据类型支持的范围时,就可以采用 bigint。在 SQL Server 中,int 数据类型是主要的整数数据类型。  在数据类型优先次序表中,bigint 位于 smallmoney 和 int 之间。  只有当参数表达式是 bigint 数据类型时,函数才返回 bigint。SQL Server 不会自动将其它整数数据类型(tinyint、smallint 和 int)提升为 bigint。  int(M) 在 integer 数据类型中,M 表示最大显示宽度。在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。和数字位数也无关系 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。

int转换成smallint时出错?请问为什么?怎样做才能把数据类型转换成smallint

在内存中int占四个字节,而smallint只占两个字节

mysql中int,bigint,smallint和tinyint的区别与长度

最近使用mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint。其中比较迷惑的是int和smallint的差别。今天就在网上仔细找了找,找到如下内容,留档做个总结: 使用整数数据的精确数字数据类型。 bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。 P.S. bigint已经有长度了,在mysql建表中的length,只是用于显示的位数 int 从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。 smallint 从 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整型数据。存储大小为 2 个字节。 tinyint 从 0 到 255 的整型数据。存储大小为 1 字节。 注释 在支持整数值的地方支持 bigint 数据类型。但是,bigint 用于某些特殊的情况,当整数值超过 int 数据类型支持的范围时,就可以采用 bigint。在 SQL Server 中,int 数据类型是主要的整数数据类型。 在数据类型优先次序表中,bigint 位于 smallmoney 和 int 之间。 只有当参数表达式是 bigint 数据类型时,函数才返回 bigint。SQL Server 不会自动将其它整数数据类型(tinyint、smallint 和 int)提升为 bigint。 int(M) 在 integer 数据类型中,M 表示最大显示宽度。在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。和数字位数也无关系 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。

数据库smallint怎么用

数据库smallint用法如下:1、有符号的SMALLINT值的范围是–2^15(2^15表示2的15次幂)到2^15–1,即–32768到32767。2、无符号的SMALLINT值范围是0到2^16–1,即0到65535。INT是4字节数据,取值范围-2^31-2^31,所以在考虑最大数据范围的前提下,优先使用smallint类型。

sql中smallint是什么意思

n.网络短整型;无等价的数据类型; 一、读音:英 ["su026ampl],美 ["su026ampl] 二、例句:IneachcavetheyconstructedfiveScarcitybeds.他们在每间窑洞里做了5个简单的床。三、词汇用法:1、smallint用作形容词,基本意思是“简单的,易懂的”,侧重于事物不复杂,易于迅速解决或很快被头脑接受。Scarcity也可作“朴素的,简朴的”解,一般指生活过得简朴。simple引申可指人“头脑简单的,易受骗的;迟钝的”或事物“结构单一的,非复合的”解。smallint在作“结构单一的,非复合的”“纯粹的,单纯的,完全的”解时,没有比较级和最高级形式。扩展资料:近义词:basic一、意思:adj. 基本的;基础的;初级的;含硅少的n. 基础;根本;[计]BASIC语言二、读音:英 ["beu026asu026ak],美 ["beu026asu026ak] 三、例句:Hisresearchformedthebasicofhisnewbook.他的研究成果构成了这本新书的基础。四、词汇用法:1、basic的基本意思是“基本的,基础的”,常指现实中真正必要的以及得以公认的或符合标准规范的事物。2、basic带有起点性质,可用来修饰抽象概念,也可用做具体事物,可用作定语、表语,常与to连用。

sql中smallint是什么意思

sql中smallint表示 从-2^15 到 2^15-1 (也就是 (-32,768) ~~~32,767)之间的数字~~~望采纳~~!

数据库中Sage SMALLINT是什么意思

SMALLINT 数据类型是一种精确数值数据类型,其精度在算术运算后不变。它需要 2 个字节存储。 要不你可以找本书 仔细研究最好啊

SQL里创建表时列属性为smallint的时候运行时提示缺失右括号

smallint不用指定长度,把后边的(6)去掉就OK。非要加长度的话,你可以设置类型为number(6,0)效果就是存储6位整数,后边无小数部分。

date和smallint不兼容

1 1 PSK 3 年前下面的陈述将采取 HireDate 作为字符串,不能转换为int。cast("HireDate" as int)理想情况下,如果使用 YEAR 它只会给你利息。按如下方式更改查询。SELECT YEAR(HireDate), DepartmentName, count(ParentEmployeeKey) AS "total emplyee join" FROM DimEmployee where YEAR(HireDate) >= 2006 and YEAR(HireDate) <= 2008 group by DepartmentName, HireDate,FirstName,ParentEmployeeKey ORDER BY YEAR(HireDate) 2 2 Yogesh Sharma 3 年前你没用 year() 在里面 where 条款:where year(HireDate) >= 2006 and year(HireDate) <= 2008 更进一步,您也不需要使用 cast() 函数与 年() 因为它将返回数字类型。你的 SELECT 语句对我来说很奇怪,当您包含 GROUP BY :SELECT YEAR(HireDate), DepartmentName, count(ParentEmployeeKey) AS "total emplyee join" FROM DimEmployee WHERE year(HireDate) >= 2006 and year(HireDate) <= 2008 GROUP BY DepartmentName, YEAR(HireDate), FirstName, ParentEmployeeKeyORDER BY YEAR(HireDate); 3 0 Anoos 3 年前请尝试以下操作:SELECT YEAR(cast(HireDate as date)), DepartmentName, count(ParentEmployeeKey) AS "total emplyee join" FROM DimEmployee where YEAR(cast(HireDate as date)) between 2006 and 2008 group by DepartmentName, HireDate,FirstName,ParentEmployeeKeyORDER BY YEAR(cast(HireDate as date))

oracle创建表 smallint、datetime怎么用

就是number和date。

Mysql的smallint(3)和smallint范围都是-32768到32767,他们到底有什么区别?

从 -2^15 (-32,768) 到 2^15 - 1 (32,767)smallint(3) 和 smallint 长度是一样的,不同的是:smallint(3)类型的,如果从数据库中取出的少于3位,自动用空格填补

SMALLINT的长度为2字节,那能表示的范围不是因该是-99到99吗?为什么是-32768到32

因为计算机认的是二进制,2个字节是16位,16位能表示的范围是-32768 到 32767

一字段smallint类型值只是0或1,长度设置多少?另一字段varchar,值是1到5个汉字,长度应咋设置?

smallint长度是不需要再手工设置长度的另一个字段如果有1-5个汉字,按5个汉字的话 设置最低也要为varchar(10)

smallint 字段类型 在C#中用什么表示啊

smallint -2^15 (-32,768) to 2^15-1 (32,767) 2 Bytes所以它对应c#的short类型,用short就可以了numeric对应decimal

smallint用什么函数转string

可以使用以下方式:1、使用循环,把每一位数字转换成相应的字符,参考代码如下:123456789101112131415161718192021222324#include <stdio.h>#include <string.h>int main(){int num, n, i = 0;char str[20], tmp[20];scanf("%d", &num);n = num % 10;while (n>0){tmp[i++] = n + "0";num = (num - n) / 10;n = num % 10;}tmp[i] = "";for (i=0; i<=strlen(tmp)-1; i++){str[i] = tmp[strlen(tmp)-i-1];}str[i] = "";printf("%s ", str);return 0;}2、使用库函数,代码如下#include <stdio.h>#include <string.h>int main(){int num;char str[20];scanf("%d", &num);itoa(num, str, 10);printf("%s ", str);return 0;}

SQL 怎么把smallint 改成int

直接用studio可视化修改就行了啊,比较方便初学者用.

Mysql中为什么不都用int,而要区分tinyint,smallint等

tinyint和smallint占用的存储空间更小smallint 存储大小为 2 个字节。tinyint 存储大小为 1 字节。int存储大小为4个字节。

mysql中int,bigint,smallint 和 tinyint的区别与长度的含义

最近使用MySQL数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint。其中比较迷惑的是int和smallint的差别。今天就在网上仔细找了找,找到如下内容,留档做个总结:使用整数数据的精确数字数据类型。bigint从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。P.S. bigint已经有长度了,在mysql建表中的length,只是用于显示的位数int从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。smallint从 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整型数据。存储大小为 2 个字节。tinyint从 0 到 255 的整型数据。存储大小为 1 字节。注释在支持整数值的地方支持 bigint 数据类型。但是,bigint 用于某些特殊的情况,当整数值超过 int 数据类型支持的范围时,就可以采用 bigint。在 SQL Server 中,int 数据类型是主要的整数数据类型。在数据类型优先次序表中,bigint 位于 smallmoney 和 int 之间。只有当参数表达式是 bigint 数据类型时,函数才返回 bigint。SQL Server 不会自动将其它整数数据类型(tinyint、smallint 和 int)提升为 bigint。int(M) 在 integer 数据类型中,M 表示最大显示宽度。在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。和数字位数也无关系 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。

mysql中的smallint可以表示多大的数?

现在的32位机器,int类型为32位,可以表达的最大数为2的32次方。smallint应该比int小,我猜是16位吧,和short一样。表示范围应该是2的16次方。如果考虑一位用来表示正负数,那么就只能表示2的15次方了。

新建视图时如何把int类型转换成smallint

一般int类型占用4个字节,而smallint只占两个字节如果你转换的话,数据位肯定会丢失,丢失的数据位视你的计算机的印第安序而定。用强转 int a ;smallint b;b= (smallint)a 就可以做到了,但是会有警告的,而且也不安全。还有一种就是位操作了,用位与 &取数据位的高位或者低位就可以了

mysql中int,bigint,smallint 和 tinyint的区别与长度的含义

1.TINYINT[(M)] [UNSIGNED] [ZEROFILL] M默认为4很小的整数。带符号的范围是-128到127。无符号的范围是0到255。2.SMALLINT[(M)] [UNSIGNED] [ZEROFILL] M默认为6小的整数。带符号的范围是-32768到32767。无符号的范围是0到65535。3. INT[(M)] [UNSIGNED] [ZEROFILL] M默认为11普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。4.BIGINT[(M)] [UNSIGNED] [ZEROFILL] M默认为20大整数。带符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到18446744073709551615。注意:这里的M代表的并不是存储在数据库中的具体的长度,以前总是会误以为int(3)只能存储3个长度的数字,int(11)就会存储11个长度的数字,这是大错特错的。tinyint(1) 和 tinyint(4) 中的1和4并不表示存储长度,只有字段指定zerofill是有用,如tinyint(4),如果实际值是2,如果列指定了zerofill,查询结果就是0002,左边用0来填充。

smallint和tinyint什么区别

最主要的区别就是占用的字节数大小问题。我们知道在JAVA中,int型占用的就是4个字节。同样在数据库中其实也是这样的。int占4个字节,smallint占2个字节,tinyint占1个字节。具体细节如下: bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。 int 从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。 smallint 从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节。 tinyint 从 0 到 255 的整型数据。存储大小为 1 字节。 主键设为tinyint的话一旦增加到128就不行了。总结:分别是8,4,2,1。ps:说下unicodeUnicode 规格通过采用两个字节编码每个字符使这个问题迎刃而解。 转换最通用商业语言的单一规格具有足够多的 2 字节的模式 (65,536)。 因为所有的 Unicode 系统均一致地采用同样的位模式来代表所有的字符,所以当从一个系统转到另一个系统时,将不会存在未正确转换字符的问题。 通过在整个系统中使用 Unicode 数据类型,可尽量减少字符转换问题。 Unicode 数据使用 SQL Server 中的 nchar、varchar 和 ntext 数据类型进行存储。 所以,对于汉字,我们可以用nvarchar,比如最大允许50个汉字,我们就可以用nvarchar(50)。 当然,英文字母其实也只能是50.

SQL数据库里的数据类型smallint是什么类型

smallint小整形

smallint是什么类型

smallint从-2^15(-32,768)到2^15-1(32,767)的整型数据。存储大小为2个字节。datetime从1753年1月1日到9999年12月31日的日期和时间数据,精确度为百分之三秒microsoftsqlserver用两个4字节的整数内部存储datetime数据类型的值。第一个4字节存储basedate(即1900年1月1日)之前或之后的天数。基础日期是系统参考日期。不允许早于1753年1月1日的datetime值。另外一个4字节存储以午夜后毫秒数所代表的每天的时间。nchar(n)包含n个字符的固定长度unicode字符数据。n的值必须介于1与4,000之间。存储大小为n字节的两倍。

smallint是什么类型

 这是数据类型的一种。  功能:  需要 2 个字节存储的整数。  语法:  [ UNSIGNED ] SMALLINT  用法:  SMALLINT 数据类型是一种精确数值数据类型,其精度在算术运算后不变。它需要 2 个字节存储。  有符号的 SMALLINT 值的范围是 –2^15(2^15表示2的15次幂) 到2^15 – 1,即 –32768 到 32767。  无符号的 SMALLINT 值范围是 0 到 2^16 – 1,即 0 到 65535。 INT 是4字节数据,取值范围 -2^31 - 2^31,所以在考虑最大数据范围的前提下,优先使用smallint类型。  标准和兼容性:  ·SQL/92 与 SQL/92 兼容。UNSIGNED 关键字是供应商扩展。   ·Sybase 带符号的数据类型与 Adaptive Server Enterprise 兼容。Adaptive Server Enterprise 不支持 UNSIGNED 数据类型。   另参见:  INT 或 INTEGER 数据类型 [Numeric]   TINYINT 数据类型 [Numeric]   BIGINT 数据类型 [Numeric]

数据库中SMALLINT什么意思?

相当于java中的short类型,即短整型

PostgreSQL数据库smallint、bigint转到Oracle,要用什么类型替代? 是number么,那长度分别是多少?

请参考

mysql中int,bigint,smallint 和 tinyint的区别详细介绍

主要的区别是占用空间和表示范围 tinyint 占用1字节 表示非负: 0-->255 无符号表示:-128-->127 举例表示人的年龄就可以用:age tinyint; smallint 占用2字节 表示非负:0-->2^16-1 既 0到65535 无符号表示:-2^15-->2^15-1 举例表示乌龟的年...

smallint和int的区别

smallint和int虽然都是一种数据类型,但是smallint和int在含义是有区别的,它们的具体含义如下:1.smallint(1)smallint数据类型是一种精确数值数据类型,其精度在算术运算后不变。它需要 2 个字节存储。(2)有符号的 SMALLINT 值的范围是 –2^15(2^15表示2的15次幂) 到2^15 – 1,即 –32768 到 32767。(3)无符号的 SMALLINT 值范围是 0 到 2^16 – 1,即 0 到 65535。 INT 是4字节数据,取值范围 -2^31 - 2^31,所以在考虑最大数据范围的前提下,优先使用smallint类型。2.int。Int是将一个数值向下取整为最接近的整数的函数。为取整函数。求不大于number 的最大整数,Int(3.8)=3,Int(-3.8)=-4。注意:int不能取整。取整要用fix。举例: Dim aa = Int(-32.9)Msgbox a

mysql中int,bigint,smallint 和 tinyint的区别与长度的含义

1 bytes = 8 bit ,一个字节最多可以代表的数据长度是2的8次方 11111111 在计算机中也就是-128到1271.BIT[M]位字段类型,M表示每个值的位数,范围从1到64,如果M被忽略,默认为12.TINYINT[(M)] [UNSIGNED] [ZEROFILL] M默认为4很小的整数。带符号的范围是-128到127。无符号的范围是0到255。3. BOOL,BOOLEAN是TINYINT(1)的同义词。zero值被视为假。非zero值视为真。4.SMALLINT[(M)] [UNSIGNED] [ZEROFILL] M默认为6小的整数。带符号的范围是-32768到32767。无符号的范围是0到65535。5.MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] M默认为9中等大小的整数。带符号的范围是-8388608到8388607。无符号的范围是0到16777215。6. INT[(M)] [UNSIGNED] [ZEROFILL] M默认为11普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。7.BIGINT[(M)] [UNSIGNED] [ZEROFILL] M默认为20大整数。带符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到18446744073709551615。注意:这里的M代表的并不是存储在数据库中的具体的长度,以前总是会误以为int(3)只能存储3个长度的数字,int(11)就会存储11个长度的数字,这是大错特错的。tinyint(1) 和 tinyint(4) 中的1和4并不表示存储长度,只有字段指定zerofill是有用,如tinyint(4),如果实际值是2,如果列指定了zerofill,查询结果就是0002,左边用0来填充。---------------------char是一种固定长度的类型,varchar则是一种可变长度的类型,它们的区别是:char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足.(在检索操作中那些填补出来的空格字符将被去掉)在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节).在MySQL中用来判断是否需要进行对据列类型转换的规则1、在一个数据表里,如果每一个数据列的长度都是固定的,那么每一个数据行的长度也将是固定的.2、只要数据表里有一个数据列的长度的可变的,那么各数据行的长度都是可变的.3、如果某个数据表里的数据行的长度是可变的,那么,为了节约存储空间,MySQL会把这个数据表里的固定长度类型的数据列转换为相应的可变长度类型.例外:长度小于4个字符的char数据列不会被转换为varchar类型

mysql中int,bigint,smallint 和 tinyint的区别详细介绍

最近使用mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint。其中比较迷惑的是int和smallint的差别。今天就在网上仔细找了找,找到如下内容,留档做个总结: 使用整数数据的精确数字数据类型。 bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。 P.S. bigint已经有长度了,在mysql建表中的length,只是用于显示的位数 int 从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。 smallint 从 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整型数据。存储大小为 2 个字节。 tinyint 从 0 到 255 的整型数据。存储大小为 1 字节。 注释 在支持整数值的地方支持 bigint 数据类型。但是,bigint 用于某些特殊的情况,当整数值超过 int 数据类型支持的范围时,就可以采用 bigint。在 SQL Server 中,int 数据类型是主要的整数数据类型。 在数据类型优先次序表中,bigint 位于 smallmoney 和 int 之间。 只有当参数表达式是 bigint 数据类型时,函数才返回 bigint。SQL Server 不会自动将其它整数数据类型(tinyint、smallint 和 int)提升为 bigint。 int(M) 在 integer 数据类型中,M 表示最大显示宽度。在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。和数字位数也无关系 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。