SQLite डेटा प्रकार: इंट, टेक्स्ट, न्यूमेरिक, रियल, ब्लॉब

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

SQLite डेटा प्रकार अन्य डेटाबेस से अलग तरीके से काम करते हैं क्योंकि SQLite गतिशील टाइप का उपयोग करता हैpingकिसी भी कॉलम में कोई भी मान संग्रहीत किया जा सकता है। स्टोरेज क्लास, टाइप एफिनिटी और घोषित टाइप नाम मिलकर यह निर्धारित करते हैं कि प्रत्येक मान डिस्क पर भौतिक रूप से कैसे सहेजा जाता है।

  • 🧩 डायनामिक टाइping: SQLite यह डायनामिकली टाइप्ड है, इसलिए कॉलम की परिभाषा नहीं, बल्कि आपके द्वारा डाला गया मान यह तय करता है कि डेटा कैसे संग्रहीत किया जाएगा।
  • भंडारण श्रेणियाँ: पांच स्टोरेज क्लास - NULL, INTEGER, REAL, TEXT और BLOB - यह वर्णन करते हैं कि डिस्क पर प्रत्येक मान कैसे संग्रहीत किया जाता है।
  • 🎯 प्रकार की समानता: प्रत्येक कॉलम को उसके घोषित प्रकार के नाम से एक अनुशंसित संबद्धता प्राप्त होती है — TEXT, NUMERIC, INTEGER, REAL, या BLOB।
  • 🔢 संख्या संग्रहण: INT युक्त कोई भी घोषित प्रकार INTEGER बन जाता है, जबकि REAL, DOUBLE और FLOAT आठ बाइट्स में फ्लोटिंग-पॉइंट संख्याओं को धारण करते हैं।
  • 📅 दिनांक और बूलियन: SQLite इसमें कोई समर्पित DATE या BOOLEAN क्लास नहीं है और इसके बजाय उन मानों को TEXT, REAL या INTEGER के रूप में संग्रहीत करता है।
  • 🤖 एआई सहायता: एआई टेक्स्ट-टू-एसक्यूएल सहायक और गिटहब कोपायलट उत्पन्न करते हैं SQLite कॉलम की परिभाषाएँ और डेटा प्रकारों का चयन सरल अंग्रेजी भाषा से करें।

SQLite जानकारी का प्रकार

नीचे दिए गए अनुभाग बताते हैं कि कैसे SQLite यह पाठ्यक्रम डेटा प्रकारों को संभालता है, जिसकी शुरुआत पांच स्टोरेज क्लास से होती है, फिर टाइप एफिनिटी और उसके असाइनमेंट नियम, और अंत में पूर्णांक, वास्तविक संख्याएं, BLOB, बूलियन और तिथियों को संग्रहीत करने के उदाहरण दिए गए हैं।

डेटा प्रकार SQLite अन्य डेटाबेस प्रबंधन प्रणालियों से भिन्न। SQLiteआप डेटा प्रकारों को सामान्य रूप से घोषित कर सकते हैं, लेकिन आप किसी भी डेटा प्रकार में कोई भी मान संग्रहीत कर सकते हैं।

SQLite यह टाइपलेस है। इसमें कोई निश्चित डेटा प्रकार नहीं होते; आप किसी भी कॉलम में अपनी पसंद का कोई भी डेटा प्रकार स्टोर कर सकते हैं। इसे डायनामिक टाइप कहा जाता है।ping.

अन्य डेटाबेस प्रबंधन प्रणालियों की तरह, स्थैतिक प्रकारों में, यदि आप पूर्णांक डेटा प्रकार के साथ एक कॉलम घोषित करते हैं, तो आप केवल पूर्णांक डेटा प्रकार के मान ही सम्मिलित कर सकते हैं। हालाँकि, गतिशील प्रकारों में, जैसा कि SQLiteकॉलम का प्रकार डाले गए मान द्वारा निर्धारित किया जाता है, और फिर SQLite उस मान को उसके प्रकार के आधार पर संग्रहीत करता है.

