大家好,又见面了,我是你们的朋友全栈君。
文章目录
- 1. 整数型
- ● bigint(大整数)
- ● int(整数)
- ● smallint(短整数)
- ● tinyint(微短整数)
- 2. 精确数值型
- numeric | decimal(p[,s])
- 3. 浮点型
- ● real
- ● float[(n)]
- 4. 货币型
- ●money
- ● smallmoney
- 5. 位型
- 6. 字符型
- ●char[(n)]
- ●varchar[(n)]
- 7. Unicode字符型
- ● nchar[(n)]
- ● nvarchar[(n)]
- 8. 文本型
- ● text
- ● ntext
- 9. 二进制型
- ● binary[(n)]
- ●varbinary[(n)]
- 10. 日期时间类型
- ● datetime
- ●smalldatetime
- ●date
- ●time
- ●datetime2
- ● datetimeoffset
- 11. 时间戳型
- 12. 图像数据类型
- 13. 其它数据类型
- ● cursor
- ● sql_variant
- ● table
- ● uniqueidentifier
- ● xml
- ● hierarchyid
1. 整数型
整数包括bigint、int、smallint和tinyint 4类。
● bigint(大整数)
精度为19位,长度为8字节,数值范围为-263~263-1。
● int(整数)
精度10位,长度为4字节,数值范围为-231~231-1。
● smallint(短整数)
精度为10位,长度为2字节,数值范围为-215~215–1。
● tinyint(微短整数)
精度为3位,长度为1字节,数值范围为0~255。
2. 精确数值型
精确数值型包括decimal 和 numeric两类,这两种数据类 型在SQL Server中,在功能上是完全等价的。 精确数值型数据由整数部分和小数部分构成,可存储从 -1038 1 到 1038–1 的固定精度和小数位的数字数据,它存储长度最少为5字节,最多为17字节。 精确数值型数据的格式是:
numeric | decimal(p[,s])
其中p为精度,s为小数位数,s的缺省值为0。 例如指定某列为精确数值型,精度为7,小数位数为2,则为 decimal(7,2)。
3. 浮点型
浮点型又称近似数值型,近似数值数据类型包括float[(n)]和real两类,这两类通常都使用科学记数法表示数据。科学记数法的格式为:
尾数E阶数 其中,阶数必须为整数。 例如,6.804 E9,3.682-E6,7 8594E-8等都是浮点型数据。
● real
精度为7位,长度为4字节,数值范围为-3.40E 38~3.40E 38。
● float[(n)]
当n在1~24之间时,精度为7位,长度为4字节,数值范围为-3.40E 38~3.40E 38。 当n在25~53之间时,精度为15位,长度为8字节,数值范围为- 1.79E 308~1.79E 308。
4. 货币型
处理货币的数据类型有money和smallmoney,它们用十进制数表示货币值。
●money
精度为19,小数位数为4、长度为8字节,数值范围为-263~263-1。
● smallmoney
精度为10,小数位数为4、长度为4字节,数值范围–231 ~ 231 – 1。
5. 位型
SQL Server中的位(bit)型数据只存储0和1,长度为一个字节,相当于其它语言中的逻辑型数据。当一个表中有小于8位的bit列,将作为一个字节存储,如果表中有9到16位bit列,将作为两个字节存储,依此类推。 当为bit类型数据赋0时,其值为0;而赋非0时,其值为1。 字符串值TRUE和FALSE可以转换的bit 值:TRUE转换为1,FALSE转换为0。
6. 字符型
字符型数据用于存储字符串,字符串中可包括字母数字和其它特殊符号。在输入字符串时,需将串中的符号用单引号或双引号括起来,如’def’、“Def<Ghi”。
●char[(n)]
固定长度字符数据类型,其中n定义字符型数据的长度,n在1~8000之间,默认值为1。若输入字符串长度小于n时,则系统自动在它的后面添加空格以达到长度n。例如某列的数据类型为char(100),而输入的字符串为”NewYear2013″,则存储的是字符NewYear2013和89个空格。若输入字符串长度大于n,则截断超出的部分。当列值的字符数基本相同时可采用数据类型char[(n)]。
●varchar[(n)]
可变长度字符数据类型,其中n的规定与定长字符数据类型char[(n)]中n完全相同,与char[(n)]不同的是 varchar(n) 数据类型的存储空间随列值的字符数而变化。例如,表中某列的数据类型为varchar(100),而输入的字符串为” NewYear2013″,则存储的字符NewYear2013的长度为11字节,其后不添加空格,因而varchar(n) 数据类型可以节省存储空间,特别在列值的字符数显著不同时。
7. Unicode字符型
Unicode是“统一字符编码标准”,用于支持国际上非英语语种的字符数据的存储和处理。Unicode字符型包括nchar[(n)]和nvarchar[(n)]两类。nchar[(n)]、nvarchar[(n)]和char[(n)]、varchar(n)类似,只是前者使用Unicode字符集,后者使用ASCII字符集。
● nchar[(n)]
固定长度Unicode数据的数据类型,n的取值为1~4000,长度为2n字节,若输入的字符串长度不足n,将以空白字符补足。
● nvarchar[(n)]
可变长度Unicode数据的数据类型,n的取值为1~4000,长度是所输入字符个数的两倍。
8. 文本型
由于字符型数据的最大长度为8000个字符,当存储超出上述长度的字符数据(如较长的备注、日志等),即不能满足应用需求,此时需要文本型数据。文本型包括text和ntext两类,分别对应ASCII字符和Unicode字符。
● text
最大长度为231-1(2,147,483,647)个字符,存储字节数与实际字符个数相同。
● ntext
最大长度为230-1(1,073,741,823)个Unicode字符,存储字节数是实际字符个数的2倍。
9. 二进制型
二进制数据类型表示的是位数据流,包括binary(固定长 度)和varbinary(可变长度)两种。
● binary[(n)]
固定长度的n个字节二进制数据,n的取值范围为1~8000, 默认值为1。 binary(n)数据的存储长度为:n 4个字节。若输入的数据 长度小于n,则不足部分用0填充;若输入的数据长度大于n, 则多余部分被截断。 输入二进制值时,在数据前面要加上0x,可以用的数字符号为09、AF(字母大小写均可)。例如0xBE、0x5F0C分别表示值BE和5F0C。由于每字节的数最大为FF,故在“0x”格式的数据每两位占1个字节,二进制数据有时也被称为十六进制数据。
●varbinary[(n)]
n个字节变长二进制数据,n取值范围为1~8000,默认值为1。varbinary(n)数据的存储长度为:实际输入数据长度 4个字节。
10. 日期时间类型
● datetime
datetime类型可表示的日期范围从1753年1月1日到9999年12月31日的日期和时间数据,精确度为百分之三秒(3.33毫秒或0.00333 秒)。datetime类型数据长度为8字节,日期和时间分别使用4个字节存储。前4字节用于存储基于1900年1月1日之前或之后的天数,正数表示日期在1900年1月1日之后,负数则表示日期在1900年1月1日之前。后4个字节用于存储距12:00(24小时制)的毫秒数。默认的日期时间是January 1, 1900 12:00 A.M。可以接受的输入格式有:January 10 2012、Jan 10 2012、JAN 10 2012、January 10, 2012等。
●smalldatetime
Smalldatetime与datetime数据类型类似,但日期时间范围 较小,表示从1900年1月1日到2079年6月6日的日期和时间,存储长度为4字节。
●date
date类型可表示从公元元年1月1日到9999年12月31日期,表示形式与datetime数据类型的日期部分相同,只存储日期数据,不存储时间数据,存储长度为3个字节。
●time
time数据类型只存储时间数据,表示格式为“hh:mm:ss[.nnnnnnn]”。hh表示小时,范围为0到23。mm表示分钟,范围为0到59。ss表示秒数,范围为0到59。n是0 到7位数字,范围为0到9999999,表示秒的小数部分,即微秒数。所以time数据类型的取值范围为00:00:00.0000000到23:59:59.9999999。time类型的存储大小为5个字节。另外可以自定义time类型微秒数的位数,例如time(1)表示小数位为1,默认为7。
●datetime2
新的datetime2数据类型和datetime类型一样,也用于存储日期和时间信息。但是datetime2类型取值范围更广,日期部分取值范围从公元元年1月1日到9999年12月31日,时间部分的取值范围从00:00:00.0000000到23:59:59.999999。另外,用户还可以自定义datetime2数据类型中微秒数的位数,例如datetime(2)表示小数位数为2。
● datetimeoffset
datetimeoffset数据类型也用于存储日期和时间信息,取值范围与datetime2类型相同。但datetimeoffset类型具有时区偏移量,此偏移量指定时间相对于协调世界时(UTC)偏移的小时和分钟数。datetimeoffset的格式为“YYYY-MM-DD hh:mm:ss[.nnnnnnn] [{ |-}hh:mm]”,其中hh为时区偏移量中的小时数,范围为00到14,mm为时区偏移量中的额外分钟数,范围为00到59。
11. 时间戳型
反映系统对该记录修改的相对(相对于其他记录)顺序,标识符是timestamp,timestamp类型数据的值是二进制格式数据,其长度为8字节。若创建表时定义一个列的数据类型为时间戳类型,那么每当对该表加入新行或修改已有行时,都由系统自动将一个计数器值加到该列,即将原来的时间戳值加上一个增量。
12. 图像数据类型
用于存储图片、照片等,标识符为image,实际存储的是可变长度二进制数据,介于 0 与 231-1 (2,147,483,647) 字节之间。
13. 其它数据类型
● cursor
游标数据类型,用于创建游标变量或定义存储过程的输出参数
● sql_variant
一种存储SQL Server支持的各种数据类型(除text、ntext、image、timestamp 和 sql_variant 外)值的数据类型。
● table
用于存储结果集的数据类型,结果集可以供后续处理。
● uniqueidentifier
唯一标识符类型,系统将为这种类型的数据产生唯一标识值。
● xml
用来在数据库中保存xml文档和片段的一种类型,文件大小不能超过2GB。
● hierarchyid
hierarchyid数据类型是SQL Server新增加的一种长度可变的系统数据类型,可使用 hierarchyid表示层次结构中置。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/170927.html原文链接:https://javaforall.cn