SQLite में डेटा प्रकार अन्य डेटाबेस प्रबंधन प्रणाली की तुलना में अलग हैं। SQLite में, आप डेटा प्रकारों को सामान्य रूप से घोषित कर सकते हैं, लेकिन आप अभी भी किसी भी डेटा प्रकार में किसी भी मूल्य को संग्रहीत कर सकते हैं।
इस ट्यूटोरियल में, आप सीखेंगे-
- भंडारण कक्षाएं
- एफिनिटी टाइप
- SQLite में डेटा प्रकारों के भंडारण के उदाहरण
SQLite कम टाइप किया जाता है। कोई डेटा प्रकार नहीं हैं, आप किसी भी प्रकार के डेटा को किसी भी कॉलम में संग्रहीत कर सकते हैं। इसे डायनेमिक प्रकार कहा जाता है।
अन्य डेटाबेस प्रबंधन प्रणालियों की तरह स्थिर प्रकार में, यदि आपने डेटा प्रकार पूर्णांक के साथ एक कॉलम घोषित किया है, तो आप केवल डेटा पूर्णांक के मान सम्मिलित कर सकते हैं। हालाँकि, SQLite जैसे डायनेमिक प्रकारों में, स्तंभ का प्रकार सम्मिलित मूल्य द्वारा निर्धारित किया जाता है। और फिर SQLite अपने प्रकार के आधार पर उस मूल्य को संग्रहीत करता है।
SQLite संग्रहण कक्षाएं
SQLite में मूल्य के प्रकार के आधार पर अलग-अलग भंडारण विधियाँ होती हैं, इन भिन्न भंडारण विधियों को SQLite में भंडारण वर्ग कहा जाता है।
SQLite में उपलब्ध भंडारण वर्ग निम्नलिखित हैं:
- NULL - इस संग्रहण वर्ग का उपयोग किसी भी NULL मान को संग्रहीत करने के लिए किया जाता है।
- INTEGER - किसी भी संख्यात्मक मान को एक हस्ताक्षरित पूर्णांक मान के रूप में संग्रहीत किया जाता है (यह सकारात्मक और नकारात्मक पूर्णांक मान दोनों को पकड़ सकता है)। SQLite में INTEGER मान 1, 2, 3, 4, 6, या 8 बाइट्स में संग्रहीत किया जाता है जो संख्या के मूल्य पर निर्भर करता है।
- वास्तविक - इस स्टोरेज क्लास का उपयोग फ्लोटिंग पॉइंट वैल्यू को स्टोर करने के लिए किया जाता है, और इन्हें 8-बाइट्स स्टोरेज में स्टोर किया जाता है।
- पाठ - पाठ तार संग्रहीत करता है। यह UTF-8, UTF-16 BE या UTF-26LE जैसे विभिन्न एन्कोडिंग का भी समर्थन करता है।
- BLOB - बड़ी फ़ाइलों को संग्रहीत करने के लिए उपयोग किया जाता है, जैसे चित्र या पाठ फ़ाइलें। मान को बाइट सरणी के रूप में संग्रहीत किया जाता है जो इनपुट मान के समान होता है।
SQLite Affinity प्रकार
टाइप आत्मीयता एक कॉलम में संग्रहीत डेटा का अनुशंसित प्रकार है। हालाँकि, आप अभी भी किसी भी प्रकार के डेटा को अपनी इच्छानुसार स्टोर कर सकते हैं, इन प्रकारों की आवश्यकता नहीं है।
इन प्रकारों को SQLite और अन्य डेटाबेस प्रबंधन प्रणाली के बीच संगतता को अधिकतम करने के लिए SQLite में पेश किया गया था।
किसी SQLite डेटाबेस में घोषित किसी भी कॉलम को एक प्रकार का आत्मीयता दिया जाता है जो उसके द्वारा घोषित डेटा प्रकार पर निर्भर करता है। यहां SQLite में टाइप एफिनिटीज की लिफ्ट:
- पाठ करें।
- NUMERIC।
- इंटीजर
- असली।
- BLOB।
यहां बताया गया है कि SQLite अपने घोषित डेटा प्रकार से कॉलम की आत्मीयता को निर्धारित करता है:
- INTEGER आत्मीयता को असाइन किया गया है यदि घोषित प्रकार में स्ट्रिंग " INT " शामिल है।
- TEXT आत्मीयता को निर्दिष्ट किया जाता है, यदि स्तंभ में इसके डेटा टाइप में निम्न स्ट्रिंग " TEXT ", " CHAR , या" CLOB "शामिल हैं। उदाहरण के लिए, VARCHAR को TEXT आत्मीयता दी जाएगी।
- यदि कोई प्रकार निर्दिष्ट नहीं है या डेटा प्रकार एक BLOB है, तो BLOB आत्मीयता को असाइन किया गया है।
- वास्तविक आत्मीयता को असाइन किया गया है यदि प्रकार में निम्न स्ट्रिंग " DOUB ", " REAL , या" FLOAT "में से एक है।
- NUMERIC संबंध किसी अन्य डेटा प्रकार के लिए असाइन किया गया है।
उसी पृष्ठ पर एक तालिका भी है जो SQLite डेटा प्रकारों और इन नियमों द्वारा निर्धारित उनकी समृद्धि के बीच मानचित्रण के लिए कुछ उदाहरण दिखाती है:
SQLite में डेटा प्रकार के भंडारण के उदाहरण:
SQLite पूर्णांक के साथ संचय संख्या:
डेटा प्रकार के किसी भी कॉलम में "INT" शब्द होता है, इसे एक INTEGER प्रकार की आत्मीयता दी जाएगी। इसे एक INTEGER स्टोरेज क्लास में स्टोर किया जाएगा।
निम्नलिखित सभी प्रकार के डेटा को एक INTEGER प्रकार की आत्मीयता के रूप में सौंपा गया है:
- INT, INTEGER, BIGINT।
- INT2, INT4, INT8।
- टिनिनेट, लघु, मेडी इंट।
SQLite में INTEGER प्रकार की आत्मीयता 1 बाइट से अधिकतम 8 बाइट तक किसी भी पूर्णांक संख्या (धनात्मक या ऋणात्मक) को पकड़ सकती है।
SQLite के साथ संचय संख्या:
वास्तविक संख्या डबल फ्लोटिंग पॉइंट परिशुद्धता के साथ संख्या है। SQLite ने वास्तविक संख्या को 8 बाइट्स सरणी के रूप में संग्रहीत किया है। यहाँ SQLite में डेटा प्रकारों की सूची दी गई है जिसका उपयोग आप वास्तविक संख्याओं को संग्रहीत करने के लिए कर सकते हैं:
- असली।
- डबल।
- दोहरी सुनिश्चितता।
- FLOAT।
SQLite BLOB के साथ बड़े डेटा का भंडारण:
SQLite डेटाबेस में बड़ी फ़ाइलों को संग्रहीत करने का केवल एक ही तरीका है, और यह BLOB डेटा प्रकार का उपयोग कर रहा है। इस डेटा प्रकार का उपयोग बड़ी फ़ाइलों जैसे छवियों, फ़ाइलों (किसी भी प्रकार से) को संग्रहीत करने के लिए किया जाता है, फ़ाइल को बाइट्स सरणी में परिवर्तित किया जाता है और फिर इनपुट फ़ाइल के समान आकार में संग्रहीत किया जाता है।
भंडारण SQLite बूलियन:
SQLite में एक अलग BOOLEAN संग्रहण वर्ग नहीं है। हालाँकि, BOOLEAN मानों को 0 (जैसा कि असत्य) या 1 (सत्य के रूप में) के साथ INTEGERS के रूप में संग्रहीत किया जाता है।
भंडारण SQLite दिनांक और समय:
आप निम्न डेटा प्रकारों में से किसी एक का उपयोग करके SQLite में तारीख या तारीख की घोषणा कर सकते हैं:
- तारीख
- दिनांक और समय
- TIMESTAMP
- समय
ध्यान दें, SQLite में कोई अलग DATE या DATETIME संग्रहण वर्ग नहीं है। इसके बजाय, पिछले डेटा प्रकारों में से एक के साथ घोषित किए गए किसी भी मान को निम्न के रूप में सम्मिलित मूल्य के दिनांक प्रारूप के आधार पर एक भंडारण वर्ग पर संग्रहीत किया जाता है:
- पाठ - यदि आपने ISO8601 स्ट्रिंग ("YYYY-MM-DD HH: MM: SS.SSS") के प्रारूप में दिनांक मान डाला है।
- वास्तविक - यदि आपने जूलियन दिन की संख्याओं में दिनांक मान डाला, तो ग्रीनविच में दोपहर के बाद के दिनों की संख्या 24 नवंबर, 4714 ई.पू. तब दिनांक मान REAL के रूप में संग्रहीत किया जाएगा।
- पूर्णांक यूनिक्स समय, के बाद से 1970-01-01 00:00:00 यूटीसी सेकंड की संख्या के रूप में।
सारांश:
SQLite डेटा प्रकारों की एक विस्तृत श्रृंखला का समर्थन करता है। लेकिन, एक ही समय में, यह डेटा प्रकारों के बारे में बहुत लचीला है। आप किसी भी डेटा प्रकार में कोई भी मूल्य प्रकार डाल सकते हैं। SQLite ने अन्य डेटाबेस प्रबंधन प्रणालियों के विपरीत डेटा प्रकारों में कुछ नई अवधारणाओं को भी टाइप आत्मीयता और भंडारण वर्गों की तरह पेश किया।