一、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

SqlServer -- char varchar、nchar、nvarchar的更多相关文章

  1. SQLServer中char、varchar、nchar、nvarchar的区别

    http://www.cnblogs.com/14lcj/archive/2012/07/08/2581234.html SQLServer中char.varchar.nchar.nvarchar的区 ...

  2. SQLServer中char、varchar、nchar、nvarchar比较

    转自:http://www.cnblogs.com/bluesky_blog/archive/2009/07/31/1535722.html 对于程序中的string型字段,SQLServer中有ch ...

  3. char、varchar、nchar、nvarchar的区别(转)

    转自:http://tech.diannaodian.com/dw/data/sql/2011/1005/135556.html 对于程序中的string型字段,SQLServer中有char.var ...

  4. char、varchar、nchar、nvarchar特点比较

    于程序中的string型字段,SQLServer中有char.varchar.nchar.nvarchar四种类型来对应(暂时不考虑text和ntext),开建立数据库中,对这四种类型往往比较模糊,这 ...

  5. SqlServer -- char与varchar、nchar、N

    一.char与varchar 带var的表示的是:可变长度,会根据实际存储数据的大小动态重新分配存储空间,相对来说节省存储空间. 不带var的表示的是:固定长度,存储3字符也是要占用10个字节的,会自 ...

  6. SQL 2005中char、nchar、varchar、ntext and nvarchar(max)的区别

    原文地址 MS SQL大值数据类型varchar(max).nvarchar(max).varbinary(max) 在MS SQL2005及以上的版本中,加入大值数据类型(varchar(max). ...

  7. char、nchar、varchar、nvarchar 的区别

    char.varchar.nchar.nvarchar为数据库中常用的字符类型,使用上要综合考虑空间利用率与存取速度.它们的区别如下: 实例解析: 定义char[9].varchar[9].nchar ...

  8. char、varchar、nchar、nvarchar、text的区别

    char.varchar.nchar.nvarchar.text的区别 1.有var前缀的,表示是实际存储空间是变长的,varchar,nvarchar 所谓定长就是长度固定的,当输入的数据长度没有达 ...

  9. SQL中char、varchar、nchar、nvarchar 详解

    char     char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值.当你输入的字符大于指定的数时,它会截取超出的字符. varchar[ ...

随机推荐

  1. [GO]简单的http服务器和客户端的实现

    package main import ( "net/http" "fmt" ) func Hello(w http.ResponseWriter, r *ht ...

  2. w9 Ansible批量管理与维护

    Ansible是2013年推出的一种通用自动化工具,可用于配置管理或工作流程自动化.配置管理是一种“基础架构代码”实践,它将事物编码,例如应该在系统上安装什么包和版本,或者应该运行什么守护进程.工作流 ...

  3. codeforces 508B

    B. New Year Permutation time limit per test 2 seconds memory limit per test 256 megabytes input stan ...

  4. JavaScript基础视频教程总结(031-040章)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  5. valgrind内存检测工具

    valgrind 那点事 ---------------------------------------内存检测工具 valgrind要使用此工具,可以使用--tool=memcheck 在Valgr ...

  6. ELK学习

    [root@log-node1 ~]# cobbler repo add --name=logstash-2.3 --mirror=http://packages.elastic.co/logstas ...

  7. STL中的容器作为返回值

    分别以函数返回值方式和参数传引用方式测试了vector.map两种容器,代码如下: // testContainer.cpp : Defines the entry point for the con ...

  8. Spring AOP术语:连接点和切点的区别。

    定义: 1.连接点(Join point):连接点是在应用执行过程中能够插入切面(Aspect)的一个点.这些点可以是调用方法时.甚至修改一个字段时. 2.切点(Pointcut):切点是指通知(Ad ...

  9. JScrollPane的使用

    概述 jScrollPane.js是一个轻量级的滑块插件, 非常方便使用. 在前端工业界(写页面)使用非常广泛, 下面我记录下用法, 供以后开发时参考, 相信对其他人也有用. PS: 想起之前我用im ...

  10. 阿里开源项目arthas安装使用

    文档地址 https://alibaba.github.io/arthas/install-detail.html 开始安装 我本地就装window版本了,下载zip包 按照快速入门,编译demo程序 ...