कभी-कभी आप केवल तालिका की मूल संरचना देखना चाहते हैं।
SQLite में, दी गई तालिका के बारे में जानकारी प्राप्त करने के कई तरीके हैं। विशेष रूप से, यहां चार विकल्प दिए गए हैं:
PRAGMA table_info()
बयानPRAGMA table_xinfo()
स्टेटमेंट (वर्चुअल टेबल के लिए).schema
आदेश- द
sqlite_master
टेबल
प्रत्येक विधि के उदाहरण नीचे हैं।
PRAGMA table_info()
PRAGMA table_info()
कथन नामित तालिका में प्रत्येक स्तंभ के लिए एक पंक्ति देता है। यह एक SQLite की तरह है जो DESCRIBE
. के बराबर है MySQL में स्टेटमेंट।
वाक्यविन्यास
वाक्य रचना इस प्रकार है:
PRAGMA schema.table_info(table-name);
जहां table-name
उस तालिका का नाम है जिसके बारे में आपको जानकारी चाहिए।
schema
भाग वैकल्पिक है। यह संलग्न डेटाबेस का नाम है या main
या temp
मुख्य और टीईएमपी डेटाबेस के लिए। यदि आप इसे प्रदान नहीं करते हैं तो मुख्य डेटाबेस का उपयोग किया जाएगा।
उदाहरण
यहां पालतू जानवर . नामक तालिका के बारे में जानकारी लौटाने का एक उदाहरण दिया गया है ।
PRAGMA table_info(Pets);
परिणाम:
cid name type notnull dflt_value pk ---------- ---------- ---------- ---------- ---------- ---------- 0 PetId INTEGER 0 1 1 PetName 0 0 2 TypeId 0 0
इस मामले में, केवल पहला कॉलम (PetId .) ) का डेटा प्रकार स्पष्ट रूप से परिभाषित है। अन्य को उनके प्रकारों को स्पष्ट रूप से परिभाषित किए बिना बनाया गया था।
हम यह भी देख सकते हैं कि PetId स्तंभ प्राथमिक कुंजी स्तंभ है (एक 1 . है पीके . में कॉलम)।
PRAGMA table_xinfo()
PRAGMA table_xinfo()
स्टेटमेंट बिल्कुल PRAGMA table_info()
. जैसा ही है स्टेटमेंट, सिवाय इसके कि यह वर्चुअल टेबल पर छिपे हुए कॉलम भी लौटाता है।
यदि आप किसी छिपे हुए कॉलम सहित किसी वर्चुअल टेबल की संरचना देखना चाहते हैं, तो इसका उपयोग किया जा सकता है।
पिछले उदाहरण से उसी तालिका का उपयोग करते हुए एक उदाहरण यहां दिया गया है।
PRAGMA table_xinfo(Pets);
परिणाम:
cid name type notnull dflt_value pk hidden ---------- ---------- ---------- ---------- ---------- ---------- ---------- 0 PetId INTEGER 0 1 0 1 PetName 0 0 0 2 TypeId 0 0 0
अतिरिक्त कॉलम देखने के लिए आपको बग़ल में स्क्रॉल करना पड़ सकता है। इस मामले में कोई भी कॉलम छिपा नहीं है (और यह वर्चुअल टेबल नहीं है), इसलिए सभी पंक्तियां 0 हैं उस कॉलम के लिए।
यहाँ परिणाम फिर से है, लेकिन लंबवत आउटपुट का उपयोग करना (.mode line
) ताकि आपको बग़ल में स्क्रॉल न करना पड़े।
.mode line
PRAGMA table_xinfo(Pets);
परिणाम:
cid = 0 name = PetId type = INTEGER notnull = 0 dflt_value = pk = 1 hidden = 0 cid = 1 name = PetName type = notnull = 0 dflt_value = pk = 0 hidden = 0 cid = 2 name = TypeId type = notnull = 0 dflt_value = pk = 0 hidden = 0
.स्कीमा कमांड
तालिका की संरचना को पुनः प्राप्त करने का दूसरा तरीका .schema
. का उपयोग करना है आज्ञा। यह उन कई विधियों में से एक है जिनका उपयोग आप तालिका बनाने के लिए उपयोग किए गए SQL को वापस करने के लिए कर सकते हैं।
पिछले उदाहरण से उसी तालिका का उपयोग करते हुए एक उदाहरण यहां दिया गया है।
.schema Pets
परिणाम:
CREATE TABLE Pets( PetId INTEGER PRIMARY KEY, PetName, TypeId, FOREIGN KEY(TypeId) REFERENCES Types(TypeId) );
यह विधि हमें तालिका के बारे में अधिक जानकारी देखने की अनुमति देती है। इस उदाहरण में, हम देख सकते हैं कि TypeId कॉलम वास्तव में एक विदेशी कुंजी है जो किसी अन्य तालिका के कॉलम को संदर्भित करती है।
द sqlite_मास्टर टेबल
आप sqlite_master
का उपयोग कर सकते हैं पिछले उदाहरण के समान ही तालिका।
यहाँ उसी तालिका का उपयोग करने वाला एक उदाहरण दिया गया है।
SELECT sql
FROM sqlite_master
WHERE tbl_name = 'Pets';
परिणाम:
CREATE TABLE Pets( PetId INTEGER PRIMARY KEY, PetName, TypeId, FOREIGN KEY(TypeId) REFERENCES Types(TypeId) )