SQL Server 中字符类型包括varchar、char、text等。主要用于存储字符数据。varchar和char类型的主要区别在于数据填充。例如,一个列名为FirstName且数据类型为varchar(20)的表,同时将值Brian存储到列FirstName中,那么物理上只存储5个字节。但如果在数据类型为char(20)的列中存储相同的值,将使用全部的的20个字节。SQL将插入拖尾空格来填满20个字符。

注:有这么一个问题,如果要节省空间,那么为什么还要使用char数据类型呢?这是因为使用varchar数据类型会稍微增加一些系统开销。所以,如果要存储两个字母形式的缩写,最好使用char(2),尽管有些人认为应该最大限度的节省空间,但一般来说,好的做法是找到合适的阈值,指定低于该阈值的采用char类型数据,反之则采用varchar数据类型。比如,任何小于或等于5个字节的列都应该存储为char数据类型,而不是varchar类型。超过这个长度,使用varchar数据类型的好处将超过其额外开销。

     nvarchar数据类型和nchar数据类型的工作方式于对等的varchar数据类型和char数据类型相同,但是这两种数据类型可以处理国际性的Unicode字符,他们需要一些额外的开销。以Unicode形式存储的数据为一个字符占用两个字节(这里指USC-2)。如果将值Brian存储到nvarchar列,将使用10个字节;而如果将之存储为nchar(20),就需要40个字节。

SQL server 字符数据类型
数据类型 描述 存储空间
char(n) n为1~8000字符之间 n字节
nchar(n) n为1~4000 Unicode字符之间 2 × n 字节
nvarchar(max) 最多为230 - 1 Unicode字符 2 × 字符数 + 2字节额外开销
text 最多为231 - 1 字符 每字符1字节+2字节额外开销
varchar(n) n为1 ~ 8000字符之间 每字符1字节 + 2字节额外开销
varchar(max) 最多为231 - 1 字符 每字符1字节 + 2字节额外开销

sql server 字符数据类型的更多相关文章

  1. SQL Server常见数据类型介绍

    数据表是由多个列组成,创建表时必须明确每个列的数据类型,以下列举SQL Server常见数据类型的使用规则,方便查阅. 1.整数类型 int 存储范围是-2,147,483,648到2,147,483 ...

  2. Sql Server之数据类型详解

      数据类型是一种属性,用于指定对象可保存的数据的类型,SQL Server中支持多种数据类型,包括字符类型.数值类型以及日期类型等.数据类型相当于一个容器,容器的大小决定了装的东西的多少,将数据分为 ...

  3. SQL Server 常见数据类型介绍

    数据表是由多个列组成,创建表时必须明确每个列的数据类型,以下列举SQL Server常见数据类型的使用规则,方便查阅. 整数类型 int 存储范围是-2,147,483,648到2,147,483,6 ...

  4. 说说SQL Server的数据类型

    以SQL Server为例,SQL Server的数据类型总共有33种,归纳为一下类别: 精确数字 Unicode字符串 近似数字 二进制字符串 日期和时间 其他数据类型 字符串   1.数字数据类型 ...

  5. SQL SERVER的数据类型

    1.SQL SERVER的数据类型 数据类弄是数据的一种属性,表示数据所表示信息的类型.任何一种计算机语言都定义了自己的数据类型.当然,不同的程序语言都具有不同的特点,所定义的数据类型的各类和名称都或 ...

  6. Sql Server 自定义数据类型

    SQLServer 提供了 25 种基本数据类型: ·Binary [(n)]  二进制数据 既可以是固定长度的(Binary),也可以是变长度的.其中,n 的取值范围是从 1 到 8000.其存储窨 ...

  7. C# 与 SQL Server 的数据类型对应关系

    (一)C#与SQL Server 2005(或以下版本): C# C#取值 SQL Server SQL Server取值 System.DateTime samlltime System.Objec ...

  8. 通过SQL Server自定义数据类型实现导入数据

    写在前面 在看同事写的代码时看到了SQL Server中可以自定义数据类型,而且定义的是DataTable类型的数据类型. 后我想起了以前我们导入数据时要么是循环insert写入,要么是SqlBulk ...

  9. SQL Server 2008数据类型

    在创建表时,必须为表中的每列指派一种数据类型. 今天在研究二进制存储图片时候竟然不知道image类型就是二进制类型?!所有就搜集了sql中的各种数据类型汇总,成功在于点滴积累. 1. 字符数据类型 数 ...

随机推荐

  1. java访问数据库被拒绝,不能连接数据库ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

    错误原因:mysql数据库只允许本地ip访问: 解决方法:修改mysql表设置所有ip都可以访问: 登录数据库 使用以下命令: use mysql; grant all privileges on * ...

  2. Internet History,Technology,and Security - The Web Makes it Easy to Use(Week3)

    时间如白驹过隙,又到了新的一周的慕课学习啦.这周内容较为简单,主要讲述互联网内部的发展状况. The Early World-Wide-Web Getting to the Web 谈到万维网,我们不 ...

  3. docker tomcat镜像部署springbootwar包

    springboot打war包 1.在pom文件中增加插件 <build> <finalName>xx</finalName> <plugins> &l ...

  4. 信鸽推送Push API

    目录 信鸽推送 push API 0. 基本 push 1. 根据 token list,推送到android和ios 2. 推送到android和ios 所有用户 信鸽推送 push API 参考: ...

  5. HDU4670 cube number on a tree(点分治+三进制加法)

    The country Tom living in is famous for traveling. Every year, many tourists from all over the world ...

  6. Python 入门必学经典知识点笔记【肯定有你不知道的】

    前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:实验楼 Python 作为近几年越来越流行的语言,吸引了大量的学员开始学 ...

  7. 【Web技术】400- 浅谈Shadow DOM

    编者按:本文作者:刘观宇,360 奇舞团高级前端工程师.技术经理,W3C CSS 工作组成员. 为什么会有Shadow DOM 你在实际的开发中很可能遇到过这样的需求:实现一个可以拖拽的滑块,以实现范 ...

  8. httpBasic 认证的URL访问

    httpBasic 认证 要在发送请求的时候添加HTTP Basic Authentication认证信息到请求中,有两种方法: 1.在请求头中添加Authorization: Authorizati ...

  9. 东拼西凑完成一个“前端框架”(4) - Tabs页

    目录 东拼西凑完成一个后台 "前端框架" (1) - 布局  东拼西凑完成一个后台 "前端框架" (2) - 字体图标 东拼西凑完成一个"前端框架&q ...

  10. JUC-7-lock接口

    解决多线程安全的方式   synchronized     隐式锁    1.同步代码块  2.同步方法   3.lock  同步锁    显式锁         lock()方法上锁    unlo ...