मुख्य सामग्री पर जाएँ

SQLite में टेबल दिखाएँ: डेटाबेस नेविगेशन के लिए संपूर्ण मार्गदर्शिका

कमांड-लाइन, SQL क्वेरीज़ और Python व C जैसी प्रोग्रामिंग भाषाओं का उपयोग करके SQLite डेटाबेस में टेबल सूचीबद्ध करने के अलग-अलग तरीके जानें।
· 9 मि॰ पढ़ें

AI के साथ खोजें

SQLite में टेबल प्रदर्शित करना डेटाबेस नेविगेशन और प्रबंधन के लिए महत्वपूर्ण है। डेटाबेस के साथ काम करते समय, टेबल दिखाने से आपको डेटाबेस की संरचना समझने में मदद मिलती है, खासकर तब जब आप जटिल संबंधों वाले डेटा को संभाल रहे हों। MySQL की तरह, जो एक सीधा SHOW TABLES कमांड देता है, SQLite में प्रत्यक्ष टेबल डिस्प्ले विधि नहीं है। फिर भी, SQLite समान परिणाम पाने के लिए कई वैकल्पिक तरीके प्रदान करता है।

इस ट्यूटोरियल में, मैं आपको SQLite डेटाबेस में टेबल दिखाने के अलग-अलग तरीके बताऊंगा, जिनमें .tables कमांड, sqlite_master टेबल और PRAGMA कमांड का उपयोग शामिल है।

त्वरित उत्तर: SQLite में टेबल कैसे दिखाएँ

SQLite में आप सरल कमांड और क्वेरीज़ का उपयोग करके किसी डेटाबेस में टेबल नाम आसानी से प्राप्त कर सकते हैं। दो सीधे तरीके नीचे दिए गए हैं।

  • .tables कमांड: यह कमांड-लाइन शेल में मौजूद एक बिल्ट-इन SQLite कमांड है जो वर्तमान डेटाबेस की सभी टेबल दिखाता है।

  • sqlite_master पर SQL क्वेरी: आप टेबल नाम प्राप्त करने के लिए निम्न क्वेरी भी चला सकते हैं:

SELECT name FROM sqlite_master WHERE type='table';

SQLite में टेबल दिखाने के सभी तरीके

अब आइए SQLite में टेबल दिखाने के विभिन्न तरीकों को देखें:

.tables कमांड से टेबल दिखाएँ

SQLite डेटाबेस में टेबल प्रदर्शित करने का सबसे सरल तरीका .tables कमांड का उपयोग करना है। नीचे .tables कमांड के उपयोग के कुछ तरीके दिए गए हैं।

सभी टेबल दिखाना

डेटाबेस की सभी टेबल दिखाने के लिए, कमांड-लाइन इंटरफ़ेस (CLI) में बस .tables कमांड चलाएँ। यह तरीका सीधा है और तब उपयोगी है जब आप डेटाबेस स्कीमा देखना चाहते हैं।

.tables

पैटर्न का उपयोग

.tables विशिष्ट टेबल को फ़िल्टर करने के लिए पैटर्न के जरिए फ़िल्टरिंग का भी समर्थन करता है। आप वाइल्डकार्ड कैरेक्टर्स जैसे % के साथ .tables कमांड में पैटर्न निर्दिष्ट कर सकते हैं। जब आपके डेटाबेस में बहुत सी टेबल हों और आप चुनिंदा टेबल फ़िल्टर करना चाहें, यह तकनीक उपयोगी है।

नीचे दिया गया कमांड केवल वे टेबल लौटाएगा जो "a" से शुरू होती हैं, जिससे आप अनावश्यक टेबल फ़िल्टर कर सकें।

.tables a%

मैं यह भी स्पष्ट करना चाहता हूँ कि SQLite शेल में .tables कमांड SQL के LIKE पैटर्न के बजाय GLOB पैटर्न उपयोग करता है। यह अंतर इसलिए मायने रखता है क्योंकि GLOB केस-सेंसिटिव होता है और वाइल्डकार्ड के रूप में * और ? उपयोग करता है, जबकि SQL में % और _ प्रयुक्त होते हैं।

अस्थायी टेबल

