SQL सर्वर डेटा प्रकार उदाहरणों के साथ

⚡ स्मार्ट सारांश

SQL सर्वर डेटा प्रकार यह परिभाषित करते हैं कि कोई कॉलम या वेरिएबल किस प्रकार का मान संग्रहीत कर सकता है, जैसे कि पूर्णांक, दशमलव, वर्ण, दिनांक या बाइनरी। सही प्रकार का चयन वैध डेटा सुनिश्चित करता है और मेमोरी का कुशलतापूर्वक उपयोग करता है।

  • 🔢 सटीक संख्यात्मक: bigint, int, smallint, tinyint, bit, decimal, numeric, money और smallmoney सटीक पूर्ण और निश्चित-बिंदु संख्याओं को संग्रहीत करते हैं।
  • अनुमानित संख्यात्मक मान: फ्लोट और रियल वैज्ञानिक गणनाओं में उपयोग किए जाने वाले अनुमानित फ्लोटिंग-पॉइंट मानों को संग्रहीत करते हैं।
  • 📅 दिनांक और समय: datetime, smalldatetime, date, time, datetimeoffset और datetime2 अस्थायी मानों को संग्रहीत करते हैं।
  • 🔤 अक्षर और यूनिकोड: char, varchar और text में टेक्स्ट होता है; nchar, nvarchar और ntext में यूनिकोड टेक्स्ट होता है।
  • 🖼️ बाइनरी और अन्य: बाइनरी, वैरबाइनरी और इमेज बाइट डेटा स्टोर करते हैं; कर्सर, एक्सएमएल और यूनिकआइडेंटिफायर विशेष जरूरतों को पूरा करते हैं।
  • 🧠 का चयन Wisely: प्रत्येक कॉलम को सबसे छोटे उपयुक्त टाइप से मिलाने से स्टोरेज दक्षता और डेटा अखंडता में सुधार होता है।

SQL सर्वर डेटा प्रकार उदाहरणों के साथ

डेटा प्रकार क्या है?

एक डेटा प्रकार में एमएस SQL ​​सर्वर इसे किसी कॉलम या वेरिएबल में संग्रहीत किए जा सकने वाले डेटा के प्रकार के रूप में परिभाषित किया जाता है। यह उस प्रकार का डेटा है जिसे कोई ऑब्जेक्ट धारण करता है, जैसे कि पूर्णांक, वर्ण या स्ट्रिंग। किसी भी संरचना को बनाते समय, तालिका or परिवर्तनशीलनाम निर्दिष्ट करने के अलावा, आप उस डेटा का प्रकार भी निर्धारित करते हैं जिसे वह संग्रहीत करेगा।

MS SQL डेटाटाइप का उपयोग कैसे करें

किसी कॉलम या वेरिएबल में संग्रहीत किए जा सकने वाले डेटा के प्रकार को पहले से परिभाषित करना आवश्यक है। डेटा प्रकार निर्धारित करने से उपयोगकर्ता को किसी भी अप्रत्याशित या अमान्य डेटा को दर्ज करने से भी रोका जा सकता है।

किसी वेरिएबल या कॉलम को उपयुक्त डेटा प्रकार निर्दिष्ट करके आप मेमोरी का कुशलतापूर्वक उपयोग कर सकते हैं, जिससे उस कॉलम के डेटा के लिए केवल आवश्यक मात्रा में सिस्टम मेमोरी आवंटित होती है।

एमएस एसक्यूएल बुनियादी डेटा प्रकारों की एक विस्तृत श्रृंखला प्रदान करता है। एसक्यूएल उपयोगकर्ता की आवश्यकताओं के अनुरूप, जैसे कि दिनांक, बाइनरी, चित्र, आदि।

डेटाटाइप्स का उपयोग क्यों करें?

किसी वेबसाइट एप्लिकेशन के लिए एक साधारण साइन-अप पेज का उदाहरण लें। इसमें तीन इनपुट फ़ील्ड हैं: पहला नाम, अंतिम नाम और संपर्क नंबर।

यहां हमें यह ध्यान रखना चाहिए कि वास्तविक परिस्थितियों में:

  • “प्रथम/अंतिम नाम” हमेशा वर्णमाला क्रम में होगा।
  • "संपर्क" हमेशा संख्यात्मक होगा।

नीचे दिया गया उदाहरण साइन-अप फॉर्म पर इन फ़ील्ड्स को दर्शाता है।

साइन-अप फ़ॉर्म का उदाहरण जिसमें प्रथम और अंतिम नाम को वर्णों के रूप में और संपर्क को पूर्णांक के रूप में परिभाषित किया गया है।

ऊपर दिए गए चित्र से, "प्रथम/अंतिम नाम" को एक अक्षर के रूप में और "संपर्क" को एक पूर्णांक के रूप में परिभाषित करना तर्कसंगत प्रतीत होता है।

यह स्पष्ट है कि किसी भी एप्लिकेशन में, सभी फ़ील्ड में किसी न किसी प्रकार का डेटा होता है, उदाहरण के लिए संख्यात्मक, वर्णानुक्रमिक, दिनांक, और कई अन्य।

यह भी ध्यान रखें कि विभिन्न डेटा प्रकारों की मेमोरी आवश्यकताएँ अलग-अलग होती हैं। इसलिए, मेमोरी का कुशलतापूर्वक उपयोग करने के लिए कॉलम या वेरिएबल को उस डेटा प्रकार के साथ परिभाषित करना अधिक उपयुक्त है जिसे वह संग्रहीत करेगा।

MS SQL सर्वर में उपलब्ध डेटा प्रकार

यहां एमएस एसक्यूएल सर्वर डेटा प्रकारों की सूची दी गई है। एमएस एसक्यूएल सर्वर निम्नलिखित श्रेणियों के डेटा प्रकारों का समर्थन करता है:

  • सटीक संख्यात्मक
  • अनुमानित संख्यात्मक
  • तिथि और समय
  • वर्ण स्ट्रिंग
  • यूनिकोड वर्ण स्ट्रिंग
  • बाइनरी स्ट्रिंग्स
  • अन्य डेटा प्रकार

नीचे दिए गए आरेख में एमएस एसक्यूएल सर्वर डेटा प्रकारों को इन श्रेणियों में समूहित किया गया है।

आरेख समूहping एमएस एसक्यूएल सर्वर डेटा प्रकारों को उनकी सात श्रेणियों में वर्गीकृत किया गया है।

SQL में सटीक संख्यात्मक डेटा प्रकार

SQL सर्वर में सटीक संख्यात्मक के नौ उप-डेटा प्रकार हैं। प्रत्येक परिभाषित सीमा के भीतर पूर्ण या निश्चित-बिंदु संख्याओं को संग्रहीत करता है।

डाटा प्रकार विवरण निचली सीमा ऊपरी सीमा याद
bigint यह दी गई सीमा में पूर्ण संख्याओं को संग्रहीत करता है −2^63 (−9,223,372,036,854,775,808) 2^63−1 (9,223,372,036,854,775,807) 8 बाइट्स
int यह दी गई सीमा में पूर्ण संख्याओं को संग्रहीत करता है −2^31 (−2,147,483,648) 2^31−1 (2,147,483,647) 4 बाइट्स
छोटा सा यह दी गई सीमा में पूर्ण संख्याओं को संग्रहीत करता है −2^15 (−32,768) 2^15−1 (32,767) 2 बाइट्स
टिनिंट यह दी गई सीमा में पूर्ण संख्याओं को संग्रहीत करता है 0 255 1 बाइट
बिट यह 0, 1, या NULL मान ले सकता है। 0 1 1 बाइट / 8-बिट कॉलम
दशमलव पैमाने और निश्चित परिशुद्धता संख्या के लिए उपयोग किया जाता है −10^38+1 10^38−1 5 से 17 बाइट्स
सांख्यिक पैमाने और निश्चित परिशुद्धता संख्या के लिए उपयोग किया जाता है −10^38+1 10^38−1 5 से 17 बाइट्स
धन मौद्रिक आंकड़ों के लिए उपयोग किया जाता है -922,337,203,685,477.5808 +922,337,203,685,477.5807 8 बाइट्स
स्मॉलमनी मौद्रिक आंकड़ों के लिए उपयोग किया जाता है -214,478.3648 +214,478.3647 4 बाइट्स

SQL सर्वर में सटीक संख्यात्मक डेटा प्रकारों के उदाहरण:

प्रश्न:

DECLARE @Datatype_Int INT = 2
PRINT @Datatype_Int

आउटपुट:

2

सिंटेक्स:

Decimal (P,S)

यहां, P परिशुद्धता है और S पैमाना है।

प्रश्न:

DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31
PRINT @Datatype_Decimal

आउटपुट:

2.31

SQL में अनुमानित संख्यात्मक डेटा प्रकार

SQL की अनुमानित संख्यात्मक श्रेणी में फ्लोटिंग-पॉइंट और वास्तविक मान शामिल हैं। इन डेटा प्रकारों का उपयोग मुख्य रूप से वैज्ञानिक गणनाओं में किया जाता है।

