在SQL中输入电话号码,以零开头

时间:2018-07-15 04:29:07

标签: sql

我是SQL的新手,我需要在表格中输入手机号码,例如0425 198053。我可以输入数据,但是输入时如何显示?我使用过INTVARCHARCHAR,但是所有受这些限制的条目在显示时都会从电话号码中删除0。

我应该使用特定的约束吗?这是格式问题吗?

编辑后添加

这是我一直在使用的表

CREATE TABLE Department
(
    dID INT PRIMARY KEY,
    dName VARCHAR(20) NOT NULL,
    Address VARCHAR(50) NOT NULL,
    Phone VARCHAR(10) NOT NULL UNIQUE,
)

示例数据

dID  dName       Address    Phone
--------------------------------------
1    Sales       CBD        425198053
2    Accounts    Bundoora   429198955
3    Admin       CBD        428198758
4    Marketing   Clayton    427198757 

2 个答案:

答案 0 :(得分:0)

我只是坚持使用VARCHAR(10)。它仍然提供了一种解决方案,我只是想知道如何使其显示为零。 还是谢谢。

答案 1 :(得分:-1)

one写于2008年,但仍与之相关:

  

这包括:

     
      
  • 国际号码?
  •   
  • 扩展?
  •   
  • 除了实际数字以外的其他信息(例如“问鲍比”)?
  •   
     

如果所有这些都不是,我将使用10个字符的字段并去除所有   非数字数据。如果第一个为是,其他两个为否,我会   使用两个varchar(50)字段,一个用于原始输入,另一个用于   条带化并用于索引的所有非数字数据。如果2或3是,   我想我会做两个领域和某种疯狂的解析器来确定   什么是扩展名或其他数据并进行适当处理。的   当然,您可以通过使用   索引,当创建   索引,但我只写第二列,可能要做剥离   带有触发器的字符。

     

更新:为了解决AJAX问题,它可能没有您想象的那么糟糕。   如果实际上这是对表格执行所有操作的主要方式,   如我所说,仅将数字存储在第二列中,然后进行   该列的索引是聚簇的。

意思是,长话短说,一种在sql中保存电话号码的最佳方法是 10个字符字段或一个 varchar(50)字段

您还可以创建一个触发器(如果您愿意处理触发器),以便去除电话号码值中的所有多余字符。

考虑到触发器也可能在开始处理代码时变得混乱,但这是您的决定。