首頁 >資料庫 >mysql教程 >讨论贴:Sqlserver varbinary 是二进制数据,却是十六进制的表现

讨论贴:Sqlserver varbinary 是二进制数据,却是十六进制的表现

WBOY
WBOY原創
2016-06-07 15:40:581676瀏覽

首先创建一个数据表 CREATE TABLE [dbo].[log_info]( [id] [ int ] IDENTITY( 1 , 1 ) NOT NULL, [info] [varchar]( 50 ) NULL, [info1] [varbinary]( 50 ) NULL, [imagecol] [image] NULL, [binarycol] [binary]( 10 ) NULL) 向表中插入二进制数据: insert

首先创建一个数据表

<span>CREATE TABLE [dbo].[log_info](
 [id] [</span><span>int</span>] IDENTITY(<span>1</span>,<span>1</span><span>) NOT NULL,
 [info] [varchar](</span><span>50</span><span>) NULL,
 [info1] [varbinary](</span><span>50</span><span>) NULL,
 [imagecol] [image] NULL,
 [binarycol] [binary](</span><span>10</span><span>) NULL
)</span>


向表中插入二进制数据:

<span>insert into [log_info]
</span><span>default</span><span> values

update [log_info]
</span><span>set</span><span>
info1 </span>= convert(varbinary(<span>50</span>),<span>'</span><span>aaaaa</span><span>'</span><span>),
imagecol </span>= convert(varbinary(<span>50</span>),<span>'</span><span>aaaaa</span><span>'</span><span>)

</span><span>select</span> * <span>from</span> [log_info]

会发现展示出来的十六进制数据

讨论贴:Sqlserver varbinary 是二进制数据,却是十六进制的表现

而我们在编辑数据窗口中可以看到,实际存储的是二进制数据

讨论贴:Sqlserver varbinary 是二进制数据,却是十六进制的表现

出现这种差异,我的理解是计算机对于二进制数据的操作是最好的,所以存储的时候首选是二进制。

但是在表示的时候,4位二进制数可以表示1位十六进制数,在表示上更简短直观。

以上是我的理解,欢迎大家一起讨论。

 

PS:Text/Image被放在Lob页面里,varchar(max),nvarchar(max),varbinary(max)存储在Row-Overflow(行溢出)页面里。

 

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn