sqlvarchar类型
‘壹’ sqlSERVER中nvarchar和varchar类型的区别是什么
1.
varchar:非unicode
的字符数据
nvarchar:
unicode
数据
2.
varchar(n):
长度为
n
个字节的可变长度且非
unicode
的字符数据。n
必须是一个介于
1
和
8,000
之间的数值。存储大小为输入数据的字节的实际长度,而不是
n
个字节。所输入的数据字符长度可以为零。varchar
在
sql-92
中的同义词为
char
varying
或
character
varying。
nvarchar(n):
含
n
个字符的可变长度
unicode
字符数据。n
的值必须介于
1
与
4,000
之间。字节的存储大小是差返所输虚激饥入字符个数的两倍。所输入的数据字符长度可以为零。nvarchar
在
sql-92
中的同义词为
national
char
varying
和
national
character
varying。
3.
一个汉字占varchar(2),只占nvarchar(1),而字母只占varchar(1),那么在数据库字段求长度铅兄的时候,用varchar你就不一定知道它确切的知道它到底有几个字,如果用nvarchar,那么汉字也是nvarchar(1),字母也是nvarchar(1),那么已经很明显了.
4.
在性能上varchar的检索快于nvarchar
另外varchar与char归纳几点区别如下
varchar
的类型不以空格填满,比如varchar(100),但它的值只是"qian",则它的值就是"qian"
而char
不一样,比如char(100),它的值是"qian",而实际上它在数据库中是"qian
"(qian后共有96个空格,就是把它填满为100个字节)。
‘贰’ SQL SERVER char和varchar数据类型的区别
数据类型区别如下:
char表示的是固定长度,
varchar表示的是实际长度的数据类型
比如旦告乎:如果是char类型,当你输入字符小于长度模悉时,后补空格友塌;而是varchar类型时,则表示你输入字符的实际长度
‘叁’ SQLSERVER中nvarchar和varchar类型的区别是什么
varchar(n):变长型字符数据类型,存梁袭游储最长长度为8,000 个字符
nvarchar(n):可变长度 Unicode 数据,其最大长度为
4,000 字符.字节的存储大小是所输入字符个数的两倍,就是说它是双字节来存储数据的。如果存储数据如果存在单字节时,它也是以双字节来占用存储空间的。
varchar一橡销般适用于英文和数字。禅枝
‘肆’ SQL数据类型nchar,char,varchar与nvarchar区别
nchar与char是相似的,nvarchar与varchar是相似的。
char类型:
对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节,CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义
char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不够的字符用空格去填。帆山因为是固定长度,所以速度效率高。
Varchar类型:Varchar
的类型不以空格填满,比如varchar(100),但它的值只是"qian",则它的值就是"qian"
而char
不一样,比如char(100),它的值是"qian",而实际上它在数据库中是"qian
"(qian后共有桐悔96个空格,就是把它填满为100个字节)。
由于char是以固定长度的,所以它的速度会比varchar快得多!但程序处理起来局轿正要麻烦一点,要用trim之类的函数把两边的空格去掉!
VARCHAR存储变长数据,但存储效率没有CHAR高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为
VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。
nchar类型和Nvarchar类型是怎么一回事呢?为了与其他多种字符的转换,如中文,音标等,对每个英文(ASCII)字符都占用2个字节,对一个汉字也占用两个字节,所有的字符都占用2个字节。
关于长度与汉字
varchar(100)/char(100)能存50个汉字,nvarchar(100)/nchar(100)能存100个汉字。
‘伍’ SQL Server定义varchar类型时就必须指定长度吗
不是必须指定。
如果没有在数据定义或变量声明语句中指定n,则默认长度为1。如果在使用 CAST 和 CONVERT 函数时未指定n,则默认长度为30。
VARCHAR(M)是一种比CHAR更加灵活的数据类型,同样用于表示字符数据,但是VARCHAR可以保存可变长度的字符串。其中M代表该数据类型所允许保存的字符串的最大长度,只要长度小于该最大值的字符串都可以被保存在该数据类型中。
Microsoft SQL Server 是一个全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理。Microsoft SQL Server数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。
(5)sqlvarchar类型扩展阅读:
SQL Server 2008中在数据仓库方面的优点:
1、数据压缩
数据仓库中的数据容量随着操作系统数目的快速增加而在持续增长。内嵌在SQL Server 2008中的数据压缩使得公司可以更有效的存储数据,同时还提高了性能,因为降低了I/O 要求。
2、备份压缩
保持一直在线做基于磁盘的备份是花费很昂贵的,并且很耗时。有了SQL Server 2008的备份压缩,保持在线备份所需的存储降低了,并且备份速度明显变快了,因为所需要的磁盘I/O 减少了。
3、分区表并行
分割使公司能够更有效的管理大型的、不断增长的数据表,只要简单的将它们分割为易管理的数据块。SQL Server 2008是在SQL Server 2005中的分割的优势之上建立的,它改进了对大型的分区表的操作性能。
4、星型联接查询优化器
SQL Server 2008为普通的数据仓库场景提供了改进的查询性能。星型联接查询优化器通过辨别数据仓库连接模式降低了查询响应时间。
参考资料来源:网络-sql server 2008
‘陆’ sql中varchar(50)代表什么
此处例子----sql server
对于字符唯桐袭类型的有:
char:固定长度,存储ANSI字符,不足的补英文半角空格。
nchar:固定长度,存储Unicode字符,不足的补英文半指兄角空格
varchar:可变长度,存储ANSI字符,根据数据长度自动变化。
nvarchar:可变长度,存储Unicode字符,根据数据长度自动变化。
也就是说:varchar 可变长度,
varchar(50)即长度为:50个字符
当有存入值时,就跟据实际的值的大小(长度)轮则存入数据。
‘柒’ sql 中int nvarchar char VARchar 有什么区别
1.int 类型:
从 -2^31 (-2,147,483,648) 到 2^31 - 1(2,147,483,647) 的整型数据(所有数字)。
存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。
2. char类型:
对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节,CHAR存储定长数据很方便,CHAR字段上的索引效率极高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间。因为是固定长度,所以速度效率高。比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间。因为是固定长度,所以速度效率高。
3. VARCHAR存储变长数据
如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。
Varchar类型:Varchar 的类型不以空格填满,而Char则会填充满为止,如varchar(100),但它的值只是"qian",所以它在数据库中存的值就是"qian",而char 不一样,如char(100),它的值是"qian",而实际上它在数据库中是"qian "(qian后共有96个空格,就是把它填满为100个字节)。
注:由于char是以固定长度的,所以它的速度会比varchar快得多!但程序处理起来要麻烦一点,要用trim之类的函数把两边的空格去掉!
4. Nvarchar类型
为了与其他多种字符的转换,如中文,音标等,对每个英文(ASCII)字符都占用2个字节,对一个汉字也占用两个字节,所有的字符都占用2个字节。
varchar(n):变长型字符数据类型,存储最长长度为8,000 个字符
nvarchar(n):可变长度 Unicode 数据,其最大长度为 4,000 字符.字节的存储大小是所输入字符个数的两倍,就是说它是双字节来存储数据的。如果存储数据如果存在单字节时,它也是以双字节来占用存储空间的。
varchar一般适用于英文和数字,Nvarchar适用中文和其他字符,其中N表示Unicode常量,可以解决多语言字符集之间的转换问题。
‘捌’ SQL中varchar和nvarchar有什么区别
SQL中varchar和nvarchar区别:输入不同,含义不同。
一、输入不同:
varchar(4)可以输入4个字线,也可以输入两个汉字。
nvarchar(4)可以输四个汉字,也可以输4个字母,但最多四个。
二、含义不同:
varchar(n)长度为n个字节的可变长度且非Unicode的字符数据。n必须是一个介于1和8,000之间的数值。存储大小为输入数据的字节的实际长度,而不是n个字节。
nvarchar(n)包含n个字符的可变长度Unicode字符数据。n的值必须介于1与4,000之间。字节的存储大小是所输入字符个数的两倍。
字符数据类型
Varchar是变长字符数据,其长度不超过8KB。Char是定长字符数据,其长度最多为8KB。超过8KB的ASCII数据可以使用Text数据类型存储。例如,因为Html文档全部都是ASCII字符,并且在一般情况下长度超过8KB,所以这些文档可以Text数据类型存储在SQLServer中。
在SQLServer中,Unicode数据以Nchar、Nvarchar和Ntext数据类型存储。使用这种字符类型存储的列可以存储多个字符集中的字符。当列的长度变化时,应该使用Nvarchar字符类型,这时最多可以存储4000个字符。
以上内容参考:网络-SQL数据类型
‘玖’ SQL怎么样把numeric类型的数据转换为varchar类型的数据
可以用cast来转换。
如:列名叫grade,表名为A select cast(grade as numeric(y,x)) from A 其中y代表数据长度,x代表小数位长度。
注意:grade中必须全为数字或小数点,如果存在中文或英文,则运行时会报错。
使用CAST函数进行数据类型转换时,在下列情况下能够被接受:
(1)两个表达式的数据类型完全相同。
(2)两个表达式可隐性转换。
(3)必须显式转换数据类型。
(9)sqlvarchar类型扩展阅读
SQL中类型转换函数:
1、cast
cast(表达式 as 数据类型)
select 100.0 +cast('1000' as int) -- 1100.0 默认把字符串转换成浮整形。
2、convert
convert(数据类型,表达式)
select 100.0 + convert(int,'1000')-- 1100.0 默认把字符串转换成整形。
3、select * from student order by convert (int,bid) desc --bid列按照降序来排列,bid是varchar类型。
4、print convert(varchar(10),getdate(),120) --日期转换varchar(10)表示显示的字符长度,120表示style,可以在SSMS 帮助中查看详情。
5、cast不可以转换日期类型,convert可以通用。