Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 不同数字的nvarchar之间有什么区别?_Sql_Sql Server_Nvarchar - Fatal编程技术网

Sql 不同数字的nvarchar之间有什么区别?

Sql 不同数字的nvarchar之间有什么区别?,sql,sql-server,nvarchar,Sql,Sql Server,Nvarchar,我不到一周前才开始学习SQL,我注意到在SQL Server中,字符串的类型可以是nvarhar5或nvarhar20或任何其他数字。我只是想知道不同号码的女巫有什么不同 这是您所指的声明性语句 通过声明式,这是一种声明方法。MySQL根据上下文有不同的规则,所以花时间了解语法是值得的 在SQL(如MySQL)中,有些数据类型可以是可变长度的 您看到的是一个声明性语句,其中NVARCHAR的长度不同 <DATA TYPE> (<character length>) NV

我不到一周前才开始学习SQL,我注意到在SQL Server中,字符串的类型可以是nvarhar5或nvarhar20或任何其他数字。我只是想知道不同号码的女巫有什么不同

这是您所指的声明性语句

通过声明式,这是一种声明方法。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)

与许多语言一样,除非有防止输入溢出的约束,否则任何大于长度的字符插入都会被截断…或被截断以适合列内部

数字表示内容长度。在定义为nvarchar5的列或变量中,可以放置5个字符长的unicode字符串。在定义为NVARCHA20的列或变量中,可以放置20个字符长的unicode字符串。
这些都是sql中非常基本的内容,我建议您阅读一本好的sql教程,并在这里提出一些更高级的问题。

可能与@theinarasu重复至少,问题不在于性能,而在于语言语法。您对一本好的sql书有什么建议吗?而且,当我指定一个nvarchar5时,我仍然可以插入大于5的字符串长度,这是否会发生?非常感谢你的帮助!这不是一本书,但您可以从W3SQL教程开始,然后继续学习更高级的内容。如果尝试将长度为20个字符的字符串插入nvarchar5列,sql server将引发一个错误,表示字符串或二进制数据将被截断。