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

SQLite डेटाबेस में तालिकाओं को सूचीबद्ध करने के 2 तरीके

SQLite में सभी संलग्न डेटाबेस में तालिकाओं की सूची वापस करने के दो तरीके यहां दिए गए हैं।

पहली विधि सभी तालिकाओं को लौटाती है और सभी संलग्न डेटाबेस के लिए दृश्य।

दूसरी विधि आपको तालिकाओं और विचारों, या केवल तालिकाओं दोनों को वापस करने का विकल्प देती है, लेकिन केवल प्राथमिक डेटाबेस के लिए।

दिसंबर 2021 अपडेट करें :इस लेख को लिखने के बाद से, SQLite ने एक और विकल्प पेश किया है, जिसे मैंने इस लेख के अंत में एक बोनस तीसरे विकल्प के रूप में सूचीबद्ध किया है।

.टेबल्स कमांड

SQLite कमांड लाइन शेल का उपयोग करते समय तालिकाओं की सूची वापस करने का सबसे आसान तरीका .tables का उपयोग करना है आज्ञा।

इस आदेश का उपयोग तर्क के साथ या बिना तर्क के किया जा सकता है। यदि आप तर्क प्रदान किए बिना इसका उपयोग करते हैं, तो यह सभी संलग्न डेटाबेस के लिए सभी टेबल (और दृश्य) देता है।

उदाहरण:

.tables

परिणाम:

Album          Employee       InvoiceLine    PlaylistTrack
Artist         Genre          MediaType      Track        
Customer       Invoice        Playlist     

मेरे मामले में, केवल एक संलग्न डेटाबेस (चिनूक नमूना डेटाबेस) है, और इस डेटाबेस की सभी तालिकाएँ वापस कर दी गई हैं।

जैसा कि बताया गया है, आप इस आदेश को तर्क भी प्रदान कर सकते हैं। इस तरह के तर्क का उपयोग कमांड द्वारा लौटाई गई तालिकाओं को सीमित करने के लिए किया जा सकता है। उदाहरण के लिए, आप किसी विशिष्ट तालिका को नाम दे सकते हैं, या आप पैटर्न मिलान का उपयोग केवल उन तालिकाओं को वापस करने के लिए कर सकते हैं जो किसी दिए गए पैटर्न से मेल खाते हैं।

उदाहरण:

.tables a%

परिणाम:

Album   Artist

इस मामले में केवल "a" अक्षर से शुरू होने वाली तालिकाएँ लौटाई जाती हैं।

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

अपने परिणामों से दृश्यों को बाहर करने का दूसरा तरीका sqlite_schema . को क्वेरी करना है सीधे टेबल। हालांकि इस तालिका में दृश्य भी हैं, यदि आवश्यक हो तो आप उन्हें अपने परिणामों से बाहर करने के लिए SQL का उपयोग कर सकते हैं।

sqlite_schema तालिका

प्रत्येक SQLite डेटाबेस में एक sqlite_schema होता है तालिका जो डेटाबेस के लिए स्कीमा को परिभाषित करती है। आप अपने डेटाबेस में तालिकाओं की सूची वापस करने के लिए इस तालिका का उपयोग कर सकते हैं।

जब आप .tables . का उपयोग करते हैं आदेश, यह ऐसा करने के समान है:

SELECT name FROM sqlite_schema 
WHERE type IN ('table','view') 
AND name NOT LIKE 'sqlite_%'
ORDER BY 1;

हालाँकि, एक अंतर है।

अंतर यह है कि यह विधि केवल प्राथमिक . के लिए परिणाम लौटाती है डेटाबेस (.tables कमांड सभी . के लिए परिणाम देता है संलग्न डेटाबेस)।

उपरोक्त क्वेरी को चलाने से निम्न परिणाम प्राप्त होता है:

Album
Artist
Customer
Employee
Genre
Invoice
InvoiceLine
MediaType
Playlist
PlaylistTrack
Track

वह क्वेरी और दोनों टेबल लौटाती है दृश्य (ठीक उसी तरह जैसे .tables कमांड करता है)।

मेरे मामले में कोई विचार नहीं है, लेकिन यदि आप परिणामों में विचारों को बाहर करना चाहते हैं, तो इसका उपयोग करें:

SELECT name FROM sqlite_schema 
WHERE type = 'table' 
AND name NOT LIKE 'sqlite_%'
ORDER BY 1;

परिणाम:

Album
Artist
Customer
Employee
Genre
Invoice
InvoiceLine
MediaType
Playlist
PlaylistTrack
Track

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

दृश्यों को बाहर करें

पूर्णता के लिए, यहां एक त्वरित उदाहरण दिया गया है जो एक दृश्य के साथ डेटाबेस का उपयोग करता है। इस डेटाबेस में एक तालिका है (जिसे उत्पाद . कहा जाता है) ) और एक दृश्य (vProducts . कहा जाता है) )।

SQLite/डेटाबेस से कनेक्ट करें:

sqlite3 Store.db

.tablesचलाएं आदेश:

.tables

परिणाम:

Products   vProducts

sqlite_schema को क्वेरी करें टेबल के लिए टेबल और दृश्य:

SELECT name FROM sqlite_schema 
WHERE type IN ('table','view') 
AND name NOT LIKE 'sqlite_%'
ORDER BY 1;

परिणाम:

Products
vProducts

अब क्वेरी sqlite_schema टेबल के लिए केवल :

SELECT name FROM sqlite_schema 
WHERE type = 'table' 
AND name NOT LIKE 'sqlite_%'
ORDER BY 1;

परिणाम:

Products

अस्थायी टेबल

.table कमांड स्थायी टेबल और अस्थायी टेबल दोनों देता है। sqlite_schema तालिका में केवल स्थायी तालिकाएँ होती हैं। यदि आपको केवल अस्थायी तालिकाओं को वापस करने की आवश्यकता है, तो आप sqlite_temp_schema क्वेरी कर सकते हैं या इसका पर्यायवाची sqlite_temp_master

स्थायी टेबल और अस्थायी टेबल दोनों को वापस करने के लिए, आप इस तरह की क्वेरी का उपयोग कर सकते हैं:

SELECT name FROM 
   (SELECT * FROM sqlite_schema UNION ALL
    SELECT * FROM sqlite_temp_schema)
WHERE type='table'
ORDER BY name;

बोनस तीसरा विकल्प:टेबल_लिस्ट प्राग्मा स्टेटमेंट

चूँकि मैंने पहली बार यह लेख लिखा था, SQLite ने table_list . पेश किया है pragma कथन, जो तालिकाओं और विचारों को सूचीबद्ध करता है:

PRAGMA table_list;

देखें PRAGMA एक सिंहावलोकन और उदाहरणों के लिए SQLite में table_list।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Android और Phonegap का उपयोग करके SQLite डेटाबेस का संग्रहण

  2. मुझे डेटाबेस हेल्पर को कब बंद करना चाहिए?

  3. डेटाबेस लॉक नहीं है! एंड्रॉइड में

  4. nullvalue:SQLite में NULL मान दिखाएं

  5. सिंगलटन दृष्टिकोण के साथ SQLite स्मृति समस्या