SQLite भंडारण कक्षाएं

In SQLite मान के प्रकार के आधार पर भंडारण की विभिन्न विधियाँ होती हैं; इन विभिन्न भंडारण विधियों को भंडारण वर्ग कहा जाता है। SQLite.

निम्नलिखित में उपलब्ध भंडारण वर्ग हैं SQLite:

  • नल - इस स्टोरेज क्लास का उपयोग किसी भी NULL मान को संग्रहीत करने के लिए किया जाता है।
  • पूर्णांक – कोई भी संख्यात्मक मान एक हस्ताक्षरित पूर्णांक मान के रूप में संग्रहीत होता है (यह धनात्मक और ऋणात्मक दोनों पूर्णांक मानों को धारण कर सकता है)। पूर्णांक मानों में SQLite संख्या के मान के आधार पर इन्हें 1, 2, 3, 4, 6 या 8 बाइट्स के भण्डारण में संग्रहित किया जाता है।
  • असली – इस स्टोरेज क्लास का उपयोग फ्लोटिंग पॉइंट मानों को स्टोर करने के लिए किया जाता है, और इन्हें 8 बाइट्स स्टोरेज में स्टोर किया जाता है।
  • पाठ – यह टेक्स्ट स्ट्रिंग्स को स्टोर करता है। यह UTF-8, UTF-16BE या UTF-16LE जैसे विभिन्न एन्कोडिंग का भी समर्थन करता है।
  • ब्लॉब – इसका उपयोग छवियों या टेक्स्ट फ़ाइलों जैसी बड़ी फ़ाइलों को संग्रहीत करने के लिए किया जाता है। मान को इनपुट मान के समान ही बाइट ऐरे के रूप में संग्रहीत किया जाता है।

SQLite आत्मीयता प्रकार

कॉलम में डेटा संग्रहीत करने के लिए टाइप एफिनिटी अनुशंसित प्रकार है। हालांकि, आप अपनी इच्छानुसार किसी भी प्रकार का डेटा संग्रहीत कर सकते हैं; ये प्रकार अनुशंसित हैं, अनिवार्य नहीं।

इन प्रकारों को 1960 में शुरू किया गया था। SQLite के बीच अनुकूलता को अधिकतम करने के लिए SQLite अन्य और डेटाबेस प्रबंधन प्रणालीs.

किसी भी कॉलम में घोषित SQLite डेटाबेस को उसके घोषित डेटा प्रकार के आधार पर एक प्रकार संबद्धता सौंपी जाती है। यहाँ प्रकार संबद्धताओं की सूची दी गई है। SQLite:

  • मूलपाठ।
  • संख्यात्मक.
  • पूर्णांक.
  • असली।
  • ब्लॉब.

यहां कैसे SQLite किसी कॉलम की संबद्धता का निर्धारण उसके घोषित डेटा प्रकार से किया जाता है:

  • यदि घोषित प्रकार में निम्नलिखित शामिल है तो पूर्णांक आत्मीयता निर्दिष्ट की जाती है स्ट्रिंग “इंट”।
  • यदि कॉलम के डेटा प्रकार में निम्नलिखित स्ट्रिंग्स में से कोई एक मौजूद है, तो उसे TEXT एफिनिटी असाइन की जाती है: “TEXT”, “CHAR”, या “CLOB”। उदाहरण के लिए, VARCHAR प्रकार को TEXT एफिनिटी असाइन की जाएगी।
  • यदि कॉलम का कोई प्रकार निर्दिष्ट नहीं है या डेटा प्रकार BLOB है, तो BLOB सम्बद्धता निर्दिष्ट की जाती है।
  • यदि टाइप में निम्नलिखित स्ट्रिंग में से कोई एक मौजूद है तो REAL एफिनिटी असाइन की जाती है: “DOUB”, “REAL”, या “FLOAT”।
  • किसी भी अन्य डेटा प्रकार के लिए NUMERIC सम्बद्धता निर्दिष्ट की जाती है।

