Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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字符与int_Mysql_Types - Fatal编程技术网

MySQL字符与int

MySQL字符与int,mysql,types,Mysql,Types,我正在课堂上讨论MySQL中的数据类型char和int。 我们有一个由8个独立号码组成的电话号码。然而,我们找不到它们各自的优点和缺点 我们应该使用char类型还是int类型,原因是什么?取决于您希望如何表示电话号码,您是否需要区号、国家代码和类似的内容,您希望将其保存为单个列还是将其拆分 就个人而言,我会选择将区号、国家代码和电话号码表示为3列,数据类型为int,因为这样可以更容易地在一个区域中查找所有电话号码,依此类推。但是,如果目的仅仅是一个字符串值,那么字符就足够了,但是,如果有几个国家

我正在课堂上讨论MySQL中的数据类型
char
int
。 我们有一个由8个独立号码组成的电话号码。然而,我们找不到它们各自的优点和缺点


我们应该使用
char
类型还是
int
类型,原因是什么?

取决于您希望如何表示电话号码,您是否需要区号、国家代码和类似的内容,您希望将其保存为单个列还是将其拆分


就个人而言,我会选择将区号、国家代码和电话号码表示为3列,数据类型为
int
,因为这样可以更容易地在一个区域中查找所有电话号码,依此类推。但是,如果目的仅仅是一个字符串值,那么字符就足够了,但是,如果有几个国家的电话号码,我会考虑使用<代码> VARCHAR < /代码>。

< P>我开始使用<代码> VARCHAR < /代码>来存储电话号码,因为它使您在不同国家的格式中有更多的范围。存储是便宜的。

如果你有一个固定大小的字段,那么你可以使用
char(8)
->8B,mysql在固定大小的字段中工作得更快,但是如果你选择
int
->4B,你将节省空间,而且如果你在该字段上有一个索引,它的工作速度将比char快得多

您可以使用char(8)和int做一个简单的基准测试来测试写入和读取的速度


如果您有一个固定的大小,那么使用变量长度类型(如varchar或varbinary)是没有意义的,因为性能将降低不确切地了解美国,但在欧洲,国家访问代码是领先的0,而国际访问代码是领先的00或+。这是使用INT的一个缺点,因为前面的0会丢失。此外,您还有包含姓名的电话号码,即使这些姓名可以转换为数字,也最好将其保留为姓名。这是使用INT的第二个缺点。最后一个缺点是您还可以有分机号码等。所有这些都有利于VARCHAR。

谢谢您的回答。但是,我们只需要为每行存储8位数字。持有8个数字,char或int,什么能更好地完成这项工作?varchar可以完成这项工作,因为您无法用int值存储前导零。char、
varchar
int
都可以完成这项工作。在丹麦,电话号码不能有前导零。我只需要知道哪一个更适合使用,以及为什么所有这些都足以满足您的需要。然后,我个人会选择
varchar
,因为数据实际上没有那么大,因此不会对性能产生太大的影响
varchar
也将“准备好拨打国际电话号码”。但是,所有这些都可以使用。