Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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
mysql等效数据类型_Mysql_Sql Server_Types - Fatal编程技术网

mysql等效数据类型

mysql等效数据类型,mysql,sql-server,types,Mysql,Sql Server,Types,我来自SQL Server背景。在MySQL中,以下各项的等效数据类型是什么: NVARCHAR-支持所有语言的国际多字节字符 NVARCHAR(max)-允许非常长的文本文档等效的是VARCHAR或text MySql支持nchar和nvarchar,但方式不同。这是使用字符集和排序规则实现的(这是一组用于使用字符集比较字符串的规则,例如比较是否应该区分大小写) MySql在4级定义字符集: 服务器 数据库 表 纵队 如果未指定字符集,则该字符集将从直接顶层继承。您需要做的是确保您想要创建的n

我来自SQL Server背景。在MySQL中,以下各项的等效数据类型是什么:

NVARCHAR
-支持所有语言的国际多字节字符


NVARCHAR(max)
-允许非常长的文本文档

等效的是
VARCHAR
text

MySql支持nchar和nvarchar,但方式不同。这是使用字符集和排序规则实现的(这是一组用于使用字符集比较字符串的规则,例如比较是否应该区分大小写)

MySql在4级定义字符集:

服务器
数据库

纵队

如果未指定字符集,则该字符集将从直接顶层继承。您需要做的是确保您想要创建的nvarchar类型的列显式地或通过继承将“字符集”设置为任何unicode字符集(我认为utf8是最佳选择)

对于列级别,可以按如下方式设置“字符集”:

create table nvarchar_test
(
_id varchar(10) character set utf8,
_name varchar(200) character set ascii
)
在上面的例子中,_id将能够接受10个unicode字符,_name将能够接受100个unicode字符(每个unicode字符将计算为两个ascii字符)

请浏览MySql参考以获得进一步解释。

顺便说一下,我会这么说

VARCHAR(n) CHARSET ucs2
是最接近的等价物。但是我没有看到很多人使用这个,更多的人使用:

VARCHAR(n) CHARSET utf8
据我所知,字符集utf8和ucs2都允许使用相同的字符,只是编码不同。所以这两种方法中的任何一种都应该有效,我可能会选择后者,因为后者使用得更频繁

MySQL的unicode支持中存在一些限制,这些限制可能适用于您的用例,也可能不适用于您的用例。有关MySQL的unicode支持的更多信息,请参阅。

在MySQL 5中,支持NVARCHAR(国家Varchar的缩写),并使用utf8作为预定义字符集


据我所知,nvarchar(n)可以存储1到4000个字符,这并不是我对“非常长的文本文档”的定义。你真的是这个意思吗?NVARCHAR(MAX)是用来做长的东西的。不是VARCHAR(n)。现在应该使用utf8mb4来表示更广泛的字符和表情。请看mysql中的utf-8编码似乎不是真正的utf-8,它只包含有限数量的字符。。。应改用utf8mb4