.tables कमांड आपको डेटाबेस में अस्थायी (temporary) टेबल भी दिखाने देता है। SQLite का उपयोग करते समय, आप CREATE TEMPORARY TABLE स्टेटमेंट से अस्थायी टेबल बना सकते हैं, जो केवल सत्र (session) की अवधि तक रहती है। .tables कमांड का उपयोग करके, आप सत्र सक्रिय रहने तक अस्थायी टेबल को सामान्य टेबल के साथ देख सकते हैं।

sqlite_master टेबल से टेबल दिखाएँ

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

टेबल नाम क्वेरी करना

डेटाबेस से टेबल नाम प्राप्त करने के लिए, आप sqlite_master टेबल पर निम्न SQL क्वेरी का उपयोग कर सकते हैं।

SELECT name FROM sqlite_master WHERE type='table';

ध्यान दें कि यह क्वेरी केवल टेबल नाम लौटाती है क्योंकि हमने type को ‘table’ के रूप में निर्दिष्ट किया है।

सिस्टम टेबल फ़िल्टर करना

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

SELECT name FROM sqlite_master 
WHERE type='table' AND name NOT LIKE 'sqlite_%';

PRAGMA कमांड से टेबल दिखाएँ

SQLite में PRAGMA table_list कमांड भी किसी डेटाबेस के भीतर टेबल प्रभावी रूप से सूचीबद्ध करता है। यह कमांड टेबल नाम देता है और अतिरिक्त मेटाडेटा भी शामिल करता है, जैसे स्कीमा और टेबल प्रकार। इससे यह .tables कमांड और sqlite_master टेबल पर क्वेरी करने की तुलना में अधिक शक्तिशाली विकल्प बन जाता है। आइए नीचे इस विधि का उपयोग कैसे करें, देखें।

टेबल मेटाडेटा दिखाना

PRAGMA table_list कमांड टेबल की सूची और विस्तृत मेटाडेटा देता है, जिनमें निम्न शामिल हैं:

  • स्कीमा नाम: यह दर्शाता है कि टेबल मुख्य डेटाबेस की है या किसी अन्य संलग्न स्कीमा की।
  • टेबल नाम: टेबल का नाम।
  • टेबल प्रकार: निर्दिष्ट करता है कि प्रविष्टि टेबल, व्यू, या अस्थायी टेबल है।
  • टेबल का स्रोत: यह बताता है कि टेबल उपयोगकर्ता द्वारा बनाई गई है या सिस्टम द्वारा स्वतः।
PRAGMA table_list;

स्कीमा के अनुसार फ़िल्टर करना

आप PRAGMA table_list का उपयोग अपने डेटाबेस को स्कीमा के अनुसार फ़िल्टर करने के लिए भी कर सकते हैं। यह तकनीक विशेष रूप से तब महत्वपूर्ण है जब आपके पास temp, main या अन्य उपयोगकर्ता-परिभाषित स्कीमा जैसे कई स्कीमा हों। उदाहरण के लिए, नीचे दिया गया कमांड main स्कीमा में टेबल दिखाएगा।

PRAGMA table_list('main');

प्रोग्रामिंग भाषाओं का उपयोग करके SQLite में टेबल दिखाएँ

डेवलपर Python और C सहित विभिन्न प्रोग्रामिंग भाषाओं का उपयोग करके किसी SQLite डेटाबेस में टेबल सूचीबद्ध कर सकते हैं। यह क्षमता उन अनुप्रयोगों के लिए महत्वपूर्ण है जो डेटाबेस के साथ डायनेमिक रूप से इंटरैक्ट करते हैं, जिससे बेहतर डेटा प्रबंधन और उपयोगकर्ता अनुभव संभव होता है।

SQLite टेबल दिखाने के उपयोग-परिदृश्य

