在sql中varchar是可变长度的数据类型text是长度可变的数据类型。可变长度和长度可变这两个词有什么区别嘛?
1.varchar,0在数据库中作为字符串中的一个字符是不能被隐藏的,而作为int则会被隐藏;
2.datetime,专门用于存放时间的数据类型;
3.字符串,字符只是一字符串中的一个个体,字符只能表示一个字母或汉字;
4.
首先,我们来看下nvarchar和varchar的官方帮助里的说明:
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。
二、该如何选择两种字符呢?
varchar和nvarchar都能存储汉字。区别在于,一个汉字占varchar(2),只占nvarchar(1),而字母只占varchar(1),那么在数据库字段求长度的时候,用varchar你就不一定知道它确切的知道它到底有几个字,如果用nvarchar,那么汉字也是nvarchar(1),字母也是nvarchar(1),那么已经很明显了.
同时,varchar的检索快于nvarchar。
至于,具体该选择哪种,看你自己的想法和需求了
5.单引号表示单引号中的数据是实际数据,如:int
test=5;
select
'test'与select
test不同,前者会是字符串test,而后者则是5
6.'
'表示的是一个空格,表明name1与name2中间有一个空格,而三者组合成一个字符串并且所在的列命名为name
2.datetime,专门用于存放时间的数据类型;
3.字符串,字符只是一字符串中的一个个体,字符只能表示一个字母或汉字;
4.
首先,我们来看下nvarchar和varchar的官方帮助里的说明:
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。
二、该如何选择两种字符呢?
varchar和nvarchar都能存储汉字。区别在于,一个汉字占varchar(2),只占nvarchar(1),而字母只占varchar(1),那么在数据库字段求长度的时候,用varchar你就不一定知道它确切的知道它到底有几个字,如果用nvarchar,那么汉字也是nvarchar(1),字母也是nvarchar(1),那么已经很明显了.
同时,varchar的检索快于nvarchar。
至于,具体该选择哪种,看你自己的想法和需求了
5.单引号表示单引号中的数据是实际数据,如:int
test=5;
select
'test'与select
test不同,前者会是字符串test,而后者则是5
6.'
'表示的是一个空格,表明name1与name2中间有一个空格,而三者组合成一个字符串并且所在的列命名为name
温馨提示:答案为网友推荐,仅供参考
第1个回答 2009-10-01
举例来说吧
char 不可变长度 char(20)就是20个字符,如果输入的字符数不足20他就会在后面补充若干空格 凑足20个字符
varchar是可变长度的
varchar(20) 就是最多20个字符,输入的数据在不足20的时候也不补空格
可见 不可变长度的数据 其长度固定,如果实际数据少,系统会自动填充使其沾满,可变长度数据只是定义了数据的最大长度,实际数据少也不会自动补足
char 不可变长度 char(20)就是20个字符,如果输入的字符数不足20他就会在后面补充若干空格 凑足20个字符
varchar是可变长度的
varchar(20) 就是最多20个字符,输入的数据在不足20的时候也不补空格
可见 不可变长度的数据 其长度固定,如果实际数据少,系统会自动填充使其沾满,可变长度数据只是定义了数据的最大长度,实际数据少也不会自动补足
第2个回答 推荐于2016-04-05
你想单从名词上来区别要不得,因为这些都是翻译的,翻译的说法不同而已。
我们直接从类型上看
varchar是可限定的可变长度,如varchar(16),varchar(32).
最大是varchar(4000).因为普通sql数据页最大是8kb。
text类型,它本身只有16字符长度,但存的是指针,指向实际存储的位置。实际存储位置是不限制长度的。所以text对应超大型数据的存取,因为是指针指向,所以存取速度定然比varchar慢
需要提出的是varchar(max),也是不限制大小的,据说以后sql的版本里它会取代text等类型本回答被提问者采纳
我们直接从类型上看
varchar是可限定的可变长度,如varchar(16),varchar(32).
最大是varchar(4000).因为普通sql数据页最大是8kb。
text类型,它本身只有16字符长度,但存的是指针,指向实际存储的位置。实际存储位置是不限制长度的。所以text对应超大型数据的存取,因为是指针指向,所以存取速度定然比varchar慢
需要提出的是varchar(max),也是不限制大小的,据说以后sql的版本里它会取代text等类型本回答被提问者采纳