前言:这些天在学习hibernate,当看到java数据类型,hibernate数据类型和SQL的数据类型的对应关系时,发现了一直都不怎么清楚的数据类型:char varchar text nchar nvarchar ntext 他们之间到底有什么区别呀?在网上搜了大半天,发现网上介绍这些数据类型的说法也大相径庭。
=================================================================================================
现在要弄清楚两个重要问题:
1、这些数据类型都出自标准SQL吗?或者是数据库厂商扩展了SQL?
2、关于他们的存储效率,编码方式,最大存储量的问题谁能有一个比较清晰和全面的解释呢?
关于第一个问题,留给大家来解答,这第2个问题在网上找了些比较可信的资料,总结了一下,大家看对不对?
char varchar text nchar nvarchar ntext
最大存储量(byte): 8000 8000 2E31-1 8000 8000 2E31-1
编码: 非unicode 非unicode 非unicode unicode unicode unicode
存储效率: 较高 较低 较低 较高 较低 较低
最大英文数: 8000 8000 2E31-1 4000 4000 2E30-1
最大中文数: 4000 4000 2E30-1 4000 4000 2E30-1
通过上面的表可以看出:
1、char 和varchar之间的差别和nchar及nvarchar之间的差别相同,char 和 nchar是定长的,而varchar和nvarchar是可变长的;不带n的存储非unicode字符,也就是英文字符占一个字节,中文字符占两个字节,相同容量,中文字符个数只有英文字符个数的一半,带n 的存储unicode字符,不管中文英文统统2个字节存储一个字符。
2、关于效率方面,定长的要比不定长的高,text和ntext也是不定长的。
表中的数据有的值得怀疑,大家多提错误!有要补充的地方请跟帖。
分享到:
相关推荐
### char、varchar、nchar、nvarchar 四种类型的区别 在数据库设计中,选择合适的字段类型对于确保数据的准确性和提高查询效率至关重要。对于字符类型的字段,SQL Server 提供了 `char`、`varchar`、`nchar` 和 `...
本文将深入探讨`CHAR`、`VARCHAR`、`TEXT`以及`NCHAR`、`NVARCHAR`、`NTEXT`的区别,帮助开发者做出更明智的选择。 1. **CHAR**: - `CHAR`是一种定长字符串类型,它会为每个字段预留指定的字节数,无论实际存储的...
sql中varchar和nvarchar的区别与使用方法Sqlserver中char,nchar,varchar与Nvarchar的区别分析基于SQL Server中char,nchar,varchar,nvarchar的使用区别深入char、varchar、text和nchar、nvarchar、ntext的区别详解SQL...
一、char、varchar、text 和 nchar、nvarchar、ntext 的区别 char、varchar、text 是用于存储字符串类型的数据,而 nchar、nvarchar、ntext 是用于存储 Unicode 字符串类型的数据。 1. char char 类型用于存储定...
这是因为过程需要一个`ntext/nchar/nvarchar`类型的参数,而`varchar`类型不满足这个要求。`varchar`用于存储非Unicode文本,而`nvarchar`用于存储Unicode文本,所以当需要处理包含Unicode字符(如特殊符号、其他...
对于更大的文本数据,可以使用`text`或`ntext`,但现在通常推荐使用`varchar(max)`和`nvarchar(max)`,它们分别可以存储最多2^31-1个字节和2^31-1个字符。 5. **性能与存储**:在存储空间有限或对性能要求较高的...
* char、varchar、text、nchar、nvarchar 或 ntext 系统数据类型和基于这些系统数据类型的所有用户定义的数据类型。 更改 SQL Server 2005 数据库的编码方式需要视情况而定,可以根据需要选择不同的编码方式,以...
在SQL数据库中,常见的数据类型有char、varchar、text、nchar、nvarchar和ntext等。 1. char:char类型存储定长数据,char字段上的索引效率高,但存储大小固定,不足的自动用空格填充,读取时可能需要用到trim()。 ...
3. 字符串数据类型包括Char、Varchar、Nchar、Nvarchar、Text和Ntext。Char和Nchar是定长字符串,Char存储非Unicode字符,Nchar存储Unicode字符,长度固定,不足部分用空格填充。Varchar和Nvarchar是变长字符串,...
3. 字符串类型:CHAR、VARCHAR、NCHAR、NVARCHAR、TEXT、NTEXT、IMAGE。 4. 日期和时间类型:DATE、TIME、DATETIME、SMALLDATETIME、DATETIME2、TIME2、DATETIMEOFFSET。 5. 二进制类型:BINARY、VARBINARY、IMAGE...
字符串类型包括Char、varchar、text、nchar、nvarchar和ntext等。每种类型都有其特点和应用场景。例如,Char用于存储固定长度的字符串,varchar用于存储可变长度的字符串,text用于存储大型的字符串,nchar和...
在本文中,我们将重点关注字符类型,包括`CHAR`, `NCHAR`, `VARCHAR`, `NVARCHAR`, `TEXT`, 和 `NTEXT`。 1. **CHAR和NCHAR**: - `CHAR`是固定长度的字符数据类型,长度范围是1到8,000个字符。无论实际存储的数据...
在SQL Server中,字符数据类型是用来存储文本信息的,包括`char`、`nchar`、`varchar`、`nvarchar`、`text`和`ntext`。这些数据类型各有其特点和适用场景。 1. `char`和`nchar`: - `char(n)`是定长的非Unicode...
6. 字符型:char、varchar、nchar和nvarchar,其中nchar和nvarchar支持Unicode字符,char和varchar为固定长度和可变长度,超出长度会被截断或用空格填充。 7. 文本和图像型:text、ntext和image,用于存储大量文本...
5. **Character (char, text, varchar, nchar, ntext, nvarchar)**: 这些是SQL Server的字符和文本类型。`char`和`nchar`是固定长度的字符串,`varchar`和`nvarchar`是可变长度的。`text`和`ntext`用于存储大量文本...
Unicode 字符串型是用于存储 Unicode 字符串数据,例如 nchar、nvarchar、ntext。nchar 和 nvarchar 需要指定字符长度,例如nchar(50)、nvarchar(50);ntext 类型不必指定长度。nchar 的存储空间为 1 个字符 2 ...
非Unicode字符数据类型主要包含Char、Varchar和Text,而Unicode数据类型则包括Nchar、Nvarchar和Ntext。非Unicode字符数据类型主要以单字节来存储英文字符和特殊符号,而对于汉字这样的双字节字符则使用两个字节来...
* 文本数据类型:char、varchar、nchar、nvarchar、text、ntext * 日期和时间:datetime * 数字数据:int、smallint、tinyint、bigint、float 八、主键和外键 * 主键:一个表只能有一个主键,选择主键的原则是最少...