zoukankan      html  css  js  c++  java
  • char、varchar的区别

    问题点归纳:

    sqlserver中,當字段定義為char(2)時,表示存儲的值一定會佔用2字符,不夠的用空格代替。即當存儲的值是1時,實際存儲的值是'1 '(1+一個空格),這樣Delphi前台代碼若直接將此值AsInteger就會報錯!

    知识点:

    char的长度是不可变的,varchar的长度是可变的。

    定义一个char(6),存'abc',所占用的长度依然为6,除了'abc'外,后面还跟了3个空格。取数据时要用trim()去掉多余的空格。

    定义一个varchar(6),存'abc',所占用的长度为3,不会有空格作填补,取数据不需要去空格。

    由于char长度固定,方便程序的存储与查找,故存取速度要比varchar快得多,但是难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率。varchar则刚好相反,以时间换空间。

    char 最多能存放的字符个数 255,和编码无关。

    varchar最多能存放 65532 个字符。varchar的最大有效长度由最大行大小和使用的字符集确定。整体最大长度是 65,532字节。

    char的存储方式:对于一个英文字符(ASCII)占用1个字节,一个汉字占用2个字节。

    varchar的存储方式:对于每个英文字符、汉字都占用2个字节。

    char、varchar的存储数据都非unicode的字符数据。

    另参考:

    https://blog.csdn.net/lovemysea/article/details/82315514

  • 相关阅读:
    redhat 5 中文乱码
    生成树
    交换机端口模式
    链路聚合
    AP注册
    信息收集
    Python 25 Django跨域请求
    Python 24 Django之csrf中间件
    Python 23 Django基础
    Python 21 Flask(三)第三方组件
  • 原文地址:https://www.cnblogs.com/168-h/p/15118021.html
Copyright © 2011-2022 走看看