डाटा प्रकार विवरण निचली सीमा ऊपरी सीमा याद शुद्धता
फ्लोट(एन) फ़्लोटिंग परिशुद्धता संख्या के लिए उपयोग किया जाता है −1.79ई+308 1.79 + 308 N के मान पर निर्भर करता है 15 अंक
वास्तविक फ़्लोटिंग परिशुद्धता संख्या के लिए उपयोग किया जाता है −3.40ई+38 3.40 + 38 4 बाइट्स 7 अंक

फ्लोट प्रकार के लिए निम्नलिखित सिंटैक्स का उपयोग किया जाता है:

Syntax:  FLOAT [(n)]

यहां, n वैज्ञानिक संकेतन में फ्लोट संख्या के मेंटिसा को संग्रहीत करने के लिए उपयोग किए जाने वाले बिट्स की संख्या है। डिफ़ॉल्ट रूप से, n का मान 53 है।

जब आप फ्लोट जैसे डेटा प्रकार को परिभाषित करते हैं, तो n का मान 1 और 53 के बीच होना चाहिए। SQL सर्वर n को दो संभावित मानों में से एक मानता है: यदि 1<=n<=24, तो n को 24 माना जाता है; यदि 25<=n<=53, तो n को 53 माना जाता है।

उदाहरण प्रश्न:

DECLARE @Datatype_Float FLOAT(24) = 22.1234
PRINT @Datatype_Float

आउटपुट:

22.1234

SQL में दिनांक और समय डेटा प्रकार

इस श्रेणी में दिनांक और समय से संबंधित डेटा संग्रहीत होता है।

डाटा प्रकार विवरण भंडारण का आकार शुद्धता निचली सीमा ऊपरी रेंज
दिनांक समय 1 जनवरी 1753 से 31 दिसंबर 9999 तक की तारीख और समय निर्दिष्ट करने के लिए उपयोग किया जाता है। इसकी सटीकता 3.33 मिलीसेकंड है। 8 बाइट्स .000, .003, .007 की वृद्धि के लिए पूर्णांकित 1753-01-01 9999-12-31
छोटी तिथिसमय इसका उपयोग 1 जनवरी, 1900 से 6 जून, 2079 तक की तिथि और समय निर्दिष्ट करने के लिए किया जाता है। इसकी सटीकता 1 मिनट है। 4 बाइट्स, निश्चित 1 मिनट 1900-01-01 2079-06-06
डेटा इसका उपयोग केवल 1 जनवरी, 0001 से 31 दिसंबर, 9999 तक की तिथियों को संग्रहीत करने के लिए किया जाता था। 3 बाइट्स, निश्चित 1 दिन 0001-01-01 9999-12-31
पहर इसका उपयोग केवल 100 नैनोसेकंड की सटीकता वाले समय मानों को संग्रहीत करने के लिए किया जाता है। 5 बाइट्स 100 नैनोसेकंड 00:00:00.0000000 23:59:59.9999999
दिनांकसमयऑफ़सेट यह datetime के समान है लेकिन इसमें टाइम ज़ोन ऑफ़सेट होता है। 10 बाइट्स 100 नैनोसेकंड 0001-01-01 9999-12-31
डेटाइम २ 1 जनवरी 0001 से 31 दिसंबर 9999 तक की तिथि और समय निर्दिष्ट करने के लिए उपयोग किया जाता है 6 बाइट्स 100 नैनोसेकंड 0001-01-01 9999-12-31

उदाहरण प्रश्न:

DECLARE @Datatype_Date DATE = '2030-01-01'
PRINT @Datatype_Date

आउटपुट:

'2030-01-01'

SQL में कैरेक्टर स्ट्रिंग्स डेटा प्रकार

यह श्रेणी वर्ण प्रकारों से संबंधित है। यह आपको निश्चित और परिवर्तनीय लंबाई के वर्ण डेटा को परिभाषित करने की अनुमति देती है। इसमें चार प्रकार के डेटा प्रकार हैं। नीचे वर्ण स्ट्रिंग डेटा प्रकार उदाहरणों सहित दिए गए हैं।

