前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL数据库数据类型_数据表的常见数据类型有哪些

SQL数据库数据类型_数据表的常见数据类型有哪些

作者头像
全栈程序员站长
发布2022-09-23 20:43:38
1.9K0
发布2022-09-23 20:43:38
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

文章目录

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 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
                                                            相关产品与服务
                                                            对象存储
                                                            对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                                                            领券
                                                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档