mysql server nchar_SQL Server NChar数据类型

在本教程中,将学习如何使用SQL Server NCHAR数据类型来存储固定长度的Unicode字符串数据。

要在数据库中存储固定长度的Unicode字符串数据,请使用SQL Server NCHAR数据类型:

NCHAR(n)

在此语法中,n指定字符串长度,范围从1到4000。 NCHAR值的存储大小是n个字节的两倍。

NCHAR的ISO同义词是NATIONAL CHAR和NATIONAL CHARACTER,因此可以互换使用它们。

与CHAR数据类型类似,只能使用NCHAR存储固定长度的字符串。如果数据值的长度是可变的,则应考虑使用VARCHAR或NVARCHAR数据类型。

CHAR与NCHAR比较

以下是CHAR和NCHAR数据类型之间的主要区别:

CHAR

NCHAR

仅存储非Unicode字符。

以UNICODE UCS-2字符的形式存储Unicode字符。

需要1个字节来存储一个字符。

需要2个字节来存储一个字符。

存储大小等于列定义或变量声明中指定的大小。

存储大小等于列定义或变量声明中指定的大小的两倍。

最多可存储8000个字符。

最多可存储4000个字符。

SQL Server NCHAR示例

以下语句是用来创建一个包含一个NCHAR列的新表:

CREATE TABLE test.sql_server_nchar (

val NCHAR(1) NOT NULL

);

以下INSERT语句将中文汉字:"易"插入NCHAR列:

INSERT INTO test.sql_server_nchar (val)

VALUES

(N'易');

请注意,必须在Unicode字符串常量前加上字母N前缀。否则,SQL Server会将字符串转换为数据库的默认代码页,这可能无法识别某些特定的Unicode字符。

如果插入长度大于列定义中指定长度的字符串,SQL Server将发出错误并终止该语句。

例如,以下语句尝试将包含两个字符的字符串插入test.sql_server_nchar表的val列中:

INSERT INTO test.sql_server_nchar (val)

VALUES

(N'易百');

SQL Server发出以下错误消息:

消息 8152,级别 16,状态 13,第 1 行

将截断字符串或二进制数据。

语句已终止。

要查找val列的字符数和字节数,可以使用LEN和DATALENGTH函数,如下所示:

SELECT

val,

len(val) length,

DATALENGTH(val) data_length

FROM

test.sql_server_nchar;

执行上面查询语句,得到以下结果:

d48c514a8daff4a1e276922380864dc8.png

在本教程中,学习了如何使用SQL Server NCHAR数据类型在数据库中存储固定长度的Unicode字符串。

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值