我在一周前才开始学习SQL,我注意到在SQL Server中,字符串可以是nvarchar(5)
或nvarchar(20)
类型或任何其他数字。我只是想知道不同数量的nvarchar
之间有什么区别?
答案 0 :(得分:1)
这是您所指的声明性陈述。
通过声明,这是一种声明方法。 MySQL根据上下文有不同的规则,因此值得花时间了解语法。
在SQL中,例如MySQL,有一些数据类型可以是可变长度的。
你看到的是NVARCHAR长度不同的声明性陈述。
<DATA TYPE> (<character length>)
NVARCHAR(5) -- 5 unicode characters long.
NVARCHAR(20) -- unicode length of 20 characters
如果未指定长度,则这些类型的数据将为一个字符长度。所以这就是标准允许括号声明的原因。
语法差异的示例:
DECLARE @string NVARCHAR(5);
SELECT CAST(<some_column> AS NVARCHAR(20)
FROM <some_table>
CREATE TABLE <schema_name>.<table_name>
( firstColumn NVARCHAR(20) NOT NULL
, secondColumn INT not null)
与许多语言一样,除非存在限制以防止溢出输入,否则任何大于长度的字符的插入都会得到TRUNCATED
...或者切断以适应列内部。
答案 1 :(得分:1)
数字代表内容长度。在定义为nvarchar(5)
的列或变量中,您可以放置一个5个字符长的unicode字符串。在定义为nvarchar(20)
的列或变量中,您可以放置一个长度为20个字符的unicode字符串
这是sql中非常基本的东西,我建议你阅读一篇很好的sql教程,然后带着更高级的问题来到这里。