mysql等效数据类型

26 浏览
0 Comments

mysql等效数据类型

我来自SQL Server背景。在MySQL中,以下数据类型的等效类型是什么:\nNVARCHAR - 为所有语言提供国际化、多字节字符的支持\nNVARCHAR(max) - 允许存储非常长的文本文档

0
0 Comments

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

然而,在MySQL 8中,不再支持NVARCHAR数据类型。这可能是因为MySQL 8引入了新的字符集和编码方式,如utf8mb4和utf8mb4_unicode_ci。这些新的字符集和编码方式提供了更广泛的Unicode字符支持,以满足全球化和多语言应用的需求。

要解决这个问题,可以使用VARCHAR数据类型作为NVARCHAR的替代。VARCHAR数据类型在MySQL中仍然是常用的,可以存储可变长度的字符数据。使用VARCHAR,可以在创建表时指定字符集和排序规则,以确保正确的字符存储和比较。

下面是使用VARCHAR作为NVARCHAR的等价数据类型的示例:

CREATE TABLE my_table (
    my_column VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
);

在上面的示例中,通过指定字符集utf8mb4和排序规则utf8mb4_unicode_ci,可以确保存储和比较的正确性。

总结起来,MySQL 8中不再支持NVARCHAR数据类型,这可能是因为引入了新的字符集和编码方式。为了解决这个问题,可以使用VARCHAR数据类型作为替代,并在创建表时指定正确的字符集和排序规则。

0
0 Comments

MySQL中的数据类型VARCHAR和TEXT是其对应的数据类型。

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

MySQL定义了4个级别的字符集:

服务器

数据库

表格

如果不指定字符集,则从最近的上一级继承字符集。您需要确保要设置为nvarchar类型的列具有任何Unicode字符集(我认为utf8是最佳选择),可以通过显式设置或继承来实现。

对于列级别,您可以设置"character set"如下所示:

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参考文档以获取进一步的解释。

0
0 Comments

MySQL中的数据类型与Microsoft SQL Server中的数据类型并不完全对应。根据http://msdn.microsoft.com/en-us/library/ms186939.aspx,我认为VARCHAR(n) CHARSET ucs2是最接近的等效类型。但是我并没有看到很多人使用这个,更常见的是使用VARCHAR(n) CHARSET utf8。据我所知,utf8和ucs2两种字符集都允许相同的字符,只是编码方式不同。所以两者都可以使用,但我可能会选择后者,因为它更常用。

MySQL的unicode支持存在一些限制,可能会或可能不会适用于你的使用情况。请参考http://dev.mysql.com/doc/refman/5.0/en/charset-unicode.html了解更多关于MySQL的unicode支持的信息。

现在应该使用utf8mb4来表示更广泛的字符和表情符号。可以参考https://stackoverflow.com/a/30074553/318807中的答案。

在MySQL中,utf-8编码似乎并不是真正的utf-8,它只包含有限数量的字符...应该使用utf8mb4代替。

0