2.3.1 数据库——数据类型

2.3数据表

2.3.1 数据类型

SQL Server 2005 中的数据类型:在这里插入图片描述

2.3.1.1精确数字

类型:在这里插入图片描述

  • 整数:
数据类型 范围 存储
int -2^31 (-2,147,483,648)到 2^31-1(2,147,483,647) 4字节
bigint -2^63 (-9,223,372,036,854,775,808)到 2^63-1(9,223,372,036,854,775,807) 8字节
smallint -2^15 (-32,768)到 2^15-1(32,767) 2字节
tinyint 0到255 1字节
bit 1,0(true,flase) 如果表中由8个一下的bit列,则这些列共用1个字节存储;
如果有9到16个bit列,则这些列用2个字节存储,以此类推。
  • 带固定精度和小数位数的数值:
    decimal和numeric(二者等价)
    • 表示方法:decimal[(p[,s])] numeric[(p[,s])]
    • p(precision,精度):最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。默认精度为18
    • s(scale,小数位数):小数点右边可以存储的十进制数字的最大位数。小数位数必须是从0到p之间的值,即0<=s<=p。默认的小数位数为0

|数据类型|范围|精度|存储字节||--|--|--|--||decimal|-10^38 + 1 到 10^38 - 1|1-9|5||numeric|-10^38 + 1 到 10^38 - 1|10-19|9

货币或货币值:
在这里插入图片描述

2.3.1.2 近似数字

类型:

float real

作用:用于表示大致数值(近似值)。在不清楚数值的大小、位数时使用,如:两树相除的结果、开方结果等。

数据类型 范围 存储
float(n) -1.79E+308至-2.23E-308、0以及2.23E-308至1.79E+308 取决于n的值
real -3.40+38至-1.18E-38、0以及1.18E-38至3.40E+38 4字节

2.3.1.3 日期和时间

类型:

detetime smalldatetime

作用:表示某天的日期和时间的数据类型。

数据类型 范围 精确度 存储
datetime 1753年1月1日到9999年12月31日 3.33毫秒 2*4字节
smalldatetime 1900年1月1日到2079年6月6号 1分钟 2*2字节

2.3.1.4 字符串

类型:

char text
varchar
数据类型 范围 存储
char(n) 固定长度,长度为n个字节。n的取值范围为1至8,000 n字节
varchar(n/max) 可变长度,n的取值范围为1至8,000。max指示最大存储大小是2^31-1个字节。 输入数据的实际长度加2个字节
text(将来会取消) 长度可变的字符数据,最大长度为2^31-1个字符。 最大2^31-1个字节

char和varchar的选择:

  • 如果列数据项的大小一致,则使用char。
  • 如果列数据项的大小差异相当大,则使用varchar。
  • 如果列数据项大小相差很大,而且大小可能超过8,000字节,使用varchar(max)。

长数字数据(如学号)的类型选择:一般选择字符串

  • 数字类型有长度限制;
  • 使用数字类型时,数据最前方的0会被舍去;
  • 数据的拼接不方便;
  • 对数据中某(些)位数字的提取、替换、修改等操作不方便。

char(1),tinyint 和 bit的选择:
在这里插入图片描述

2.3.1.5 Unicode字符串

Unicode:Universal Chatacter Set(通用字符集)
类型:

nchar ntext
nvarchar
数据类型 范围 存储
nchar(n) n个字符的固定长度的Unicode字符数据。n值必须在1到4,000之间。 2*n个字节
nvarchar(n/max) 可变长度Unicode字符数据。n值在1到4,000之间。max指示最存储大小为2^31-1个字符 输入字符个数的两倍+2个字节
ntext(将来会取消) 长度可变的Unicode数据,最大长度为2^30-1个字符。 输入字符个数的两倍

char和nchar之间的区别:

  • 适用范围
  • 存储空间
  • nchar的1个长度可以表示1个字母、数字、符号、汉字,char的1个长度只能表示1个字母、数字、符号,char的1个长度只能表示1个字母、数字、符号,汉字要用2个长度表示;
  • 查询和比较数据时,nchar尾部的空格是有意义的。

2.3.1.6 二进制字符串

类型:

binary image
varbinary
数据类型 范围 存储
binary(n) 长度为n字节的固定长度二进制数据,其中n是从1到8,000的值。 n字节
varbinary(n/max) 可变长度二进制数据。n可以取从1到8,000的值。max指示最大的存储大小为2^31-1字节。 输入数据的实际长度加2个字节
image(将来会取消) 长度可变的二进制数据,从0到2^31-1个字节 最大2^31-1个字节

图片等多媒体数据的存储方法:

  • 在表中存内容:使用varbinary(max)存储。
    • 写数据:将原数据转化为二进制数据存入表;
    • 读数据:将二进制数据读出并转化为原数据。
  • 在表中存路径:
    • 相对路径
    • 绝对路径

2.3.1.7 其他数据类型

类型:

cursor timestamp
sql_variant uniqueidentifier
table xml
数据类型 作用
cuesor
游标
变量或存储过程OUTPUT参数的一种数据类型
sql_variant
可变类型
用于存储SQL05支持的各种数据类型(不包括text、ntext、image、timestamp和sql_variant)的值。
table
临时表
用于临时存储一组作为表值函数的结果集返回的行。
数据类型 作用 存储
timestamp
时间戳
给表加时间戳(每个数据库都有一个)计数器,当对数据库中
包含timestamp列的表执行插入或更新操作时,该计数器值就会增加。
8字节
uniqueidentifier Globally Unique Identifier(GUID,全球唯一标识符) 16字节
xml 存储XML数据 最大2GB

2.3.1.8 用户自定义数据类型

⭐使用SQL Server Management Studio

  • 方法:“对象资源管理器” → “数据库” → 选择数据库名称 → “可编程性” → “类型” → “用户定义数据类型” → 右键 → “新建用户定义的数据类型(N)…”。

2.3.1.9 常用数据类型(牢记)

数据类型 数据类新
精确数字 int
decimal
monkey
字符串 char
varchar
近似数字 float
real
Unicode
字符串
nchar
nvarchar
日期时间 datetime 二进制字符串 varbinary

Sql Server 字段类型与C#数据类型对应表

Sql Server类型 C#类型 Sql Server类型 C#类型
image、binary、varbinary byte[] money、decimal、numeric decimal
text、ntext、
char、varchar、
cchar、nvarchar
string real single
int int float double
tnyint byte bit bool
smallint int16 bigint int64
datetime、timestamp DateTime

猜你喜欢

转载自blog.csdn.net/diviner_s/article/details/107243319