• MS SQL数据类型比较


    1. 字符串数据类型

      char
      此数据类型可存储1~8000个定长字符串,字符串长度在创建时指定;如未指定,默认为char(1)。每个字符占用1byte存储空间。
      nchar
      此数据类型可存储1~4000个定长Unicode字符串,字符串长度在创建时指定;如未指定,默认为nchar(1)。每个字符占用2bytes存储空间。
      varchar
      此数据类型可存储最大值为8000个字符的可变长字符串。可变长字符串的最大长度在创建时指定,如varchar(50),每个字符占用1byte存储空间。
      nvarchar
      此数据类型可存储最大值为4000个字符可变长Unicode字符串。可变长Unicode字符串的最大长度在创建时指定,如nvarchar(50),每个字符占用2bytes存储空间。
      text
      此数据类型可存储最大值为2147483647个字符的变长文本,并且无需指定其初始值,每个字符占用1byte存储空间,一般用来存储大段的文章。text数据类型实际上是一个Large Object数据类型,默认情况下,此类型的数据不是存储在数据行内,而是存储于独立的Large Object数据页上。另外,text数据类型不能做为函数、存储过程或触发器中的参数来用。
      ntext
      text数据类型,只不过存储的是最大值为1073741823个字符的Unicode变长文本,每个字符占用1byte存储空间。

      说明:无论使用哪种字符串数据类型,字符串值必须放在引号内,推荐使用单引号。

    各字符类型区别:
    CHARNCHAR 定长,速度快,占空间大,需处理
    VARCHARNVARCHARTEXT 不定长,空间小,速度慢,无需处理
    NCHARNVARCHARNTEXT处理Unicode

    2. 数值数据类型

    bit
    此数据类型存储值为01的二进制字段。占用1byte存储空间。

    tinyint
    此数据类型存储0~255的整数,占用1byte存储空间。

    smallint
    此数据类型存储-32768~32767的整数,占用2bytes存储空间。

    int
    此数据类型存储-2147483648~2147483647的整数,占用4bytes存储空间。

    bigint
    此数据类型存储-9223372036854775808~9223372036854775807的整数,占用8bytes存储空间。

    decimal/numeric
    这两个数据类型功能相同,均为存储精度可变的浮点值。但推荐采用decimal,因其存储的数据“更有说明性”。此种数据类型由两个值来确定decimal(p,s)p为精度,s为标量,如decimal(3,2),其中数值2为小数的位数,那么decimal(3,2)可用来存储如1.28这样的浮点数。此种数据类型占用的存储空间取决于精度值pp1~9,占用5bytes存储空间;p10~19,占用9bytes存储空间;p20~28,占用13bytes存储空间;p29~38,占用17bytes存储空间。

    float
    此数据类型存储1~53的可变精度的浮点值,精度表示为float(n)n表示科学记数法的尾数,取值范围为-1.79E+308~-2.23E-308的负数和2.23E-308~1.79E+308的正数。其存储空间由精度值决定,n1~24,占用4bytes存储空间;n25~53,占用8bytes存储空间。

    real
    此数据类型存储-3.40E+38~-1.18E-38的负数和1.18E~3.40E+38的正数。占用4bytes存储空间。

    smallmoney
    此数据类型存储-214748.3648~214748.3647的货币值,精确到小数后4位。占用4bytes存储空间。

    money
    此数据类型存储-922337203685477.5808~922337203685477.5807的货币值,精确到小数后4位。占用8bytes存储空间。

    3. 日期和时间数据类型

    smalldatetime
    此数据类型存储从190011日到207966日的日期。占用4btyes存储空间。

    datetime
    此数据类型存储从175311日到99991231日的日期。占用8bytes存储空间。

    4. 二进制数据类型

    binary
    此数据类型存储1~8000个字符的二进制数据,其指定长度即为占用的存储空间。

    varbinary
    此数据类型存储可变长的二进制数据,可在创建时指定其具体长度,也可不指定。

    5. 其它数据类型

    rowversion/timestamp
    这两种数据类型功能一样,但Microsoft建议在任何情况下尽可能地指明rowversion而不是timestamp,因为rowversion更加准确地反应了数据类型的真实性质。timestamp数据类型跟时间完全无关,它表明数据库中的数据修改发生的相对顺序。不要在键(尤其是主键)中使用timestamp列,因为每次修改行时,timestamp值都会更改。当指定数据类型为rowversiontimestamp,那么SQL Server会在对表的插入或删除等更新操作时自动生成一个新值,并把这个新值放在合适的字段里。此类型数据占用8bytes存储空间。

    uniqueidentifier
    此类型数据存储二进制值,其作用与全局唯一标识符(GUID)一样。GUID 主要用于在有多个节点、多台计算机的网络中,分配必须具有唯一性的标识符。占用16bytes存储空间。

    SQLC#类型对照表

    序号

    类别

    SQL

    C#

    备注

    1

    整数

    bit

    Boolean

    True转换为1False转换为0

    2

    tinyint

    Byte

    C#数据类型都位于System命名空间

    3

    smallint

    Int16

    4

    int

    Int32

    5

    bigint

    Int64

    6

    smallmoney

    decimal

    7

    money

    decimal

    8

    numeric

    decimal

    9

    decimal

    decimal

    10

    浮点数

    float

    double

    11

    real

    single

    12

    日期和时间

    smalldatetime

    datetime

    13

    datetime

    datetime

    14

    timestamp

    datetime

    15

    字符串

    char

    string

    16

    text

    string

    17

    varchar

    string

    18

    nchar

    string

    19

    ntext

    string

    20

    nvarchar

    string

    21

    二进制数据

    binary

    Byte[]

    22

    varbinary

    Byte[]

    23

    image

    Byte[]

    24

    其他

    uniqueidentifier

    guid

    25

    variant

    object

  • 相关阅读:
    【原创】虚拟机上实现绑定固定IP扩主机容器互访
    docker entrypoint入口文件详解
    数据库博客推荐
    docker下centos安装ping命令
    Dockerfile指令详解
    Elasticsearch Java API 的使用
    docker容器里面安装ssh
    RPM安装命令总结
    Docker容器的跨主机连接
    使用Java程序片段动态生成表格
  • 原文地址:https://www.cnblogs.com/PeterFu/p/4484349.html
Copyright © 2020-2023  润新知