डाटा प्रकार विवरण निचली सीमा ऊपरी सीमा याद
टैंक यह एक निश्चित चौड़ाई वाली वर्ण स्ट्रिंग है। यह अधिकतम 8,000 वर्ण संग्रहीत करता है। 0 वर्ण 8000 वर्ण एन बाइट्स
वर्चर यह एक कैरेक्टर स्ट्रिंग है जिसकी चौड़ाई परिवर्तनीय है। 0 वर्ण 8000 वर्ण n बाइट्स + 2 बाइट्स
वर्चर (अधिकतम) यह एक चर चौड़ाई वाला वर्ण स्ट्रिंग है। यह अधिकतम 1,073,741,824 वर्ण संग्रहीत करता है। 0 वर्ण 2^31 वर्ण n बाइट्स + 2 बाइट्स
टेक्स्ट यह एक वेरिएबल चौड़ाई वाली कैरेक्टर स्ट्रिंग है। इसमें अधिकतम 2 जीबी टेक्स्ट डेटा स्टोर किया जा सकता है। 0 वर्ण 2,147,483,647 वर्ण n बाइट्स + 4 बाइट्स

उदाहरण प्रश्न:

DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype'
PRINT @Datatype_Char

आउटपुट:

यह कैरेक्टर डेटाटाइप है

SQL में यूनिकोड वर्ण स्ट्रिंग डेटा प्रकार

इस श्रेणी में यूटीएफ-16 वर्ण एन्कोडिंग का उपयोग करने वाले सभी यूनिकोड वर्ण संग्रहीत होते हैं।

डाटा प्रकार विवरण निचली सीमा ऊपरी सीमा याद
नचर यह निश्चित चौड़ाई वाली एक यूनिकोड स्ट्रिंग है। 0 वर्ण 4000 वर्ण 2 बार n बाइट्स
एनवर्चर यह परिवर्तनीय चौड़ाई वाली एक यूनिकोड स्ट्रिंग है। 0 वर्ण 4000 वर्ण 2 बार n बाइट्स + 2 बाइट्स
ntext यह परिवर्तनीय चौड़ाई वाली एक यूनिकोड स्ट्रिंग है। 0 वर्ण 1,073,741,823 वर्ण स्ट्रिंग की लंबाई का 2 गुना

उदाहरण प्रश्न:

DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype'
PRINT @Datatype_nChar

आउटपुट:

यह nCharacter डेटाटाइप है

SQL में बाइनरी स्ट्रिंग डेटा प्रकार

इस श्रेणी में निश्चित और परिवर्तनीय लंबाई वाली बाइनरी स्ट्रिंग शामिल हैं।

डाटा प्रकार विवरण निचली सीमा ऊपरी सीमा याद
बाइनरी यह एक निश्चित चौड़ाई वाली बाइनरी स्ट्रिंग है। इसमें अधिकतम 8,000 बाइट्स डेटा स्टोर किया जा सकता है। 0 बाइट्स 8000 बाइट्स एन बाइट्स
वर्बाइनरी यह परिवर्तनीय चौड़ाई वाली एक बाइनरी स्ट्रिंग है। इसमें अधिकतम 8,000 बाइट्स डेटा स्टोर किया जा सकता है। 0 बाइट्स 8000 बाइट्स दर्ज किए गए डेटा की वास्तविक लंबाई + 2 बाइट्स
की छवि यह परिवर्तनीय चौड़ाई वाली एक बाइनरी स्ट्रिंग है। इसमें अधिकतम 2 जीबी डेटा स्टोर किया जा सकता है। 0 बाइट्स 2,147,483,647 बाइट्स -

उदाहरण प्रश्न:

DECLARE @Datatype_Binary BINARY(2) = 12;
PRINT @Datatype_Binary

आउटपुट:

0x000C

SQL में अन्य डेटाटाइप

ये अन्य SQL सर्वर डेटा प्रकार हैं, जिनका विवरण नीचे दिया गया है:

डाटा प्रकार विवरण
कर्सर इसका आउटपुट sp_cursor_list और sp_describe_cursor का एक कॉलम है। यह कर्सर वेरिएबल का नाम लौटाता है।
रोववर्जन यह टेबल की पंक्तियों पर संस्करण-मुहर लगाता है।
पदानुक्रम यह डेटा प्रकार पदानुक्रम में एक स्थिति को दर्शाता है।
विशिष्ट पहचानकर्ता यह एक GUID को संग्रहीत करता है, जिसे अक्सर वर्ण अभिव्यक्ति से परिवर्तित किया जाता है।
एसक्यूएल_वेरिएंट यह SQL सर्वर द्वारा समर्थित डेटा प्रकारों के मानों को संग्रहीत करता है।
एक्सएमएल यह XML डेटा को एक कॉलम में संग्रहीत करता है।
स्थानिक ज्यामिति प्रकार यह डेटा को समतल निर्देशांक प्रणाली में प्रदर्शित करता है।
स्थानिक भूगोल प्रकार यह गोल-पृथ्वी निर्देशांक प्रणाली में डेटा का प्रतिनिधित्व करता है।
तालिका यह बाद में प्रसंस्करण के लिए परिणाम सेट संग्रहीत करता है।

