9

स्टोर करने के लिए उपयोग करने के लिए डेटाटाइप का उपयोग मैं 10 अंकों (EX.:9932234242) की मोबाइल संख्याओं को स्टोर करने के लिए किस डेटाटाइप का उपयोग करूंगा। क्या मैं वर्कर (10) या बड़े व्यक्ति के लिए जाऊंगा- "बड़ा"।मोबाइल नंबर

यदि संख्या प्रकार है- '0021-23141231', तो किस डेटाटाइप का उपयोग करना है?

उत्तर

12
  • varchar/चार लंबे सभी के लिए पर्याप्त उम्मीद (जैसे ब्रिटेन संख्या 11 लंबे होते हैं)
  • जांच बाधा केवल अंक (अभिव्यक्ति = NOT LIKE '%[^0-9]%')
  • स्थान प्रति ग्राहक (यू = 07123 456 789 में प्रारूप अनुमति देने के लिए, स्विट्जरलैंड = 071 234 56 78)
+0

+1! :) – codingbadger

3

चेक बाधा के साथ 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 उपयोग करने के लिए चाहते हो सकता है।

+0

आपकी चेक बाधा केवल 10 संख्याओं की अनुमति देती है, ताकि आप किसी भी तरह से एक char का उपयोग कर सकें। – cjk

+0

@ck - मैं सहमत हूं। हालांकि, यह बाधा सिर्फ और उदाहरण है। ग्राहक में प्रारूप के लिए –

6

जैसा कि अन्य ने उत्तर दिया है, डेटा के लिए वर्चर का उपयोग करें जो संख्यात्मक अंकों से बना होता है, लेकिन जिसके लिए गणितीय परिचालनों का कोई मतलब नहीं है।

इसके अतिरिक्त, आपके उदाहरण संख्या में, क्या आपने सोचा था कि क्या होगा यदि आपने 002123141231 को bigint कॉलम में संग्रहीत किया है? पुनर्प्राप्ति पर, यह 2123141231 होगा, यानी 0 अंक

+0

बहुत अच्छा जवाब। वास्तव में किसी फोन नंबर पर कोई गणना नहीं की जाएगी: पी – nawfal

0

वर्कर (50) मोबाइल नंबर डेटा प्रकार के लिए अच्छा है। क्योंकि इसमें कभी-कभी देश कोड शामिल हो सकता है उदाहरण के लिए +91 या रिक्त स्थान भी। तुलनात्मक उद्देश्य के लिए हम विस्तार से दोनों तरफ से सभी विशेष पात्रों को हटा सकते हैं।

संबंधित मुद्दे