文字型态的数据适合什么格式存进数据库 ?

文字型态的数据适合什么格式存进数据库

使用数据库保存文字的数据,在数据库中会有以下这些的型态可以设定

char, varchar, nchar, nvarchar

那么到底要用哪种型态比较适合,这些型态之间有何差异呢??

意义与差异

从这些字眼上来看,都是有char,差别在var与n这两个字眼,那么就先来简单介绍一下这两个字眼代表的意义:

var:不定长度→有多长存多长

n:Unicode→无论英文、数字、中文、日文、...每个字都占2Byte。

说明一下:

char与nchar声明的是固定的长度,因此如果声明char(5),但是只放a这个字,那么就会补另外4个空白,会补空白补满是他的特性,而nchar(5)也是会放满5个字,但是每个字无论中英数都会用2个Bytes来存放

varchar与nvarchar都是不定长度,因此如果声明varchar(5),但是只放a这个字,那么就会放一个a,不会补空白。而如果声明nvarhcar(5)那还是只放a这个字,但是会用2Bytes来存放。如果放了【】这个中文字,在varchar会占用2个位子,但是nvarchar指占用1个位子。

举个例子来看

假设有四个字段,分别放入【a1中】这样的字符串,比较一下这些的差异如下:

数据类型 内容 占位数 Byte数
char(10) a1中+6个空白 10 10
varchar(10) a1中 4 1+1+2=4
nchar(10) a1中+7个空白 10 20
nvarchar(10) a1中 3 2*3=6

再来一个比较char(10)与nchar(10)


1


2


3


4


5


6


7


8


9


10


char(10)

a 1

           
2位

1


2


3


4


5


6


7


8


9


10


nchar(10)

a   1  

                           

因此在规划上,只要存放的数据有可能有中文,小喵就会加n。而除非确定数据固定会是几位不变,不然数据长度不特定就会声明加上var

此文为转贴,原文: 【topcat姗舞之间的极度凝聚】

原文:大专栏  文字型态的数据适合什么格式存进数据库 ?

原文地址:https://www.cnblogs.com/petewell/p/11516512.html

时间: 2024-10-30 04:12:20

文字型态的数据适合什么格式存进数据库 ?的相关文章

[SQL]取得数据库里的数据表、字段、型态、长度、数据结构等资讯

如果想动态做查询条件,或是撰写表单产生器,以及动态产生表单,可以利用以下语法,放到检视表里以供使用. 如果想动态做查询条件,或是撰写表单产生器,以及动态产生表单,可以利用以下语法,放到检视表里以供使用. 假设我数据库里有两个数据表分别为Departments和Employees如下: Departments 数据行名称 数据类型 长度 允许Null dno varchar 50 0 name varchar 50 0 manager varchar 50 0 budget int 4 0 Emp

取得数据库里的数据表、字段、型态、长度、数据结构等资讯 (SQL Server 2008)

取得数据库里的数据表.字段.型态.长度.数据结构等资讯 ?SELECT???????? dbo.sysobjects.name AS sTableName,?????????????????????????? dbo.syscolumns.name AS sColumnsName,?????????????????????????? dbo.syscolumns.prec AS iColumnsLength,?????????????????????????? dbo.syscolumns.co

C# 任意类型数据转JSON格式

每天都是不一样,积极的去感受生活 C# 任意类型数据转JSON格式 /// <summary> /// List转成json /// </summary> /// <typeparam name="T"></typeparam> /// <param name="jsonName"></param> /// <param name="list"></para

application/x-www-form-urlencoded multipart/form-data text/plain 后台返回的数据响应的格式类型

application/x-www-form-urlencoded multipart/form-data text/plain 为什么上传文件的表单里要加个属性 enctype  后台返回的数据响应的格式类型 上传文件的表单中<form>要加属性enctype="multipart/form-data",很多人只是死记硬背知道上传表单要这么 写,知其然而不知其所以然.那到底为什么要添加这个属性呢?它是什么意思呢?它又有什么其他可选值呢? 其实form表单在你不写encty

导入来自早期版本的 SQL Server 的本机格式数据和字符格式数据

导入来自早期版本的 SQL Server 的本机格式数据和字符格式数据 在 SQL Server 2014 中,您可以通过将 bcp 与 -V 开关一起使用,从 SQL Server 2000.SQL Server 2005.SQL Server 2008.SQL Server 2008 R2 或 SQL Server 2012 中导入本机和字符格式数据. -V 开关将使 SQL Server 2014 使用指定的 SQL Server 早期版本中的数据类型,并且数据文件格式与早期版本中的格式相

Oracle通过PL/SQL Developer导出数据为CSV格式,VARCHAR2类型的字段如果存入的是数值(例如3307830000004059)太长,最后一位会被置为0

问题描述: Oracle通过PL/SQL Developer导出数据为CSV格式,VARCHAR2类型的字段如果存入的是数值(例如3307830000004059)太长,CSV文件该列会用科学计数法表示,即使选择该列,点击数据--.>分列,固定宽度,列数据格式选择文本,最后一位仍然会被置为0. 解决方法: Oracle通过PL/SQL Developer导出数据为CSV格式,新建一个Excel文件,点击数据-->自文本,选择之前导出的CSV文件,文件类型分隔符号,选择逗号,[选中所有列],然后

聚合数据话费充值回调格式

聚合数据-手机话费充值接口文档:https://www.juhe.cn/docs/api/id/85 聚合数据话费充值回调格式 聚合账号:xxxxx 推送地址:http://www.example.com/xxx 推送形式:post 推送参数内容格式(普通参数键值对,非json): 名称 类型 说明 sporder_id string 聚合订单号 orderid string 用户自定义的单号 sta int 充值状态1:成功 9:失败 sign string 校验值,md5(appkey+sp

在Sql Server 2016中使用For Json子句把数据作为json格式导出

原文地址:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/export-query-result-as-json-format-in-sql-server-2016/ 使用for json子句把查询结果作为json字符串导出,将作为sql server 2016中首先可用的一个特性.如果你熟悉for xml子句,那么将很容易理解for json: select ccolumn, expression, column as ali

C# 将格式为20150528的数据转为日期格式

如果需要将格式为 “20150528”的数据转为日期格式2015-05-28,可以使用以下代码: string createdon_str = "20150528"; DateTime createdon_date = DateTime.ParseExact(createdon_str,"yyyyMMdd",null);