Java教程

SQL中的数字、字母和汉字

本文主要是介绍SQL中的数字、字母和汉字,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

知识点001

当变量的数据类型为VARCHAR时,变量赋值后,变量中的字符所占字节数,数字和字母是1个bytes,汉字是2个bytes;

当变量的数据类型为NVARCHAR时,变量赋值后,变量中的字符所占字节数,数字、字母和汉字,均为2个bytes.

知识点002

假定变量的数据类型是VARCHAR(N)  ,含义是它能存储的变量长度是N个bytes(注意,不是bit)

例如SQL语句:DECLARE  name  VARCHAR(10),  指变量name的长度是10个字节。

我们知道,一个汉字占2个bytes,假如我们设计一个驾校管理系统,设计数据库的时候,将数据表字段name的数据类型设为VARCHAR(10)

10个字节,最多只能保存5个汉字,如果系统需要保存的人名长度大于5个汉字(比如俄罗斯总统普京,全名【弗拉基米尔·弗拉基米罗维奇·普京】,14个汉字,2个·字符),系统就会出问题。

值得注意的是,下面这个数据类型的长度问题。

假定变量的数据类型为NVARCHAR(N),含义是它能存储的变量长度是(2*N)个bytes.

SQL代码验证。

1 --汉字
2 CREATE TABLE dbo.Test1 (c1 NVARCHAR(4));  
3 INSERT dbo.Test1 VALUES ('美人她爹');  
4 SELECT DATALENGTH(c1) AS Bytes_of_Column_C1 FROM dbo.Test1;
5 
6 CREATE TABLE dbo.Test2 (c2 VARCHAR(8));  
7 INSERT dbo.Test2 VALUES ('美人她爹');  
8 SELECT DATALENGTH(c2) AS Bytes_of_Column_C2 FROM dbo.Test2;

执行结果:

1 --数字
2 CREATE TABLE dbo.Test3 (c3 NVARCHAR(4));  
3 INSERT dbo.Test3 VALUES ('1234');  
4 SELECT DATALENGTH(c3) AS Bytes_of_Column_C3 FROM dbo.Test3;   
5 
6 CREATE TABLE dbo.Test4 (c4 VARCHAR(8));  
7 INSERT dbo.Test4 VALUES ('12345678');  
8 SELECT DATALENGTH(c4) AS Bytes_of_Column_C4 FROM dbo.Test4; 

执行结果:

1 --字母
2 CREATE TABLE dbo.Test5 (c5 NVARCHAR(4));  
3 INSERT dbo.Test5 VALUES ('abcd');
4 SELECT DATALENGTH(c5) AS Bytes_of_Column_C5 FROM dbo.Test5;  
5 
6 CREATE TABLE dbo.Test6 (c6 VARCHAR(8));  
7 INSERT dbo.Test6 VALUES ('abcdefgh');
8 SELECT DATALENGTH(c6) AS Bytes_of_Column_C6 FROM dbo.Test6;

执行结果:

 

这篇关于SQL中的数字、字母和汉字的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!