我應該使用哪種數據類型來存儲10位數字的手機號碼(例如:9932234242)。我應該爲varchar(10)還是爲大 - 「bigint」。使用哪種數據類型來存儲手機號碼
如果數字的類型是'0021-23141231',那麼使用哪種數據類型?
我應該使用哪種數據類型來存儲10位數字的手機號碼(例如:9932234242)。我應該爲varchar(10)還是爲大 - 「bigint」。使用哪種數據類型來存儲手機號碼
如果數字的類型是'0021-23141231',那麼使用哪種數據類型?
NOT LIKE '%[^0-9]%'
)07123 456 789
格式,瑞士= 071 234 56 78
)使用帶檢查約束的varchar
以確保只允許使用數字。
事情是這樣的:
create table MyTable
(
PhoneNumber varchar(10)
constraint CK_MyTable_PhoneNumber check (PhoneNumber like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
)
如果它始終是你可能想使用char
,而不是相同的長度。
你的檢查約束只允許10個數字,所以你不妨使用char。 – cjk 2011-06-01 08:10:21
@ck - 我同意。儘管這個約束只是例子。 – 2011-06-01 08:21:06
正如其他人已經回答,使用varchar數據恰好是由數字組成,但數學運算是沒有意義的。
另外,在您的示例編號中,您是否考慮過如果將002123141231
存儲到bigint
列中會發生什麼情況?當檢索時,它將是2123141231
,即沒有辦法使用數字列來存儲前導0
數字......
很好的答案。電話號碼的確不會計算:P – nawfal 2013-07-20 21:06:26
varchar(50)適用於手機號碼數據類型。因爲它有時可能包含國家代碼,例如+91或空格。爲了比較,我們可以從表達式中刪除所有特殊字符。
+1格式在客戶端! :) – codingbadger 2011-06-01 07:37:57