SQL Server所有数据类型大全

  1. 数据类型列表

    • 整数类型:bigint、int、smallint、tinyint
    • 精确数值类型:decimal、numeric
    • 近似数值类型:float、real
    • 字符类型:char、varchar、text、nchar、nvarchar、ntext
    • 日期和时间类型:date、time、datetime2、datetimeoffset、smalldatetime、datetime
    • 二进制类型:binary、varbinary、image
    • 其他类型:cursor、sql_variant、table、xml、hierarchyid、geometry、geography、uniqueidentifier
  2. 详细说明

    • 整数类型
      • bigint
        • 范围: 2 63 -2^{63} 263到 2 63 1 2^{63}-1 2631(即 -9223372036854775808到9223372036854775807)。
        • 用途:用于存储非常大的整数,例如存储大型数据库中的唯一标识符、大型统计数据等场景。
      • int
        • 范围: 2 31 -2^{31} 231到 2 31 1 2^{31}-1 2311(即 -2147483648到2147483647)。
        • 用途:这是最常用的整数类型,用于存储普通大小的整数,如用户ID、商品数量等。
      • smallint
        • 范围: 2 15 -2^{15} 215到 2 15 1 2^{15}-1 2151(即 -32768到32767)。
        • 用途:适合存储范围较小的整数,如年龄、月份(1 - 12)等。
      • tinyint
        • 范围:0到255。
        • 用途:通常用于存储只有少量取值可能的整数,如性别(0表示女,1表示男)、布尔值(0表示假,1表示真)等简单的标识。
    • 精确数值类型
      • decimal和numeric
        • 格式:decimal(p, s)numeric(p, s),其中p是精度(数字的总位数),s是小数位数。例如,decimal(5,2)表示总共5位数字,其中2位是小数部分。
        • 范围:由精度p决定,范围从 1 0 s 10^{-s} 10s到 1 0 p s 1 0 s 10^{p - s}-10^{-s} 10ps10s。
        • 用途:用于需要精确存储数值的情况,特别是在财务领域,如金额、汇率等计算,能保证小数部分的精度。
    • 近似数值类型
      • float和real
        • 范围:float可以存储从 1.79 E + 308 -1.79E + 308 1.79E+308到 1.79 E + 308 1.79E + 308 1.79E+308的近似数值,real范围相对较小,从 3.40 E + 38 -3.40E + 38 3.40E+38到 3.40 E + 38 3.40E + 38 3.40E+38。
        • 存储格式:以科学计数法形式存储,会有一定舍入误差。float精度可指定(如float(n)n为精度位数),real类似于float(24)精度。
        • 用途:适用于科学计算和工程计算等场景,对精度要求不是绝对精确,但需要表示非常大或非常小的数值,如物理实验数据、统计分析中的概率值等。
    • 字符类型
      • char
        • 格式:char(n)n表示字符的固定长度,范围是1到8000。
        • 用途:用于存储固定长度的字符数据。如果存储的数据长度小于n,会用空格填充。例如,存储固定长度的编码,像国家地区代码(长度固定为3位)。
      • varchar
        • 格式:varchar(n)n表示字符的最大长度,范围是1到8000。
        • 用途:用于存储可变长度的字符数据。只占用实际存储字符所需的空间,适合存储长度不确定的文本,如用户评论、文章标题等。
      • text
        • 范围:最大可存储 2 31 1 2^{31}-1 2311个字符。
        • 用途:用于存储大量的文本数据,但在新的应用开发中,更推荐使用varchar(max),因为text类型有一些功能限制。
      • nchar
        • 格式:nchar(n)n表示固定长度,范围是1到4000。存储Unicode字符,每个字符占用2个字节。
        • 用途:用于存储固定长度的Unicode字符数据,如存储多种语言的固定长度文本,像产品名称可能包含多种语言字符。
      • nvarchar
        • 格式:nvarchar(n)n表示最大长度,范围是1到4000。存储Unicode字符。
        • 用途:存储可变长度的Unicode字符数据,适合存储多种语言的文本,如用户的多语言昵称。
      • ntext
        • 范围:最大可存储 2 30 1 2^{30}-1 2301个Unicode字符。
        • 用途:用于存储大量的Unicode文本数据,不过在新开发中也逐渐被nvarchar(max)取代。
    • 日期和时间类型
      • date
        • 范围:从公元1年1月1日到9999年12月31日。
        • 格式:存储格式为YYYY - MM - DD
        • 用途:专门用于存储日期,如生日、项目开始日期等,方便按日期进行数据查询和分析。
      • time
        • 范围: 00 : 00 : 00.0000000 00:00:00.0000000 00:00:00.0000000到 23 : 59 : 59.9999999 23:59:59.9999999 23:59:59.9999999。
        • 格式:存储格式为hh:mm:ss[.nnnnnnn]
        • 用途:用于存储时间信息,如会议时间、航班起飞时间等,也可用于计算时间间隔。
      • datetime2
        • 范围:从公元1年1月1日00:00:00.0000000到9999年12月31日23:59:59.9999999。
        • 格式:YYYY - MM - DD hh:mm:ss[.nnnnnnn],精度最高到7位小数秒。
        • 用途:用于需要高精度时间记录的场景,如金融交易时间戳、高精度系统日志等。
      • datetimeoffset
        • 范围:与datetime2类似。
        • 格式:YYYY - MM - DD hh:mm:ss[.nnnnnnn] [+|-]hh:mm,包含时区偏移量。
        • 用途:在处理涉及多个时区的时间数据时很有用,如跨国公司业务数据、全球分布式系统日志等。
      • smalldatetime
        • 范围:从1900年1月1日到2079年6月6日。
        • 格式:YYYY - MM - DD hh:mm:00,精度到分钟。
        • 用途:适用于对时间精度要求不高的场景,如简单日程安排系统。
      • datetime
        • 范围:从1900年1月1日到2079年6月6日。
        • 格式:YYYY - MM - DD hh:mm:ss[.nnn],精度到毫秒。
        • 用途:是传统的日期时间类型,用于存储日期和时间信息,不过在新开发中逐渐被datetime2取代。
    • 二进制类型
      • binary
        • 格式:binary(n)n表示字节的固定长度,范围是1到8000。
        • 用途:用于存储固定长度的二进制数据,如存储加密后的密码(固定长度加密结果)。
      • varbinary
        • 格式:varbinary(n)n表示字节的最大长度,范围是1到8000。
        • 用途:用于存储可变长度的二进制数据,如存储图片、音频等文件的二进制数据。
      • image
        • 范围:最大可存储 2 31 1 2^{31}-1 2311字节。
        • 用途:用于存储大量二进制数据,如大型图片或文档,但在新开发中逐渐被varbinary(max)取代。
    • 其他类型
      • cursor
        • 用途:这是一种变量类型,用于在存储过程等中处理结果集,提供了一种逐行处理数据的方式,但使用起来相对复杂,需要谨慎。
      • sql_variant
        • 用途:可以存储SQL Server支持的各种数据类型的值,不过它的使用可能会带来一些性能和管理上的复杂性,通常在需要灵活存储不同类型数据的特殊场景下使用。
      • table
        • 用途:用于在存储过程等中临时存储结果集,类似于一个临时表,方便在程序逻辑中进行数据的临时处理。
      • xml
        • 用途:用于存储和操作XML格式的数据,在处理具有XML结构的数据,如配置文件、数据交换格式等场景下使用。
      • hierarchyid
        • 用途:用于表示层次结构的数据,如组织结构图、文件系统目录结构等,方便对层次结构数据进行查询和操作。
      • geometry
        • 用途:用于存储空间几何数据,如点、线、多边形等,在地理信息系统(GIS)等领域有应用。
      • geography
        • 用途:与geometry类似,但侧重于地球表面的地理位置相关数据,如地图绘制、位置定位服务等。
      • uniqueidentifier
        • SQL Server 中的一种数据类型,用于存储全局唯一标识符(GUID)
      • 待完善
相关推荐
czhc11400756632 分钟前
Linux 77 FTP
linux·运维·服务器
咖啡啡不加糖10 分钟前
暴力破解漏洞与命令执行漏洞
java·后端·web安全
风象南13 分钟前
SpringBoot敏感配置项加密与解密实战
java·spring boot·后端
九皇叔叔23 分钟前
【7】PostgreSQL 事务
数据库·postgresql
DKPT23 分钟前
Java享元模式实现方式与应用场景分析
java·笔记·学习·设计模式·享元模式
kk在加油25 分钟前
Mysql锁机制与优化实践以及MVCC底层原理剖析
数据库·sql·mysql
Percep_gan32 分钟前
idea的使用小技巧,个人向
java·ide·intellij-idea
缘来是庄32 分钟前
设计模式之迭代器模式
java·设计模式·迭代器模式
Liudef0638 分钟前
基于HTML与Java的简易在线会议系统实现
java·前端·html
張萠飛38 分钟前
Linux中程序的limits中的Max open files的配置由哪些参数决定
linux·运维·服务器