10桁の携帯電話番号を保存するためにどのデータ型を使用するか(例:9932234242)。 varchar(10)または大きなもの-「bigint」に行きましょうか。
番号がタイプ '0021-23141231'の場合、どのデータタイプを使用しますか?
NOT LIKE '%[^0-9]%'
)07123 456 789
、スイス= 071 234 56 78
)他の人が答えているように、たまたま数字で構成されているが、数学演算が意味をなさないデータにはvarcharを使用してください。
さらに、例の番号で、002123141231
をbigint
列に格納するとどうなるかを検討しましたか?取得すると、2123141231
になります。つまり、数値列に先頭の0
桁を格納する方法はありません。
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
を使用することをお勧めします。
varchar(50)は、携帯電話番号のデータ型に適しています。 +91やスペースなどの国コードが含まれる場合があるためです。比較のために、式の両側からすべての特殊文字を削除できます。