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

SQLite में कॉलम के डेटा प्रकार की जांच करने के 5 तरीके

SQLite में, तालिका की संरचना को देखने के कई तरीके हैं। इसलिए, ऐसे कुछ तरीके हैं जिनसे हम उस तालिका में कॉलम के डेटा प्रकार की जांच कर सकते हैं।

एक फ़ंक्शन भी है जो हमें किसी क्वेरी में दिए गए कॉलम के डेटा प्रकार की जांच करने की अनुमति देता है।

SQLite में कॉलम के डेटा प्रकार की जांच करने के पांच तरीके यहां दिए गए हैं।

PRAGMA table_info() कथन

PRAGMA table_info() स्टेटमेंट एक निर्दिष्ट तालिका के बारे में जानकारी देता है, जिसमें उसके कॉलम और डेटा प्रकार शामिल हैं।

यहां Album . नामक तालिका के बारे में जानकारी लौटाने का एक उदाहरण दिया गया है ।

PRAGMA table_info(Album); 

परिणाम:

सीआईडी ​​नाम प्रकार notnull dflt_value pk ------------------------------------------------ --0 एल्बम आईडी इंटीजर 1 1 1 शीर्षक NVARCHAR(160) 1 0 2 कलाकार आईडी इंटेगर 1 0 

इस मामले में, कॉलम उनके डेटा प्रकार के साथ स्पष्ट रूप से परिभाषित किए गए थे।

यहां एक और उदाहरण दिया गया है:

PRAGMA table_info(Events); 

परिणाम:

सीआईडी ​​नाम प्रकार notnull dflt_value pk---------------------------------------- EventId INTEGER 0 1 1 ईवेंटनाम 0 0 2 प्रारंभ दिनांक 0 0 3 समाप्ति दिनांक 0 0 

इस मामले में, केवल पहले कॉलम का डेटा प्रकार स्पष्ट रूप से परिभाषित होता है।

SQLite अन्य प्रमुख RDBMS की तुलना में डेटा प्रकारों के लिए एक अलग दृष्टिकोण का उपयोग करता है। SQLite एक गतिशील टाइपिंग सिस्टम का उपयोग करता है, और इसलिए किसी मान का डेटाटाइप मान से ही जुड़ा होता है, न कि उसके कंटेनर के साथ।

उस ने कहा, SQLite हमें कॉलम के डेटा प्रकार को स्पष्ट रूप से निर्दिष्ट करने की अनुमति देता है। उपरोक्त उदाहरणों में, कुछ कॉलम उनके डेटा प्रकार के साथ स्पष्ट रूप से परिभाषित किए गए थे, और हम उपरोक्त PRAGMA को चलाकर देख सकते हैं कि वे डेटा प्रकार क्या हैं। बयान।

PRAGMA table_xinfo() कथन

PRAGMA table_xinfo() स्टेटमेंट बिल्कुल PRAGMA table_info() . जैसा ही है स्टेटमेंट, सिवाय इसके कि यह वर्चुअल टेबल पर छिपे हुए कॉलम भी लौटाता है:

PRAGMA table_xinfo(Album); 

परिणाम:

सीआईडी ​​नाम प्रकार notnull dflt_value pk छिपा हुआ ------------------------------------------- - ------------ एल्बम आईडी इंटीजर 1 1 0 1 शीर्षक NVARCHAR(160) 1 0 0 2 कलाकार आईडी इंटेगर 1 0 0 

हम देख सकते हैं कि यह मूल रूप से table_info() . जैसा ही है , अतिरिक्त कॉलम को छोड़कर।

.schema कमांड

तालिका की संरचना को पुनः प्राप्त करने का दूसरा तरीका .schema . का उपयोग करना है आज्ञा। यह उन कई विधियों में से एक है जिनका उपयोग आप तालिका बनाने के लिए उपयोग किए गए SQL को वापस करने के लिए कर सकते हैं।

उदाहरण:

.schema Album 

परिणाम:

टेबल चिनूक बनाएं।[एल्बम]( [ArtistId]) संदर्भ [कलाकार] ([ArtistId]) अद्यतन पर कोई कार्रवाई नहीं हटाने पर; अनुक्रमणिका चिनूक बनाएं। 

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

sqlite_schema टेबल

आप sqlite_schema . का उपयोग कर सकते हैं पिछले उदाहरण के समान ही तालिका।

यहाँ उसी तालिका का उपयोग करने वाला एक उदाहरण दिया गया है।

SELECT sql 
FROM Chinook.sqlite_schema 
WHERE tbl_name = 'Album'; 

परिणाम:

टेबल बनाएं [एल्बम]( ]) संदर्भ [कलाकार] ([कलाकार आईडी]) अद्यतन पर कोई कार्रवाई नहीं हटाने पर कोई कार्रवाई नहीं) सूचकांक बनाएं [IFK_AlbumArtistId] पर [एल्बम] ([कलाकार आईडी]) 

sqlite_schema तालिका को sqlite_master . का उपयोग करके भी एक्सेस किया जा सकता है ।

typeof() समारोह

आप typeof() . का इस्तेमाल कर सकते हैं किसी क्वेरी द्वारा लौटाए गए कॉलम का डेटा प्रकार प्राप्त करने के लिए फ़ंक्शन। अधिक विशेष रूप से, यह दिए गए व्यंजक का डेटा प्रकार लौटाता है।

उदाहरण:

SELECT typeof(Title) FROM Album
LIMIT 1; 

परिणाम:

पाठ

यहां मैंने LIMIT . का उपयोग किया है परिणाम को केवल एक पंक्ति तक सीमित करने के लिए खंड, अन्यथा हम तालिका में प्रत्येक पंक्ति के लिए एक ही परिणाम को दोहराते हुए देखेंगे।

ध्यान रखें कि यह विधि क्वेरी द्वारा लौटाए गए एक्सप्रेशन के डेटा प्रकार को लौटाती है - कॉलम को निर्दिष्ट वास्तविक डेटा प्रकार नहीं। लौटाए गए संभावित प्रकार हैं:

  • null
  • integer
  • real
  • text
  • blob

SQLite डेटाबेस में प्रत्येक कॉलम को उपरोक्त प्रकार की समानता में से एक सौंपा गया है।

इन्हें वास्तव में स्टोरेज क्लास के रूप में जाना जाता है। डेटाटाइप की तुलना में स्टोरेज क्लास अधिक सामान्य है। SQL कथनों में सभी मान, चाहे वे SQL कथन पाठ में एम्बेड किए गए शाब्दिक हों या पूर्व-संकलित SQL कथनों के लिए बाध्य पैरामीटर में एक अंतर्निहित संग्रहण वर्ग होता है। डेटाबेस इंजन संख्यात्मक भंडारण वर्गों के बीच मूल्यों को परिवर्तित कर सकता है (INTEGER और real ) और text क्वेरी निष्पादन के दौरान।

SQLite में डेटा प्रकारों के बारे में अधिक जानकारी

SQLite में डेटा प्रकारों के बारे में अधिक जानकारी के लिए SQLite डेटाटाइप (SQLite दस्तावेज़ीकरण) और फ्लेक्सिबल टाइपिंग के लाभ (SQLite दस्तावेज़ीकरण) देखें।

यह भी देखें STRICT टेबल्स (SQLite प्रलेखन), एक सुविधा जो 2021-11-27 को SQLite संस्करण 3.37.0 में जोड़ी गई थी, जो हमें लचीली टाइपिंग प्रणाली को अस्वीकार करने की अनुमति देती है, और इसके बजाय अन्य सभी SQL डेटाबेस इंजनों में पाए जाने वाले पारंपरिक कठोर प्रकार के सिस्टम को लागू करती है। SQL मानक।


  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. पहले से बंद ऑब्जेक्ट sqlitedatabase को फिर से खोलने का प्रयास करें

  5. SQLite में एक संख्या को मुद्रा के रूप में प्रारूपित करें