नीचे एक तालिका भी दी गई है जिसमें मानचित्र के कुछ उदाहरण दिखाए गए हैं।ping के बीच SQLite इन नियमों द्वारा निर्धारित डेटा प्रकार और उनकी समानताएँ:

नक्शाping के बीच SQLite घोषित डेटा प्रकार और उनके असाइन किए गए प्रकार संबंध, INT, CHAR, TEXT, BLOB, REAL, FLOAT और NUMERIC के उदाहरण दिखाते हुए

डेटा प्रकारों को संग्रहीत करने के उदाहरण SQLite

संख्याओं को संग्रहीत करना SQLite पूर्णांक

यदि किसी कॉलम के डेटा प्रकार में "INT" शब्द शामिल है, तो उसे INTEGER प्रकार की संबद्धता सौंपी जाएगी। इसे INTEGER स्टोरेज क्लास में संग्रहीत किया जाएगा।

निम्नलिखित सभी डेटा प्रकारों को INTEGER प्रकार की संबद्धता सौंपी गई है:

  • पूर्णांक, पूर्णांक, बड़ा पूर्णांक.
  • INT2, INT4, INT8.
  • बहुत कम तीव्रता, मध्यम तीव्रता, मध्यम तीव्रता।

पूर्णांक प्रकार आत्मीयता SQLite इसमें 1 बाइट से लेकर अधिकतम 8 बाइट तक की कोई भी निर्दिष्ट पूर्णांक संख्या (धनात्मक या ऋणात्मक) रखी जा सकती है।

संख्याओं को संग्रहीत करना SQLite असली

वास्तविक संख्याएँ वे संख्याएँ होती हैं जिनकी परिशुद्धता फ्लोटिंग-पॉइंट परिशुद्धता से दोगुनी होती है। SQLite यह वास्तविक संख्याओं को 8-बाइट ऐरे के रूप में संग्रहीत करता है। यहाँ डेटा प्रकारों की सूची दी गई है। SQLite जिसका उपयोग आप वास्तविक संख्याओं को संग्रहीत करने के लिए कर सकते हैं:

  • असली।
  • दोहरा।
  • दोहरी सुनिश्चितता।
  • तैरना।

बड़े डेटा को संग्रहीत करना SQLite ब्लॉब

बड़ी फाइलों को स्टोर करने का केवल एक ही तरीका है। SQLite डेटाबेस में BLOB डेटा टाइप का उपयोग किया जा रहा है। इस डेटा टाइप का उपयोग छवियों या किसी भी प्रकार की बड़ी फ़ाइलों को स्टोर करने के लिए किया जाता है। फ़ाइल को बाइट ऐरे में परिवर्तित किया जाता है और फिर इनपुट फ़ाइल के समान आकार में स्टोर किया जाता है।

भंडारण SQLite बूलियन्स

SQLite इसमें कोई अलग से BOOLEAN स्टोरेज क्लास नहीं है। इसके बजाय, BOOLEAN मानों को INTEGERS के रूप में संग्रहीत किया जाता है, जिसमें 0 का अर्थ false और 1 का अर्थ true होता है।

भंडारण SQLite दिनांक और समय

आप इसमें तिथियां या दिनांक-समय घोषित कर सकते हैं SQLite निम्नलिखित डेटा प्रकारों में से किसी एक का उपयोग करके:

  • DATE
  • DATETIME
  • TIMESTAMP
  • TIME

