• SqlServer -- char varchar、nchar、nvarchar


    一、char与varchar

    列如:

    char(10)

    varchar(10)

    写入“abc”
    char 损耗了硬盘10字节 = “abc”长度 + 7个空字符
    varchar损耗了硬盘3字节 = “abc”长度

    var:可变长度,会根据实际存储数据的大小动态重新分配存储空间。

    不带var:固定长度,存储3个字符也是要占用10个字节的,会自动补7个空格

    注意:如果存储的数据超过了10个字节,那么无论是固定长度还是可变长度都会报错的。

    理论:

    前缀N就表示Unicode字符,比如nchar,nvarchar,这两种类型使用了Unicode字符集。

    非Unicode码(例如ASCII码),英文字符需要一个字节存储,但汉字和其他众多非英文字符,则需要两个字节存储。如果英文与汉字同时存在,由于占用空间数不同,容易造成混乱,导致读取出来的字符串是乱码。

    Unicode(统一码)就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。

     二、char与nchar

    char()不带n的数据类型,存储中文等双字节字符,占用2个字节;存储英文,数字等每个字符占用1个字节。

    nchar() n的,无论存储中文还是英文、数字等,每个字符都是占用两个字节。 

    注意:不带n的这些数据类型,长度最常可以设置为8000,而带n的这些数据类型,长度最长可以设置为4000,实际存储空间相同,既8000字节。

    char(8000)

    varchar(8000)

    nchar(4000)

    nvarchar(4000)

    N前缀:N代表转换为Unicode格式

    insert into students1(name,birtiday) values(N'科比',1994-01-01)

    其它:

    Bit类型在管理器上只能用true和false 在写程序代码的时候只能用1和0

  • 相关阅读:
    D. Renting Bikes 二分
    Maximum Absurdity DP + 数学
    模拟 H
    Secrets 数论
    A. Knight Tournament SET的应用
    B. Xenia and Hamming Codeforces 256B GCD,LCM处理字符串
    Alternate Task UVA11728 暴力枚举
    GCD Extreme (II) 欧拉函数的应用
    Bit Magic HDU 4421 2-Sat
    Encoding http://acm.hdu.edu.cn/showproblem.php?pid=1020
  • 原文地址:https://www.cnblogs.com/hao-1234-1234/p/6181405.html
Copyright © 2020-2023  润新知