SQL Server Binary 类型和 Char类型数据

SQL Server 数据库常见的数据类型分类:

二进制数据类型:Bit、 Binary、Varbinary 和 Image

字符数据类型: Char,Varchar 和 Text 、Nchar,Nvarchar 和Ntext

日期和时间数据类型: Datetime 和 Smalldatetime

数字数据类型:Int,Smallint和 Tinyint;Decimal 和 Numeric;Float 和 Real;

货币数据的数据类型是Money 和 Smallmoney

特殊的数据类型有3种,即 Timestamp、Bit 和 Uniqueidentifier。

关于n、var等字符的意思:nvarchar():

n: 表示Unicode,使用 Unicode 数据类型,列中可以存储任何由Unicode 标准定义的字符。在 Unicode 标准中,包括了以各种字符集定义的全部字符。使用Unicode数据类型,所占用的空间是使用非Unicode数据类型所占用的空间大小的两倍。

var:表示variable,是可变的 。

Binary二进制类型:Binary、Varbinary、Image,Bit

Bit类型:

取值类型只有:0、1、null三种类型。类似于bool值。可以用0,1来表示true,false。

实例:

insert into Department values ('true')

Binary(n)类型和Varbinary[(n)]:

Binary(n) 数据类型用来存储可达8000 字节长的定长的二进制数据。当输入内容长度接近时可用。其存储空间的大小是 n + 4 个字节。

Varbinary[(n)]数据类型是 n 位变长度的二进制数据。

Image类型

image 数据类型用来存储变长的二进制数据,最大可达231-1或大约20亿字节。最多 2GB。

在 Image 数据类型中存储的数据是以位字符串存储的,不是由 SQL Server 解释的,必须由应用程序来解释。例如,应用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把数据存储在 Image 数据类型中。

介绍两个测量指定长度的函数:

--Len(参数) --计算指定参数的字符串个数,不区分中英文。

--DataLength(参数) --计算指定参数的所占据字节长度。

-- 一个英文字母一个字节,一个中文字符2个字节。

实例如下:

select Len('aaa')

select Len('计算机')

select DataLength('aaa')

select DataLength('计算机')

结果:

字符型:char()、varchar()、text()和nchar()、nvarchar()、ntext()

char()、varchar()、nchar()和nvarchar():

char数据类型用来存储指定长度的定长非统一编码型的数据。但是当存储的字符数量小于指定的空间的时候,空间不会收缩,但是当大于的时候,会报错:截断二进制错误。

代码实例:

select Len(char) from CharTest

select DataLength(char) from CharTest

实例展示:

varchar数据类型

同char类型一样,用来存储非统一编码型字符数据。Varchar-var-是可变的,说明分配的空间是一个可以动态变化的空间,当储存的字符长度小于分配空间的时候,多余的空间会自动回收,但是大于的时候还是会报错。字符长度间跨度大时用之。

nchar 数据类型

用来存储定长统一编码字符型数据。不管哪种字符都会使用2个字节进行存储.有中文的字符,长度变化不大的时候用之。

select Len(Nchar) from CharTest --计算几个字符

select DataLength(Nchar) from CharTest --计算几个字节

nvarchar 数据类型

用作变长的统一编码字符型数据。不管哪种字符都会使用2个字节进行存储.有中文的字符,长度变化较大的时候用。

select Len(Nvarchar) from CharTest

select DataLength(Nvarchar) from CharTest

text()、ntext()、bolb

一般在保存少量字符串的时候,我们会选择char或者varchar;而在保存较大文本时,通常会选择使用text或者blob。二者之间的主要区别是blob能用来保存二进制数据,比如照片。

text只能保存字符数据,比如一篇文章或者日记。

对于含有text和blob字段的表,如果经常做删除和修改记录的操作要定时执行optimize table功能对表进行碎片整理。

char(n) 、varchar(n)、nchar(n)、nvarchar(n)等字符类数据类型时在我们设计数据库表字段约束时最常用的。

本文部分图片来源于网络,如有侵权,请联系修改。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180927A1YSBY00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券