(1)整数型

整数包括bigint、int、smallint和tinyint,从标识符的含义就可以看出,它们的表示数范围逐渐缩小。

lbigint:大整数,数范围为-263(-9223372036854775808)~263-1(9223372036854775807),其精度为19,小数位数为0,长度为8字节。

lint:整数,数范围为-231(-2,147,483,648)~231-1(2,147,483,647),其精度为10,小数位数为0,长度为4字节。

lsmallint:短整数,数范围为-215(-32768)~215-1(32767),其精度为5,小数位数为0,长度为2字节。

ltinyint:微短整数,数范围为0~255,长度为1字节,其精度为3,小数位数为0,长度为1字节。

(2)精确整数型

精确整数型数据由整数部分和小数部分构成,其所有的数字都是有效位,能够以完整的精度存储十进制数。精确整数型包括decimal和numeric两类。从功能上说两者完全等价,两者的唯一区别在于decimal不能用于带有identity关键字的列。

声明精确整数型数据的格式是numeric|decimal(p[,s]),其中p为精度,s为小数位数,s的缺省值为0。例如指定某列为精确整数型,精度为6,小数位数为3,即decimal(6,3),那么若向某记录的该列赋值56.342689时,该列实际存储的是56.3427。

decimal和numeric可存储从-1038+1到1038–1的固定精度和小数位的数字数据,它们的存储长度随精度变化而变化,最少为5字节,最多为17字节。

l精度为1~9时,存储字节长度为5;

l精度为10~19时,存储字节长度为9;

l精度为20~28时,存储字节长度为13;

l精度为29~38时,存储字节长度为17。

例如若有声明numeric(8,3),则存储该类型数据需5字节,而若有声明numeric(22,5),则存储该类型数据需13字节。

注意:声明精确整数型数据时,其小数位数必须小于精度;在给精确整数型数据赋值时,必须使所赋数据的整数部分位数不大于列的整数部分的长度。

(3)浮点型

浮点型也称近似数值型。顾名思义,这种类型不能提供精确表示数据的精度,使用这种类型来存储某些数值时,有可能会损失一些精度,所以它可用于处理取值范围非常大且对精确度要求不是十分高的数值量,如一些统计量。

有两种近似数值数据类型:float[(n)]和real,两者通常都使用科学计数法表示数据,即形为:尾数E阶数,如5.6432E20,-2.98E10,1.287659E-9等。

lreal:使用4字节存储数据,表数范围为-3.40E+38到3.40E+38,数据精度为7位有效数字。

lfloat:定义中的n取值范围是1~53,用于指示其精度和存储大小。当n在1~24之间时,实际上是定义了一个real型数据,存储长度为4字节,精度为7位有效数字;当n在25~53之间时,存储长度为8字节,精度为15位有效数字。当缺省n时,代表n在25~53之间。float型数据的数范围为-1.79E+308到1.79E+308。

(4)货币型

SQLServer提供了两个专门用于处理货币的数据类型:money和smallmoney,它们用十进制数表示货币值。

lmoney:数据的数范围为-263(-922337203685477.5808)~263-1(922337203685477.5807),其精度为19,小数位数为4,长度为8字节。money的数的范围与bigint相同,不同的只是money型有4位小数,实际上,money就是按照整数进行运算的,只是将小数点固定在末4位。

lsmallmoney:数范围为–231(-2,147,48.3648)~231-1(2,147,48.3647),其精度为10,小数位数为4,长度为4字节。可见smallmoney与int的关系就如同money与bigint的关系。

当向表中插入money或smallmoney类型的值时,必须在数据前面加上货币表示符号($),并且数据中间不能有逗号(,);若货币值为负数,需要在符号$的后面加上负号(-)。例如:$15000.32,$680,$-20000.9088都是正确的货币数据表示形式。

(5)位型

SQLServer中的位(bit)型数据相当于其他语言中的逻辑型数据,它只存储0和1,长度为一个字节。但要注意,SQLServer对表中bit类型列的存储作了优化:如果一个表中有不多于8个的bit列,这些列将作为一个字节存储,如果表中有9到16个bit列,这些列将作为两个字节存储,更多列的情况依此类推。

当为bit类型数据赋0时,其值为0,而赋非0(如100)时,其值为1。

若表中某列为bit类型数据,那么该列不允许为空值(有关空值概念本节稍后即做介绍),并且不允许对其建立索引。

(6)字符型

