扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
sqlserver的数据类型比较多,常用的包括:
成都创新互联公司是一家集网站建设,龙山企业网站建设,龙山品牌网站建设,网站定制,龙山网站建设报价,网络营销,网络优化,龙山网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
第一大类:整数数据
bit:bit数据类型代表0,1或NULL,就是表示true,false.占用1byte.
int:以4个字节来存储正负数.可存储范围为:-2^31至2^31-1.
smallint:以2个字节来存储正负数.存储范围为:-2^15至2^15-1
tinyint: 是最小的整数类型,仅用1字节,范围:0至此^8-1
第二大类:精确数值数据
numeric:表示的数字可以达到38位,存储数据时所用的字节数目会随着使用权用位数的多少变化.
decimal:和numeric差不多
第三大类:近似浮点数值数据
float:用8个字节来存储数据.最多可为53位.范围为:-1.79E+308至1.79E+308.
real:位数为24,用4个字节,数字范围:-3.04E+38至3.04E+38
第四大类:日期时间数据
datatime:表示时间范围可以表示从1753/1/1至9999/12/31,时间可以表示到3.33/1000秒.使用8个字节.
smalldatetime:表示时间范围可以表示从1900/1/1至2079/12/31.使用4个字节.
第五大类:字符串数据
char:长度是设定的,最短为1字节,最长为8000个字节.不足的长度会用空白补上.
varchar:长度也是设定的,最短为1字节,最长为8000个字节,尾部的空白会去掉.
text:长宽也是设定的,最长可以存放2G的数据.
第六大类:Unincode字符串数据
nchar:长度是设定的,最短为1字节,最长为4000个字节.不足的长度会用空白补上.储存一个字符需要2个字节.
nvarchar:长度是设定的,最短为1字节,最长为4000个字节.尾部的空白会去掉.储存一个字符需要2个字节.
ntext:长度是设定的,最短为1字节,最长为2G.尾部的空白会去掉,储存一个字符需要2个字节.
第七大类:货币数据类型
money:记录金额范围为:-92233720368577.5808至92233720368577.5807.需要8 个字节.
smallmoney:记录金额范围为:-214748.3648至214748.36487.需要4个字节.
第八大类:标记数据
timestamp:该数据类型在每一个表中是唯一的!当表中的一个记录更改时,该记录的timestamp字段会自动更新.
uniqueidentifier:用于识别数据库里面许多个表的唯一一个记录.
第九大类:二进制码字符串数据
binary:固定长度的二进制码字符串字段,最短为1,最长为8000.
varbinary:与binary差异为数据尾部是00时,varbinary会将其去掉
image:为可变长度的二进制码字符串,最长2G.
sql server 2008 整数相除需要除数或被除数有一个数据类型为小数,才可以四舍五入。
首先看一个例子,如图:
两条语句唯一区别就是 10 与 10.00
1、select cast(round(10/6,0) as int) 结果:1
2、select cast(round(10.00/6,0) as int) 结果:2
但结果确不一样。
原因是SQLserver有默认的数据类型转换。
10/6 默认转换为整型 即:10/6 = 1。那么 round(1) = 1
10.00/6 默认转换为小数即:10.00/6 = 1.666666 ,那么 round(1.666666,0) = 2
一、
整数数据类型
整数数据类型是最常用的数据类型之一。
1、int
(integer)
2、smallint
3、tinyint
4、bigint
二、
浮点数据类型
浮点数据类型用于存储十进制小数。浮点数值的数据在sql
server
中采用上舍入(round
up
或称为只入不舍)方式进行存储。所谓上舍入是指,当(且仅当)要舍入的数是一个非零数时,对其保留数字部分的最低有效位上的数值加1
,并进行必要的进位。若一个数是上舍入数,其绝对值不会减少。如:对3.14159265358979
分别进行2
位和12位舍入,结果为3.15
和3.141592653590。
1、real
数据类型
2、float
3、decimal
4、numeric
三、二进制数据类型
1、binary
2、varbinary
四、
逻辑数据类型
bit:
bit数据类型占用1
个字节的存储空间,其值为0
或1
。如果输入0
或1
以外的值,将被视为1。
bit
类型不能定义为null
值(所谓null
值是指空值或无意义的值)。
五、字符数据类型
字符数据类型是使用最多的数据类型。它可以用来存储各种字母、数字符号、特殊符号。一般情况下,使用字符类型数据时须在其前后加上单引号’或双引号”
。
1
char
2、nchar
3、varchar
4、nvarchar
六、文本和图形数据类型
这类数据类型用于存储大量的字符或二进制数据。
1、text
2
ntext
3
image
七、
日期和时间数据类型
1
datetime
2
smalldatetime
八、货币数据类型
1
money
2
smallmoney
smallmoney数据类型类似于money
类型,但其存储的货币值范围比money数据类型小,其取值从-214,748.3648到+214,748.3647,存储空间为4
个字节。
九、
特定数据类型
sql
server
中包含了一些用于数据存储的特殊数据类型。
1
timestamp
十、用户自定义数据类型
sysname
sysname
数据类型是系统提供给用户的,便于用户自定义数据类型。它被定义为nvarchar(128),即它可存储128个unicode字符或256个一般字符。其具体使用方法请参见第7章“管理数据库表”中的“自定义数据类型”章节。
十一、
新数据类型
sql
server
2000
中增加了3
种数据类型:bigint、sql_variant和table。其中bigint数据类型已在整数类型中介绍,下面介绍其余两种:
1
sql_variant
sql_variant数据类型可以存储除文本、图形数据(text、ntext、image)和timestamp类型数据外的其它任何合法的sql
server数据。此数据类型大大方便了sql
server的开发工作。
2
table
table
数据类型用于存储对表或视图处理后的结果集。这一新类型使得变量可以存储一个表,从而使函数或过程返回查询结果更加方便快、捷其、使用请参见第13章“游标、视图和自定义函数”。
参数
numeric_expression
精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。
length
是 numeric_expression 将要四舍五入的精度。length 必须是 tinyint、smallint 或int。当 length 为正数时,numeric_expression 四舍五入为 length 所指定的小数位数。当 length 为负数时,numeric_expression 则按 length 所指定的在小数点的左边四舍五入。
function
是要执行的操作类型。function 必须是 tinyint、smallint 或 int。如果省略 function 或 function 的值为 0(默认),numeric_expression 将四舍五入。当指定 0 以外的值时,将截断 numeric_expression。
例:
Select ROUND(150.75, 0)
151.00
Select ROUND(150.75, 0, 1)
150.00
FLOOR
返回小于或等于所给数字表达式的最大整数。
FLOOR(1.1)=1
FLOOR(2)=2
CEILING
返回大于或等于所给数字表达式的最小整数。
CEILING(1.1)=2
CEILING(2)=2
如果要四舍五入:
cast(round(1.6,0) as int) =2
cast(round(1.4,0) as int)=1
cast(round(2,0) as int)=2
数字有很多类型,那么通常的数字类型有如下一些:
整型,也就是整数:int,bigint,smallint,tinyint等
小数:float,numeric(整数位数,小数位数),decimal(整数位数,小数位数)
1.round() 函数是四舍五入用,第一个参数是我们要被操作的数据,第二个参数是设置我们四舍五入之后小数点后显示几位。
2.numeric 函数的2个参数,第一个表示数据长度,第二个参数表示小数点后位数。
例如:
select cast(round(12.5,2) as numeric(5,2)) 结果:12.50
select cast(round(12.555,2) as numeric(5,2)) 结果:12.56
select cast(round(122.5255,2) as numeric(5,2)) 结果:122.53
select cast(round(1222.5255,2) as numeric(5,2)) 结果:报错了! 原因是:1222.5255,整数位是4,小数位是2,加起来4+2=6,超出了numeric设置的5位,所以为了保险,可以增减numeric的参数,例如numeric(20,2)。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流