2023年7月13日发(作者:)
数据类型和表结构数据类型和表结构在表创建结构前,需要熟悉SQL Server 2016的数据类型。3.1.1 数据类型SQL Server提供的数据类型如表3.2所⽰。在讨论数据类型时,使⽤了精度、⼩数位数和长度3个概念,前两个概念是针对数值型数据的,它们的含义如下。· 精度:指数值数据中所存储的⼗进制数据的总位数。· ⼩数位数:指数值数据中⼩数点右边可以有的数字位数的最⼤值。例如,数值数据3890.587的精度是7,⼩数位数是3。· 长度:指存储数据所使⽤的字节数。下⾯分别介绍常⽤的系统数据类型。1. 整数型整数型包括bigint、int、smallint和tinyint,从标识符的含义就可以看出,它们的表⽰数范围逐渐缩⼩。(1)bigint:⼤整数,数范围为−263~263−1,其精度为19,⼩数位数为0,长度为8字节。(2)int:整数,数范围为−231~231−1,其精度为10,⼩数位数为0,长度为4字节。(3)smallint:短整数,数范围为−215~215−1,其精度为5,⼩数位数为0,长度为2字节。(4)tinyint:微短整数,数范围为0~255,其精度为3,⼩数位数为0,长度为1字节。2. 精确数值型精确数值型数据由整数部分和⼩数部分构成,其所有的数字都是有效位,能够以完整的精度存储⼗进制数。精确数值型包括decimal和numeric两类。但这两种数据类型在功能上完全等价。声明精确数值型数据的格式是numeric | decimal(p[,s]),其中p为精度,s为⼩数位数,s的默认值为0。例如,指定某列为精确数值型,精度为6,⼩数位数为3,即decimal(6,3),那么当向某记录的该列赋值56.342 689时,该列实际存储的是56.343。decimal和numeric可存储−1038+1~1038−1的固定精度和⼩数位的数字数据,它们的存储长度随精度变化⽽变化,最少为5字节,最多为17字节。注意声明精确数值型数据时,其⼩数位数必须⼩于精度。在给精确数值型数据赋值时,必须使所赋数据的整数部分位数不⼤于列的整数部分的长度。3. 浮点型浮点型也称近似数值型。顾名思义,这种类型不能提供精确表⽰数据的精度,使⽤这种类型来存储某些数值时,有可能会损失⼀些精度,所以它可⽤于处理取值范围⾮常⼤且对精确度要求不太⾼的数值量,如⼀些统计量。有两种近似数值数据类型:float[(n)]和real,两者通常都使⽤科学计数法表⽰数据,即形为:尾数E阶数,如5.6432E20,−2.98E10,1.287659E−9等。(1)real:使⽤4字节存储数据,数范围为−3.40E+38~3.40E+38,数据精度为7位有效数字。(2)float:float型数据的数范围为−1.79E+308~1.79E+308。定义中的n取值范围是1~53,⽤于指⽰其精度和存储⼤⼩。当n在1~24时,实际上将定义⼀个real型数据,存储长度为4字节,精度为7位有效数字。当n在25~53时,存储长度为8字节,精度为15位有效数字。当省略n时,代表n在25~53。4. 货币型SQL Server提供了两个专门⽤于处理货币的数据类型:money和smallmoney,它们⽤⼗进制数表⽰货币值。(1)money:数据的数范围为−263~263−1,其精度为19,⼩数位数为4,长度为8字节。money的数范围与bigint相同,不同的只是money型有4位⼩数。实际上,money就是按照整数进⾏运算的,只是将⼩数点固定在最后4位。(2)smallmoney:数范围为−231~231−1,其精度为10,⼩数位数为4,长度为4字节。可见smallmoney与int的关系就如同money与bigint的关系。当向表中插⼊money或smallmoney类型的值时,必须在数据前⾯加上货币表⽰符号($),并且数据中间不能有逗号(,);若货币值为负数,则需要在符号$的后⾯加上负号(−)。例如,$15 000.32,$680,$−20000.9088都是正确的货币数据表⽰形式。5. 位型SQL Server的位(bit)型数据相当于其他语⾔中的逻辑型数据,它只存储0和1,长度为1字节。但要注意,SQL Server对表中bit类型列的存储进⾏了优化:如果⼀个表中有不多于8个的bit列,则这些列将作为1字节存储;如果表中有9~16个bit列,则这些列将作为2字节存储,更多列的情况以此类推。当为bit类型数据赋0时,其值为0;⽽赋⾮0(如100)时,其值为1。字符串值TRUE和FALSE可以转换为以下bit值:TRUE转换为1,FALSE转换为0。6. 字符型字符型数据⽤于存储字符串,字符串中可包括字母、数字和其他特殊符号(如#、@、&等)。在输⼊字符串时,需将串中的符号⽤单引号或双引号括起来,如'abc'、"Abc
发布者:admin,转转请注明出处:http://www.yc00.com/web/1689250544a225783.html
评论列表(0条)