ध्यान दें कि इसमें कोई अलग DATE या DATETIME स्टोरेज क्लास नहीं है। SQLiteइसके बजाय, पिछले डेटा प्रकारों में से किसी एक के साथ घोषित किए गए किसी भी मान को सम्मिलित मान के दिनांक प्रारूप के आधार पर एक संग्रहण वर्ग में संग्रहीत किया जाता है, जैसा कि नीचे दिया गया है:

  • पाठ – यदि आप दिनांक मान को ISO8601 स्ट्रिंग ("YYYY-MM-DD HH:MM:SS.SSS") के प्रारूप में डालते हैं।
  • असली – यदि आप दिनांक मान को जूलियन दिन संख्या के रूप में दर्ज करते हैं, तो 24 नवंबर, 4714 ईसा पूर्व को ग्रीनविच में दोपहर से दिनों की संख्या। दिनांक मान को फिर REAL के रूप में संग्रहीत किया जाता है।
  • पूर्णांक - जैसा यूनिक्स समय, 1970-01-01 00:00:00 UTC से लेकर अब तक के सेकंडों की संख्या.

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

एक स्टोरेज क्लास इस प्रकार काम करती है। SQLite यह भौतिक रूप से एक मान संग्रहीत करता है: NULL, INTEGER, REAL, TEXT, या BLOB, जो रनटाइम पर प्रत्येक मान के लिए निर्धारित किया जाता है। टाइप एफिनिटी वह क्लास है जिसे कॉलम प्राथमिकता देता है, जिसे उसके घोषित टाइप नाम से चुना जाता है। SQLite आवेदन करने का प्रयास करता है।

नहीं. SQLite कोष्ठकों में दी गई संख्या को अनदेखा करता है, इसलिए VARCHAR(50) और VARCHAR का व्यवहार एक जैसा होता है। दोनों को TEXT एफिनिटी प्राप्त होती है क्योंकि टाइप नाम में CHAR शामिल है, और SQLite यह वैश्विक SQLITE_MAX_LENGTH मान के अलावा कोई लंबाई सीमा नहीं लगाता है।

क्वेरी में typeof() फ़ंक्शन का उपयोग करें, जैसे कि SELECT typeof(column) FROM table। यह मान का वास्तविक स्टोरेज क्लास लौटाता है — null, integer, real, text, या blob — जो कॉलम के घोषित प्रकार से भिन्न हो सकता है क्योंकि इसमें गतिशील परिवर्तन होते हैं।ping.

STRICT टेबल, इसमें जोड़े गए SQLite 3.37, टाइप एफिनिटी को बंद करें और किसी भी ऐसे मान को अस्वीकार करें जो कॉलम के घोषित प्रकार से मेल नहीं खाता हो। केवल INT, INTEGER, REAL, TEXT, BLOB और ANY की अनुमति है, जिससे कठोर टाइप एफिनिटी सुनिश्चित होती है।ping अन्य डेटाबेस में पाया गया।

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

SQLITE_MAX_LENGTH सेटिंग TEXT या BLOB फ़ाइल के मान को सीमित करती है और डिफ़ॉल्ट रूप से एक अरब बाइट्स तक होती है। वर्तमान कार्यान्वयन 2,147,483,647 बाइट्स तक का समर्थन करता है। आवश्यकता पड़ने पर आप sqlite3_limit() इंटरफ़ेस का उपयोग करके रनटाइम पर सीमा को कम कर सकते हैं।

जी हां। एआई टेक्स्ट-टू-एसक्यूएल सहायक एक साधारण अंग्रेजी विवरण को CREATE TABLE कथनों में बदल देते हैं, और चयन करते हैं। SQLite स्टोरेज क्लास और एफिनिटी जैसे कि INTEGER, TEXT और REAL। मौजूदा कॉलम प्रकार प्रदान करने से सटीकता में सुधार होता है, और जेनरेट किए गए SQL को चलाने से पहले उसकी समीक्षा की जानी चाहिए।

हां. गिटहब कोपिलॉट कॉलम परिभाषाओं का सुझाव देता है SQLite INTEGER, TEXT, REAL और BLOB जैसे प्रकारों को संपादकों में इनलाइन रूप से उपयोग किया जा सकता है। VS Codeयह आसपास के स्कीमा और माइग्रेशन कोड को पढ़ता है, इसलिए इसके पूर्ण होने पर आपके वास्तविक टेबल और कॉलम नामों का पुन: उपयोग होता है।

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