SQL server里面的char和vchar有什么区别,分别用在什么地方? sql-server中char,nchar,varchar有...

\u5728SQL server\u4e2d,\u600e\u4e48\u533a\u522bchar\u8ddfvarchar\uff1f\u6211\u662f\u4e2a\u5c0f\u767d\u3002

char\u548cvarchar\u662f\u4e00\u6837\u7684\u5b57\u7b26\u578b,
\u4e0d\u540c\u5728\u4e8e,varchar\u6bd4char\u66f4\u7075\u6d3b\uff0c\u7cbe\u786e\uff0c\u4e14\u4e0d\u5360\u5185\u5b58\u7a7a\u95f4\uff0c
\u5f53\u4f60\u53d6\u540c\u6837\u7684\u5b57\u7b26\u65f6\uff0cchar\u4f1a\u5728\u8be5\u5b57\u7b26\u540e\u9762\u52a0\u4e0a\u7a7a\u683c\uff0c
\u800cvarchar\u5219\u53ea\u53d6\u5f97\u8fd9\u4e2a\u5b57\u7b26\uff0c\u6bd4\u5982\u6709\u5b57\u6bb55\uff0c\u7528varchar\u4ece\u8be5\u5b57\u6bb5
\u4e2d\u53d6aa\u65f6\uff0c\u4f60\u53d6\u5f97\u7684\u662f"aa"\uff0c\u5982\u679c\u7528char\uff0c\u5219\u53d6\u5f97\u7684\u662f"aa "\uff0c
char\u4f1a\u5728\u540e\u9762\u7528\u7a7a\u683c\u8865\u9f505\u4e2a\u5b57\u6bb5\u3002
\u6240\u4ee5\uff0cvarchar\u6bd4char\u66f4\u7cbe\u786e\uff0c\u4f46\uff0cvarchar\u7684\u901f\u5ea6\u5374\u6bd4char\u6162\u3002
\u56e0\u4e3achar\u662f\u76f4\u63a5\u53d6\u5f97\u5168\u90e8\uff0c\u800cvarchar\u662f\u7cbe\u786e\u7684\u53bb\u53d6\u5f97\u4f60\u8981\u7684\u5b57\u7b26\u3002

\u6700\u597d\u7684\u89e3\u91ca\u5c31\u662f\u770bSQL Server\u81ea\u5e26\u7684\u8054\u673a\u4e1b\u4e66,\u8fd9\u662f\u6211\u4ece\u4e0a\u9762\u6458\u5f55\u7684:

char\u548cvarchar\u90fd\u662f\u5b57\u7b26\u4e32\u7c7b\u578b\u7684>>>>

char:

\u56fa\u5b9a\u957f\u5ea6\u7684\u975e Unicode \u5b57\u7b26\u6570\u636e\uff0c\u6700\u5927\u957f\u5ea6\u4e3a 8,000 \u4e2a\u5b57\u7b26\u3002

varchar:

\u53ef\u53d8\u957f\u5ea6\u7684\u975e Unicode \u6570\u636e\uff0c\u6700\u957f\u4e3a 8,000 \u4e2a\u5b57\u7b26\u3002

nchar\u662fUnicode \u5b57\u7b26\u4e32\u7c7b\u578b\u7684>>>>

nchar

\u56fa\u5b9a\u957f\u5ea6\u7684 Unicode \u6570\u636e\uff0c\u6700\u5927\u957f\u5ea6\u4e3a 4,000 \u4e2a\u5b57\u7b26\u3002

\u7528Unicode\u7f16\u7801\u7684\u5b57\u7b26\u4e32,\u7ed3\u679c\u662f\u5b57\u7b26\u7684\u6574\u6570\u503c.

1. char是定长的字符数组, varchar是变长的字符数组.
2. char(10)表示字符数组的长度自始至终都是10个字节, 表格一创建就分配给它10个字节. varchar(10)表示字符数组最大长度是10个字节, 实际使用时也可不达到10可字节, 根据实际情况分配储存空间.char,varchar均有个限制,定义 char(N)或varchar(N)时,应有N<=8000.
3. char类型主要用来存放定长字符串, 如 gender char(2) check(gender in('男','女')) default '男',相应地,varchar类型主要用来存放不定长字符串.

那里来的vchar,nchar就有,按unicode编码,每个字符都用两个字节存储,char为非unicode编码,英文字母等字符用一个字节表示,汉字、日文、韩文等用两个字节表示。用字符这种数据类型,要注意一个问题,在确定字符的长度
不会超过某个值的时候,尽量用char或nchar,这样查询的效率会高一些。
给个建议,去查看下SQL Server的帮助文档,里面各种相似数据类型的比较都很全面,如果英文看不懂,就下个中文版的吧

char是非unicode定长字符。varchar是非unicode变长字符。比如你定义char(10),而你存储数据时候只输入了sqlserver每到10个怎么办呢?就用开个补,实际还是占用10个字符的空间。而varchar占用空间按实际输入的字符数,长度可变的。

实话告诉你实际应用的时候都一样,差别你根本用不到.

http://blog.csdn.net/feixianxxx/archive/2009/08/17/4454659.aspx

看这个就差不多明白了

扩展阅读:www.sony.com.cn ... microsoft sql server ... xbox series x ... sql server express ... java windowbuilder ... sql server在线编译器 ... azure sql server ... sql server入门 ... sql server实例删除 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网