एप्लिकेशनों में टेबल सूचीबद्ध करने के सामान्य उपयोग-परिदृश्य निम्नलिखित हैं:

  • डेटाबेस प्रबंधन: टेबल को डायनेमिक रूप से सूचीबद्ध करना डेटाबेस प्रबंधित करने, उनकी संरचना सत्यापित करने और माइग्रेशन या बैकअप जैसी कार्रवाइयों को करने में मदद करता है।
  • डायनेमिक क्वेरी और रिपोर्टिंग: कुछ अनुप्रयोगों को उपयोगकर्ताओं को उपलब्ध टेबल डायनेमिक रूप से दिखाने की जरूरत होती है ताकि वे क्वेरी या रिपोर्ट बनाने के लिए विशिष्ट टेबल चुन सकें।
  • डेटा माइग्रेशन और सत्यापन: डेटाबेस के बीच डेटा माइग्रेट या वैलिडेट करते समय, यह सुनिश्चित करना महत्वपूर्ण है कि सभी आवश्यक टेबल मौजूद हों और अपेक्षित संरचना से मेल खाती हों।

प्रोग्रामैटिक रूप से SQLite से कनेक्ट करना और टेबल नाम क्वेरी करना

SQLite डेटाबेस से प्रोग्रामैटिक रूप से कनेक्ट होने और टेबल नाम सूचीबद्ध करने के लिए आपको नीचे दिए गए चरणों का पालन करना चाहिए।

  • SQLite डेटाबेस से कनेक्शन स्थापित करें: अधिकांश प्रोग्रामिंग भाषाओं में ऐसी लाइब्रेरी होती हैं जो SQLite के साथ आसानी से इंटीग्रेशन देती हैं (उदा., Python में sqlite3 या SQLite C API)।

  • टेबल नाम प्राप्त करने के लिए क्वेरी चलाएँ: आप टेबल नाम दिखाने के लिए sqlite_master टेबल का उपयोग कर सकते हैं या विस्तृत मेटाडेटा दिखाने के लिए PRAGMA table_list कमांड का उपयोग कर सकते हैं।

C में टेबल डेटा लाना

आप SQLite C API का उपयोग करके C में SQLite एप्लिकेशन से कनेक्ट कर सकते हैं। इस API का उपयोग कर आप PRAGMA table_list जैसे SQL स्टेटमेंट या sqlite_master टेबल पर क्वेरी करके टेबल डेटा ला सकते हैं। यह तकनीक लो-लेवल सिस्टम प्रोग्रामिंग के लिए उपयोगी है, जब आपके पास सीमित संसाधन हों और आप इष्टतम प्रदर्शन बनाए रखना चाहें।

प्रदर्शन संबंधी विचार

SQLite में टेबल सूचीबद्ध करते समय आपको कुछ प्रदर्शन संबंधी समस्याएँ आ सकती हैं, खासकर बड़े डेटासेट के साथ काम करते समय। इनमें निम्न शामिल हैं:

कमांड लाइन प्रदर्शन

चूँकि .tables SQLite में बिल्ट-इन है, यह छोटे डेटाबेस के लिए गति और दक्षता के लिहाज से अनुकूलित है। हालांकि, SELECT name FROM sqlite_master WHERE type='table'; जैसी SQL क्वेरी का उपयोग .tables की तुलना में थोड़ा धीमा है क्योंकि क्वेरी निष्पादन इंजन अनुरोध को प्रोसेस करता है। फिर भी, व्यवहारिक रूप से यह अंतर नगण्य ही रहेगा। SQL क्वेरी अब भी .tables कमांड से अधिक लचीली है क्योंकि यह परिणामों को फ़िल्टर करने देती है।

प्रोग्रामैटिक प्रदर्शन

Python में sqlite3 लाइब्रेरी का उपयोग करते समय प्रदर्शन धीमा हो सकता है, खासकर बड़े डेटासेट संभालते समय। वहीं C, SQLite C API के जरिए SQLite डेटाबेस तक अधिक प्रत्यक्ष और अनुकूलित पहुँच देता है। बड़े डेटासेट, जिनमें बार-बार डेटाबेस इंटरैक्शन की आवश्यकता हो, के लिए आप अनुकूल और कुशल प्रदर्शन हेतु C पर विचार कर सकते हैं।

सामान्य त्रुटियाँ और उनका समाधान

SQLite में टेबल सूचीबद्ध करते समय आपको कुछ ऐसी त्रुटियाँ मिल सकती हैं जो प्रक्रिया में बाधा बनें। नीचे कुछ सामान्य त्रुटियाँ और उनके निवारण दिए गए हैं।

