SQLite
 sql >> डेटाबेस >  >> RDS >> SQLite

SQLite डेटा प्रकार

सारांश :इस ट्यूटोरियल में, आप SQLite डेटा टाइप सिस्टम और उससे संबंधित अवधारणाओं जैसे स्टोरेज क्लासेस, मेनिफेस्ट टाइपिंग और टाइप एफ़िनिटी के बारे में जानेंगे।

SQLite डेटा प्रकारों का परिचय

यदि आप अन्य डेटाबेस सिस्टम जैसे MySQL और PostgreSQL से आते हैं, तो आप देखते हैं कि वे स्थिर टाइपिंग . का उपयोग करते हैं . इसका मतलब है कि जब आप एक विशिष्ट डेटा प्रकार के साथ एक कॉलम घोषित करते हैं, तो वह कॉलम केवल घोषित डेटा प्रकार का डेटा संग्रहीत कर सकता है।

अन्य डेटाबेस सिस्टम से अलग, SQLite डायनेमिक टाइप सिस्टम . का उपयोग करता है . दूसरे शब्दों में, किसी स्तंभ में संग्रहीत मान उसके डेटा प्रकार को निर्धारित करता है, न कि स्तंभ के डेटा प्रकार को।

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

SQLite पाँच आदिम डेटा प्रकार प्रदान करता है जिन्हें भंडारण वर्ग कहा जाता है।

संग्रहण वर्ग उन स्वरूपों का वर्णन करते हैं जो SQLite डिस्क पर डेटा संग्रहीत करने के लिए उपयोग करता है। एक भंडारण वर्ग एक डेटा प्रकार की तुलना में अधिक सामान्य है, उदाहरण के लिए, INTEGER स्टोरेज क्लास में 6 विभिन्न प्रकार के पूर्णांक शामिल हैं। ज्यादातर मामलों में, आप भंडारण वर्गों और डेटा प्रकारों का परस्पर उपयोग कर सकते हैं।

निम्न तालिका SQLite में 5 संग्रहण वर्गों को दर्शाती है:

<थ>अर्थ
भंडारण वर्ग
शून्य NULL मानों का अर्थ है अनुपलब्ध जानकारी या अज्ञात।
पूर्णांक पूर्णांक मान पूर्णांक होते हैं (या तो धनात्मक या ऋणात्मक)। एक पूर्णांक के चर आकार हो सकते हैं जैसे 1, 2,3, 4, या 8 बाइट्स।
असली वास्तविक मान दशमलव मानों वाली वास्तविक संख्याएं हैं जो 8-बाइट फ़्लोट का उपयोग करती हैं।
पाठ TEXT का उपयोग कैरेक्टर डेटा को स्टोर करने के लिए किया जाता है। टेक्स्ट की अधिकतम लंबाई असीमित है। SQLite विभिन्न वर्ण एन्कोडिंग का समर्थन करता है।
बीएलओबी BLOB एक बाइनरी लार्ज ऑब्जेक्ट के लिए है जो किसी भी तरह के डेटा को स्टोर कर सकता है। सैद्धांतिक रूप से, BLOB का अधिकतम आकार असीमित है।

SQLite निम्नलिखित नियमों के अनुसार अपने डेटा प्रकार के आधार पर किसी मान का डेटा प्रकार निर्धारित करता है:

  • यदि शाब्दिक में कोई संलग्न उद्धरण और दशमलव बिंदु या घातांक नहीं है, तो SQLite INTEGER संग्रहण वर्ग निर्दिष्ट करता है।
  • यदि एक शाब्दिक एकल या दोहरे उद्धरण चिह्नों से संलग्न है, तो SQLite TEXT संग्रहण वर्ग निर्दिष्ट करता है।
  • यदि किसी शाब्दिक में उद्धरण या दशमलव बिंदु या घातांक नहीं है, तो SQLite REAL संग्रहण वर्ग निर्दिष्ट करता है।
  • यदि कोई शाब्दिक उद्धरण के बिना NULL है, तो उसने NULL संग्रहण वर्ग असाइन किया है।
  • यदि किसी शाब्दिक में X'ABCD' या x 'abcd' है, तो SQLite ने BLOB संग्रहण वर्ग निर्दिष्ट किया है।

SQLite अंतर्निहित दिनांक और समय संग्रहण कक्षाओं का समर्थन नहीं करता है। हालाँकि, आप दिनांक और समय मानों को संग्रहीत करने के लिए TEXT, INT या REAL का उपयोग कर सकते हैं। दिनांक और समय मानों को संभालने के तरीके के बारे में विस्तृत जानकारी के लिए, इसे SQLite दिनांक और समय ट्यूटोरियल देखें।

SQLites typeof() प्रदान करता है फ़ंक्शन जो आपको किसी मान के संग्रहण वर्ग को उसके स्वरूप के आधार पर जांचने की अनुमति देता है। निम्नलिखित उदाहरण देखें:

SELECT
	typeof(100),
	typeof(10.0),
	typeof('100'),
	typeof(x'1000'),
	typeof(NULL);Code language: SQL (Structured Query Language) (sql)

SQLite में एक एकल कॉलम मिश्रित डेटा प्रकारों को संग्रहीत कर सकता है। निम्न उदाहरण देखें।

सबसे पहले, test_datatypes . नाम की एक नई टेबल बनाएं परीक्षण के लिए।

CREATE TABLE test_datatypes (
	id INTEGER PRIMARY KEY,
	val
);Code language: SQL (Structured Query Language) (sql)

दूसरा, test_datatypes में डेटा डालें टेबल।

INSERT INTO test_datatypes (val)
VALUES
	(1),
	(2),
	(10.1),
	(20.5),
	('A'),
	('B'),
	(NULL),
	(x'0010'),
	(x'0011');Code language: SQL (Structured Query Language) (sql)

तीसरा, typeof() का इस्तेमाल करें val . में संग्रहीत प्रत्येक मान का डेटा प्रकार प्राप्त करने के लिए कार्य करता है कॉलम।

SELECT
	id,
	val,
	typeof(val)
FROM
	test_datatypes;Code language: SQL (Structured Query Language) (sql)

आप पूछ सकते हैं कि SQLite ऊपर वैल कॉलम जैसे विभिन्न स्टोरेज क्लास वाले कॉलम में डेटा कैसे सॉर्ट करता है।

इसे हल करने के लिए, जब सॉर्टिंग की बात आती है तो SQLite नियमों का निम्नलिखित सेट प्रदान करता है:

  • NULL स्टोरेज क्लास का मान सबसे कम होता है। यह किसी भी अन्य मूल्य से कम है। NULL मानों के बीच कोई क्रम नहीं है।
  • अगले उच्च भंडारण वर्ग INTEGER और REAL हैं। SQLite संख्यात्मक रूप से INTEGER और REAL की तुलना करता है।
  • अगला उच्च भंडारण वर्ग TEXT है। जब यह टेक्स्ट मानों की तुलना करता है तो SQLite टेक्स्ट मानों के संयोजन का उपयोग करता है।
  • उच्चतम संग्रहण वर्ग BLOB है। SQLite C फ़ंक्शन का उपयोग करता है memcmp() BLOB मानों की तुलना करने के लिए।

जब आप ORDER BY का उपयोग करते हैं अलग-अलग स्टोरेज क्लास वाले कॉलम में डेटा को सॉर्ट करने के लिए क्लॉज, SQLite निम्न चरणों का पालन करता है:

  • सबसे पहले, भंडारण वर्ग के आधार पर समूह मान:NULL, INTEGER, और REAL, TEXT, और BLOB।
  • दूसरा, प्रत्येक समूह में मानों को क्रमबद्ध करें।

निम्न कथन मिश्रित डेटा को val . में सॉर्ट करता है test_datatypes . का कॉलम टेबल:

SELECT
	id,
	val,
	typeof(val)
FROM
	test_datatypes
ORDER BY val;Code language: SQL (Structured Query Language) (sql)

SQLite मेनिफेस्ट टाइपिंग और टाइप एफ़िनिटी

SQLite डेटा प्रकारों से संबंधित अन्य महत्वपूर्ण अवधारणाएं हैं मेनिफेस्ट टाइपिंग और टाइप एफ़िनिटी:

  • मेनिफेस्ट टाइपिंग का अर्थ है कि डेटा प्रकार एक कॉलम में संग्रहीत मूल्य की एक संपत्ति है, न कि उस कॉलम की संपत्ति जिसमें मूल्य संग्रहीत है। SQLite किसी कॉलम में किसी भी प्रकार के मानों को संग्रहीत करने के लिए मेनिफेस्ट टाइपिंग का उपयोग करता है।
  • किसी कॉलम का टाइप एफ़िनिटी उस कॉलम में संग्रहीत डेटा के लिए अनुशंसित प्रकार है। ध्यान दें कि डेटा प्रकार अनुशंसित है, आवश्यक नहीं है, इसलिए, एक कॉलम किसी भी प्रकार के डेटा को संग्रहीत कर सकता है।

इस ट्यूटोरियल में, आपने SQLite डेटा प्रकारों और स्टोरेज क्लासेस, मेनिफेस्ट टाइपिंग और टाइप एफ़िनिटी सहित कुछ महत्वपूर्ण अवधारणाओं के बारे में सीखा है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLite - एक टेबल ड्रॉप करें

  2. एक नया कॉलम जोड़ने के बाद सक्रिय एंड्रॉइड के साथ तालिका को कैसे अपडेट करें

  3. कस्टम डायलॉग में डेटा कैसे अपडेट करें

  4. फ़ाइल एक्सप्लोरर में डेटाबेस फ़ाइल को /assets से /data/data फ़ोल्डर में कॉपी करना - Android

  5. JSON उप-घटकों को निकालने के लिए ऑपरेटर