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


    首先创建一个数据表

    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 into [log_info]
    default values
    
    update [log_info]
    set
    info1 = convert(varbinary(50),'aaaaa'),
    imagecol = convert(varbinary(50),'aaaaa')
    
    select * from [log_info]

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

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

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

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

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

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

  • 相关阅读:
    GCD
    hexo 部署 githubPage 部署不了的问题
    vim 常见操作
    linux 常见目录的作用
    cd 简化命令
    linux 系统运行级别
    APNIC IP 库
    linux 安装ssh
    linux
    Android知识点总结
  • 原文地址:https://www.cnblogs.com/wanglg/p/4107743.html
Copyright © 2020-2023  润新知