ATTACH के साथ खोले गए SQLite डेटाबेस फ़ाइल में तालिकाओं को कैसे सूचीबद्ध करें?




database metadata (12)

".schema" कमांडो आपको उपलब्ध तालिकाओं को बनाने के लिए उपयोग किए गए कथन को दिखाकर उपलब्ध तालिकाओं और उनकी पंक्तियों को सूचीबद्ध करेगा:

sqlite> create table_a (id int, a int, b int);
sqlite> .schema table_a
CREATE TABLE table_a (id int, a int, b int);

SQLite डेटाबेस फ़ाइल में उन तालिकाओं के भीतर पंक्तियों और पंक्तियों को सूचीबद्ध करने के लिए SQL का उपयोग किया जा सकता है - एक बार जब मैंने SQLite 3 कमांड लाइन उपकरण पर ATTACH कमांड के साथ इसे संलग्न किया है?


SQLite 3 के नवीनतम संस्करणों के अनुसार आप जारी कर सकते हैं:

.fullschema

अपने सभी निर्माण बयान देखने के लिए।


SQLite डेटाबेस में तालिकाओं को देखने के लिए कुछ चरण हैं:

  1. अपने डेटाबेस में टेबल सूचीबद्ध करें:

    .tables
    
  2. सूची कैसे दिखती है सूची:

    .schema tablename
    
  3. पूरी तालिका प्रिंट करें:

    SELECT * FROM tablename;
    
  4. सभी उपलब्ध SQLite प्रॉम्प्ट कमांड सूचीबद्ध करें:

    .help
    

उपयोग:

import sqlite3

TABLE_LIST_QUERY = "SELECT * FROM sqlite_master where type='table'"

ऐसा करने का सबसे आसान तरीका डेटाबेस को सीधे खोलना और SQLite 3 खोल उपकरण का आविष्कार करने के बाद इसे जोड़ने के बजाय .dump कमांड का उपयोग करना है।

तो ... (मान लें कि आपके ओएस कमांड लाइन प्रॉम्प्ट $sqlite3 बजाय $sqlite3 :

sqlite3> ATTACH database.sqlite as "attached"

अपने ओएस कमांड लाइन से, सीधे डेटाबेस खोलें:

$sqlite3 database.sqlite
sqlite3> .dump

ऐसा प्रतीत होता है कि आपको sqlite_master तालिका के माध्यम से जाने की आवश्यकता है, जैसे:

SELECT * FROM dbname.sqlite_master WHERE type='table';

और उसके बाद प्रत्येक तालिका को मैन्युअल रूप से पंक्तियों को देखने के लिए SELECT या समान के साथ जाएं।

.DUMP और .SCHEMA आदेश डेटाबेस को बिल्कुल नहीं दिखते हैं।


टेबल को सूचीबद्ध करने के लिए आप यह भी कर सकते हैं:

SELECT name FROM sqlite_master
WHERE type='table';

मैं इसे प्राप्त करने के लिए इस क्वेरी का उपयोग करता हूं:

SELECT name FROM sqlite_master WHERE type='table'

और आईओएस में उपयोग करने के लिए:

NSString *aStrQuery=[NSString stringWithFormat:@"SELECT name FROM sqlite_master WHERE type='table'"];

सभी डेटाबेस देखने के लिए .da - जिसे ' मुख्य ' कहा जाता है

इस डेटाबेस की तालिकाओं को देखा जा सकता है

Sqlite_master आदेश से 1 से अलग tbl_name चुनें;

संलग्न डेटाबेस को एटीटीएसी जैसे एए (बीबी, सीसी ...) में एएस के साथ आपके द्वारा चुने गए उपसर्गों की आवश्यकता है:

Aa.sqlite_master आदेश से 1 से अलग tbl_name चुनें;

ध्यान दें कि यहां आपको विचार भी मिलते हैं। इन ऑर्डर को बाहर करने के लिए 'ऑर्डर' से पहले टाइप = 'टेबल '


documentation अनुसार, MySQLs के SHOW TABLES; टैबलेट के बराबर SHOW TABLES; है:

".tables" कमांड सूची मोड को सेट करने के समान है और फिर निम्न क्वेरी निष्पादित करता है:

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

हालांकि, अगर आप जांच रहे हैं कि कोई भी तालिका मौजूद है (या इसके विवरण प्राप्त करने के लिए), तो @LuizGeron उत्तर देखें।



union all माध्यम से, सभी तालिकाओं को एक सूची में गठबंधन करें।

select name
from sqlite_master 
where type='table'

union all 

select name 
from sqlite_temp_master 
where type='table'





metadata