कोई टेबल नहीं मिली

‘कोई टेबल नहीं मिली’ त्रुटि के संभावित कारण निम्नलिखित हैं:

  • खाली डेटाबेस: डेटाबेस में कोई टेबल न हो सकती हैं, खासकर नए बनाए गए डेटाबेस में या सभी टेबल ड्रॉप करने के बाद। 

  • गलत डेटाबेस कनेक्शन: आप गलत या अप्रत्याशित डेटाबेस से जुड़े हो सकते हैं। हमेशा डेटाबेस फ़ाइल पथ की जाँच करें और सुनिश्चित करें कि आप सही डेटाबेस से जुड़े हैं।

  • डेटाबेस करप्शन: डेटाबेस करप्शन के कारण SQLite टेबल सही ढंग से प्रदर्शित करने में विफल हो सकता है। डेटाबेस करप्शन का पता लगाने के लिए PRAGMA integrity_check चलाएँ और चरणों का पालन करें।

अस्थायी टेबल से संबंधित समस्याएँ

अस्थायी टेबल के साथ काम करते समय, आपको निम्न समस्याएँ मिल सकती हैं:

  • सत्र-विशिष्ट प्रकृति: अस्थायी टेबल आमतौर पर वर्तमान डेटाबेस कनेक्शन और सत्र से बंधी होती हैं। यदि आपको अपेक्षित अस्थायी टेबल सूची में नहीं दिख रही है, तो हमेशा सुनिश्चित करें कि आप मौजूदा सत्र से जुड़े हैं।

  • नाम टकराव: अस्थायी टेबल सामान्य टेबल के साथ नेमस्पेस साझा करती हैं और यदि मौजूदा नामों का उपयोग करके बनाई जाती हैं तो सामान्य टेबल को शैडो कर सकती हैं। ऐसे परिदृश्यों में, सूचीबद्ध करने वाला कमांड तब तक सामान्य टेबल नहीं दिखा सकता जब तक आप अस्थायी टेबल को ड्रॉप न कर दें।

  • अस्थायी टेबल सूचीबद्ध करना: .tables कमांड और PRAGMA table_list अस्थायी टेबल प्रदर्शित करते हैं। यदि आप sqlite_master पर क्वेरी करते हैं, तो अस्थायी टेबल नहीं दिखाई देतीं क्योंकि वे अलग अस्थायी डेटाबेस में संग्रहीत होती हैं। अस्थायी टेबल को स्पष्ट रूप से सूचीबद्ध करने के लिए temp.sqlite_master टेबल का उपयोग करें: SELECT name FROM temp.sqlite_master WHERE type='table';

SQLite में टेबल सूचीबद्ध करने के विकल्प

SQLite में टेबल सूचीबद्ध करने के लिए .tables कमांड और sqlite_master पर क्वेरी के अलावा अलग-अलग वैकल्पिक तरीके भी हैं। इनमें निम्न शामिल हैं:

SQLite GUI टूल्स का उपयोग

यदि आप बिना क्वेरी लिखे टेबल देखना और प्रबंधित करना चाहते हैं तो निम्न SQLite GUI टूल प्रभावी हैं।

  • DB Browser for SQLite: एक ओपन-सोर्स GUI टूल जो उपयोगकर्ताओं को अपने डेटाबेस के साथ विज़ुअल रूप से इंटरैक्ट करने देता है और किसी डेटाबेस की सभी टेबल देखने के लिए सरल इंटरफ़ेस देता है।
  • Beekeeper Studio: SQLite के लिए एक क्रॉस-प्लेटफ़ॉर्म GUI टूल जो डेटाबेस प्रबंधन के लिए सहज इंटरफ़ेस देता है, जिसमें टेबल सूचीबद्ध करना, रो संपादित करना और क्वेरी चलाना शामिल है।
  • DBeaver: एक यूनिवर्सल डेटाबेस टूल जो उपयोगकर्ताओं को डेटाबेस संरचना नेविगेट करने देता है, जिसमें टेबल, कॉलम और उनका मेटाडेटा देखना शामिल है।

प्रोग्रामैटिक समाधान

कमांड-लाइन या GUI टूल्स के विकल्प के रूप में, डेवलपर Python, C, Java या Node.js जैसी प्रोग्रामिंग भाषाओं का उपयोग करके SQLite में टेबल को प्रोग्रामैटिक रूप से सूचीबद्ध कर सकते हैं।

  • Python: Python में sqlite3 लाइब्रेरी डेवलपर्स को डेटाबेस से जुड़ने और टेबल सूचीबद्ध करने के लिए क्वेरी चलाने देती है।

  • C: C API SQLite से कनेक्ट करने और टेबल कुशलता से प्राप्त करने देता है, खासकर प्रदर्शन-महत्वपूर्ण या एंबेडेड सिस्टम में।

  • JavaScript (Node.js): better-sqlite3 या sqlite3 जैसे पैकेज डेवलपर्स को वेब अनुप्रयोगों या बैकएंड सेवाओं में SQLite टेबल सूचीबद्ध करना इंटीग्रेट करने देते हैं।

निष्कर्ष

SQLite टेबल प्रदर्शित करने के कई तरीके हैं, जिनमें .tables कमांड, sqlite_master टेबल पर क्वेरी करना, और अधिक लचीलेपन के लिए PRAGMA table_list कमांड का उपयोग शामिल है। किस तकनीक का उपयोग कब करना है, यह समझना SQLite डेटाबेस को कुशलतापूर्वक नेविगेट और प्रबंधित करने के लिए महत्वपूर्ण है।

SQLite FAQs

SQLite टेबल सूचीबद्ध करने में अन्य डेटाबेस से कैसे भिन्न है?

SQLite में MySQL या PostgreSQL की तरह SHOW TABLES कमांड नहीं है। इसके बजाय, यह .tables जैसे कमांड और sqlite_master टेबल पर क्वेरी के जरिए टेबल सूचीबद्ध करता है।

.tables और sqlite_master टेबल पर क्वेरी करने में क्या अंतर है?

.tables कमांड SQLite CLI में एक बिल्ट-इन फ़ंक्शन है जो त्वरित टेबल सूची देता है, जबकि sqlite_master पर क्वेरी अधिक लचीलापन देती है और टेबल सूचीबद्ध करते समय फ़िल्टर या अतिरिक्त शर्तें लगाने की अनुमति देती है।

मेरे SQLite डेटाबेस में टेबल क्यों नहीं हैं?

यदि आपका डेटाबेस खाली है, आप गलत डेटाबेस फ़ाइल से जुड़े हैं, या अस्थायी टेबल किसी दूसरे सत्र में बनाई गई हैं, तो आपको ’कोई टेबल नहीं मिली’ त्रुटि मिल सकती है।

क्या मैं प्रोग्रामिंग भाषाओं में SQLite का उपयोग करके टेबल सूचीबद्ध कर सकता/सकती हूँ?

हाँ, Python, C और JavaScript (Node.js) जैसी अधिकांश प्रोग्रामिंग भाषाओं में ऐसी लाइब्रेरी या API हैं जो आपको SQLite डेटाबेस के साथ इंटरैक्ट करने और टेबल की सूची प्राप्त करने देती हैं।

ऐसे कौन से टूल हैं जिनसे बिना SQL कमांड के SQLite में टेबल देखी जा सकती हैं?

DB Browser for SQLite, Beekeeper Studio और DBeaver जैसे टूल आपको SQL कमांड लिखे बिना टेबल देखने और प्रबंधित करने देते हैं।

Allan Ouko

लेखक

Allan Ouko

डेटा एनालिटिक्स, बिज़नेस इंटेलिजेंस और डेटा साइंस में व्यावहारिक अनुभव रखने वाला डेटा साइंस तकनीकी लेखक। मैं SQL, Python, Power BI, Databricks और डेटा इंजीनियरिंग पर व्यावहारिक, उद्योग-केंद्रित सामग्री लिखता/लिखती हूँ, जो वास्तविक दुनिया की एनालिटिक्स कार्य से जुड़ी होती है। मेरी लेखनी तकनीकी गहराई और व्यावसायिक प्रभाव के बीच पुल का काम करती है, जिससे पेशेवरों को डेटा को आत्मविश्वासपूर्ण निर्णयों में बदलने में मदद मिलती है. 

विषय