रोचक तथ्य!

  • डेटा पुनर्प्राप्त करते समय CHAR डेटा प्रकार VARCHAR डेटा प्रकार की तुलना में तेज़ होता है, क्योंकि इसकी निश्चित चौड़ाई लंबाई के हिसाब से गणना करने की आवश्यकता को समाप्त कर देती है।ping.

अक्सर पूछे जाने वाले प्रश्न

VARCHAR प्रत्येक गैर-यूनिकोड वर्ण को एक बाइट में संग्रहीत करता है, जबकि NVARCHAR प्रत्येक यूनिकोड वर्ण को दो बाइट में संग्रहीत करता है। जब किसी कॉलम में एक से अधिक भाषाओं या एक ही कोड पेज से बाहर के प्रतीकों को संग्रहीत करना हो, तो NVARCHAR का चयन करें; अन्यथा VARCHAR कम स्टोरेज का उपयोग करता है।

जब मान बिल्कुल सटीक होने चाहिए, जैसे कि पैसे या माप, तो DECIMAL (या NUMERIC) का उपयोग करें, क्योंकि यह निश्चित परिशुद्धता को संग्रहीत करता है। अनुमानित वैज्ञानिक मानों के लिए FLOAT का उपयोग करें, जहाँ मामूली राउंडिंग अंतर स्वीकार्य हैं और सटीकता की तुलना में एक विस्तृत रेंज अधिक मायने रखती है।

जी हां। SQL सर्वर में, DECIMAL और NUMERIC शब्द कार्यात्मक रूप से समान हैं। दोनों परिशुद्धता और स्केल स्वीकार करते हैं और सटीक निश्चित-बिंदु संख्याएँ संग्रहीत करते हैं, इसलिए दोनों कीवर्ड एक दूसरे के स्थान पर उपयोग किए जा सकते हैं। पठनीयता के लिए आपकी टीम जिस भी नाम को प्राथमिकता दे, आप उसका उपयोग कर सकते हैं।

CHAR एक निश्चित लंबाई का टाइप है जो छोटी वैल्यू को स्पेस से भरता है, इसलिए हर वैल्यू घोषित चौड़ाई का उपयोग करती है। VARCHAR परिवर्तनीय लंबाई का टाइप है और केवल दर्ज किए गए कैरेक्टर और दो बाइट्स स्टोर करता है। एकसमान कोड के लिए CHAR और अलग-अलग लंबाई के टेक्स्ट के लिए VARCHAR का उपयोग करें।

हां. तालिका में परिवर्तन table_name ALTER COLUMN column_name new_type कमांड कॉलम के डेटा प्रकार को बदलता है। यह परिवर्तन तभी सफल होता है जब मौजूदा मान नए प्रकार में आसानी से परिवर्तित हो जाते हैं; अन्यथा यह विफल हो जाता है, इसलिए पहले रूपांतरणों का परीक्षण करें और डेटा का बैकअप लें।

सामान्य VARCHAR(n) में अधिकतम 8,000 अक्षर संग्रहीत किए जा सकते हैं। VARCHAR(max) में लगभग 2 GB (2³¹⁻¹ बाइट्स) तक डेटा संग्रहीत किया जा सकता है और यह 8,000 अक्षरों से अधिक के बड़े टेक्स्ट के लिए है। VARCHAR(max) का उपयोग केवल तभी करें जब मान वास्तव में इतने बड़े हो सकते हों।

हां. गिटहब कोपिलॉट यह कॉलम डेटा प्रकारों का सुझाव दे सकता है और सामान्य भाषा के संकेतों से DECLARE और CREATE TABLE स्टेटमेंट उत्पन्न कर सकता है। उत्पादन में इसके सुझावों को लागू करने से पहले हमेशा अपने डेटा के अनुसार परिशुद्धता, स्केल, लंबाई और यूनिकोड आवश्यकताओं की पुष्टि करें।

कृत्रिम बुद्धिमत्ता और मशीन लर्निंग उपकरण नमूना डेटा की समीक्षा करके उपयुक्त प्रकार, परिशुद्धता और लंबाई की अनुशंसा करते हैं, भंडारण बर्बाद करने वाले अत्यधिक बड़े कॉलम को चिह्नित करते हैं और माइग्रेशन के दौरान विसंगतियों का पता लगाते हैं। ये उपकरण स्कीमा डिज़ाइन प्रक्रिया को गति प्रदान करते हैं, जबकि डेवलपर अंतिम विकल्पों की पुष्टि करता है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: