cevap

12
  • varchar/kömür beklenen tüm yeterince uzun (örneğin, UK rakam uzunluğunda 11 olan) yerele başına istemcisi (UK = 07123 456 789 tek basamaklı (ekspresyon = NOT LIKE '%[^0-9]%')
  • biçimi sağlamak için
  • onay kısıtlama, İsviçre = 071 234 56 78)
+0

+1! :) – codingbadger

3

Yalnızca sayılara izin verildiğinden emin olmak için kontrol sınırlamasıyla varchar kullanın. Böyle

şey:

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]') 
) 

bunun yerine char kullanmak isteyebilirsiniz aynı uzunlukta daima ise.

+0

Kontrol kısıtlamanız yalnızca 10 sayıya izin verir, bu nedenle yine de bir char kullanabilirsiniz. – cjk

+0

@ck - Kabul ediyorum. Bununla birlikte, bu kısıtlama sadece ve örneğidir. İstemcide format için –

6

diğerleri cevap gibi, sayısal rakamlardan oluşmalıdır olur, ancak kendileri için matematiksel işlemler hiçbir anlam veriler için kullanılması varchar. Ayrıca, örnek numaranızda, 002123141231'u bir bigint sütununa depolarsanız ne olacağını düşünürdünüz?Aldıktan sonra, 2123141231 olacaktır, yani, önde gelen 0 rakamlarını saklamak için sayısal bir sütunun bir yolu yoktur ...

+0

çok iyi cevap. bir telefon numarasında hiçbir hesaplama yapılmayacaktır: P – nawfal

0

Varchar (50) cep telefonu numarası veri türü için iyidir. çünkü bazen ülke kodu örneğin +91 veya boşluklar içerebilir. Karşılaştırma amacıyla, tüm özel karakterleri açıklıktaki her iki taraftan da kaldırabiliriz.