字符型数据用于存储字符串,字符串中可包括字母、数字和其它特殊符号(如#、@、&等等)。在输入字符串时,需将串中的符号用单引号或双引号括起来,如’abc’、”Abc

SQLServer字符型包括两类:固定长度(char)或可变长度(varchar)字符数据类型。

lchar[(n)]

定长字符数据类型,其中n定义字符型数据的长度,n在1到8000之间,缺省为1。当表中的列定义为char(n)类型时,若实际要存储的串长度不足n时,则在串的尾部添加空格以达到长度n,所以char(n)的长度为n。例如某列的数据类型为char(20),而输入的字符串为”ahjm1922”,则存储的是字符ahjm1922和12个空格。若输入的字符个数超出了n,则超出的部分被截断。

lvarchar[(n)]

变长字符数据类型,其中n的规定与定长字符型char中n完全相同,但这里n表示的是字符串可达到的最大长度。varchar(n)的长度为输入的字符串的实际字符个数,而不一定是n。例如,表中某列的数据类型为varchar(100),而输入的字符串为”ahjm1922”,则存储的就是字符ahjm1922,其长度为8字节。

当列中的字符数据值长度接近一致时,例如姓名,此时可使用char;而当列中的数据值长度显著不同时,使用varchar较为恰当,可以节省存储空间。

(7)Unicode字符型

Unicode是“统一字符编码标准”,用于支持国际上非英语语种的字符数据的存储和处理。SQLServer的Unicode字符型可以存储Unicode标准字符集定义的各种字符。

Unicode字符型包括nchar[(n)]和nvarchar[(n)]两类。nchar是固定长度Unicode数据的数据类型,nvarchar是可变长度Unicode数据的数据类型,二者均使用UNICODEUCS-2字符集。

lnchar[(n)]:nchar[(n)]为包含n个字符的固定长度Unicode字符型数据,n的值在1与4,000之间,缺省为1。长度为2n字节。若输入的字符串长度不足n,将以空白字符补足。

lnvarchar[(n)]:nvarchar[(n)]为最多包含n个字符的可变长度Unicode字符型数据,n的值在1与4,000之间,缺省为1。长度是所输入字符个数的两倍。

实际上,nchar、nvarchar与char、varchar的使用非常相似,只是字符集不同(前者使用Unicode字符集,后者使用ASCII字符集)。

(8)文本型

当需要存储大量的字符数据,如较长的备注、日志信息等等,字符型数据的最长8000个字符的限制可能使它们不能满足这种应用需求,此时可使用文本型数据。

文本型包括text和ntext两类,分别对应ASCII字符和Unicode字符。text类型可以表示最大长度为231-1(2,147,483,647)个字符,其数据的存储长度为实际字符数个字节。ntext可表示最大长度为230-1(1,073,741,823)个Unicode字符,其数据的存储长度是实际字符个数的两倍(以字节为单位)。

(9)二进制型

二进制数据类型表示的是位数据流,包括binary(固定长度)和varbinary(可变长度)两种。

lbinary[(n)]:固定长度的n个字节二进制数据。n取值范围为1到8,000,缺省为1。binary(n)数据的存储长度为n+4字节。若输入的数据长度小于n,则不足部分用0填充;若输入的数据长度大于n,则多余部分被截断。

输入二进制值时,在数据前面要加上0x,可以用的数字符号为0—9、A—F(字母大小写均可)。因此,二进制数据有时也被称为十六进制数据。例如0xFF、0x12A0分别表示值FF和12A0。因为每字节的数最大为FF,故在“0x”格式的数据每两位占1个字节。

lvarbinary[(n)]:n个字节变长二进制数据。n取值范围为1到8,000,缺省为1。varbinary(n)数据的存储长度为实际输入数据长度+4个字节。

(10)日期时间类型

日期时间类型数据用于存储日期和时间信息,包括datetime和smalldatetime两类。

ldatetime:datetime类型可表示的日期范围从1753年1月1日到9999年12月31日的日期和时间数据,精确度为百分之三秒(3.33毫秒或0.00333秒),例如1到3毫秒的值都表示为0毫秒,4到6毫秒的值都表示为4毫秒。

datetime类型数据长度为8字节,日期和时间分别使用4个字节存储。前4字节用于存储datetime类型数据中距1900年1月1日的天数,为正数表示日期在1900年1月1日之后,为负数则表示日期在1900年1月1日之前。后4个字节用于存储datetime类型数据中距12:00(24小时制)的毫秒数。

用户以字符串形式输入datetime类型数据,系统也以字符串形式输出datetime类型数据,将用户输入到系统以及系统输出的datetime类型数据的字符串形式称为datetime类型数据的“外部形式”,而将datetime在系统内的存储形式称为“内部形式”,SQLServer负责datetime类型数据的两种表现形式之间的转换,包括合法性检查。

用户给出datetime类型数据值时,日期部分和时间部分分别给出。

取消

评论

amp sqlserver中 什么意思_sql server中创建表时各个数据类型时什么意思??相关推荐

  1. access 删除字符串中的字符_SQL Server中的字符串分割函数

    您是否知道从SQL Server 2016开始,系统就内置STRING_SPLIT函数,该函数用于将字符串分隔的变量拆分为一个可用列表. 对于经常需要分割字符串的技术人员,建议您查看此功能. STRI ...

  2. 第3周 区_SQL Server中管理空间的基本单位

    第3周 区_SQL Server中管理空间的基本单位 原文:第3周 区_SQL Server中管理空间的基本单位 哇哦,SQL Server性能调优培训已经进入第3周了!同时你已经对SQL Serve ...

  3. sql判断基数_SQL Server中的基数估计框架版本控制

    sql判断基数 This is a small post about how you may control the cardinality estimator version and determi ...

  4. sql server 主键_SQL Server中人口过多的主键和CE模型的变化

    sql server 主键 In this blog post, we are going to talk about another cardinality estimation model enh ...

  5. sql server 密钥_SQL Server中的升序密钥和CE模型变化

    sql server 密钥 In this note, I'm going to discuss one of the most useful and helpful cardinality esti ...

  6. SQL Server语句创建表

    今天介绍一下如何使用SQL Server语句创建表并添加数据 首先先了解一下表的模式,在数据库中根据模式进行分组避免表名称的冲突 在SQL Server 2014中直接新建表是默认的前缀dbo 而命名 ...

  7. 可以储存照片的字段类型是_sql server 中 哪个字段类型可以储存图象?

    展开全部 可以将图片上传到指定目录并将路径记录在数据库中,要用的时候再从数据库中取路径根据路径找到图片.e68a84e8a2ad62616964757a686964616f31333234303663 ...

  8. sql 触发器嵌套条件_SQL Server中的嵌套触发器

    sql 触发器嵌套条件 Nested Triggers in SQL Server are actions that automatically execute when a certain data ...

  9. sql隐式转换_SQL Server中的隐式转换

    sql隐式转换 This article will provide an overview of SQL Server implicit conversion including data type ...

最新文章

  1. 一图看懂所有机器学习概念
  2. 网络数据被截取,该如何维权?
  3. 监听ListView滚动到最底部
  4. (Java)ArrayList集合
  5. 剑指Offer #06 旋转数组的最小数字(二分查找)| 图文详解
  6. 【python 3.6】python读取json数据存入MySQL(一)
  7. gts 什么是google_Google Analytics分析(GA)是什么?为什么全世界都在用
  8. Startup Error: Unable to detect graphics environment
  9. Fiddler抓包工具 学习笔记
  10. mgo02_mongodb启动警告处理
  11. 优秀雇员必备六大关键技能(2)
  12. Grasshopper显示配色
  13. HHTC第十二届程序设计竞赛
  14. 遥感图像数据集简介之二
  15. matlab将图片旋转的代码_论文写作经验分享word+mathtype+matlab
  16. 每日一博 - 3D架构图 cloudcraft
  17. 苹果7 无线流量连接不上网络连接服务器,iPhone7连不上wifi无线网的四种解决方法...
  18. 四 . LeetCode标签刷题——树/二叉树(一) 算法部分
  19. Postman请求返回中文乱码
  20. 微信小程序电商项目源代码开放连载二三事

热门文章

  1. win32 c++源码大全_网站源码,服务器,域名三者是什么关系?
  2. php启用openssl,php怎么开启openssl模块
  3. 我敢打赌,99%的电子工程师都掉进过这29个坑!
  4. Nexys4 DDR + OV7670 摄像头实时监控系统
  5. ADS1220 使用FPGA调试
  6. mysql btree检索策略_MySQL之Btree索引和HASH索引的区别以及索引优化策略
  7. pythonrequest得替代_Python爬虫通过替换http request header来欺骗浏览器实现登录功能...
  8. 苹果新手机软件测试,苹果即将发布iOS 14.5正式版,测试工作已进入最后阶段
  9. WebGL(三)——学习Canvas及简单图形绘制
  10. c语言文学研究助手题目,各位达人,给小弟一个文学研究助手的c程序啊!急啊!谢谢大家啦!...