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. 关于非阻塞I/O、多路复用、epoll的杂谈

    本文主要是想解答一下这样几个问题: - 什么是非阻塞I/O - 非阻塞I/O和异步I/O的区别 - epoll的工作原理 文件描述符 文件描述符在本文有多次出现,难免有的朋友不太熟悉,有必要简单说明一 ...

  2. 脚本shell每小时递增运行task

    下面 hello 是开始时间, world 是结束时间 #!/bin/bash START=$(date +%s); hello="20160911 00" world=" ...

  3. POJ2528 Mayor's poster

    The citizens of Bytetown, AB, could not stand that the candidates in the mayoral election campaign h ...

  4. CSUOJ 1952 合并石子

    现在有n堆石子,第i堆有ai个石子.现在要把这些石子合并成一堆,每次只能合并相邻两个,每次合并的代价是两堆石子的总石子数.求合并所有石子的最小代价. Input 第一行包含一个整数T(T<=50 ...

  5. 将项目部署到github的方法

    GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub. GitHub于2008年4月10日正式上线,除了Git代码仓库托管及基本的 We ...

  6. ARTS-S golang goroutines and channels(一)

    先用golang实现一个简单的tcp服务端,假定文件名为clock1.go // clock1.go package main import ( "fmt" "io&qu ...

  7. GlusterFS缺陷

    glusterfs缺陷 转自:http://www.liuwq.com/2017/04/20/glusterfs%E8%AF%A6%E8%A7%A3/ glusterfs 原理.优势.使用范围等 Gl ...

  8. 智和网管平台国产化AIOps智能运维 建立自主可控网络安全体系

    没有网络安全就没有国家安全,中国作为一个崛起中的大国,网络安全至关重要.新一届中央高度重视信息安全自主可控的发展,Gartner研究报告表明,2019年中国三分之二的数据中心.IT基础设施支出流向中国 ...

  9. 【JS】306- 深入理解 call,apply 和 bind

    作者:一像素 链接:https://www.cnblogs.com/onepixel/p/6034307.html 在JavaScript 中,call.apply 和 bind 是 Function ...

  10. unittest自动化测试框架

    目录 框架的概念 Unittest单元测试框架 常用的assert语句 unittest创建测试代码的方式: unittest构建测试套件(测试用例集合): unittest忽略测试用例: 运行测试集 ...