ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

SQL中的数字、字母和汉字

2022-04-03 19:03:04  阅读:198  来源: 互联网

标签:VARCHAR 变量 dbo Bytes 字母 数据类型 汉字 bytes 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;

执行结果:

 

标签:VARCHAR,变量,dbo,Bytes,字母,数据类型,汉字,bytes,SQL
来源: https://www.cnblogs.com/fatherofbeauty/p/16096952.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有