कुछ DBMS जैसे Oracle, MySQL और MariaDB में एक DESCRIBE
होता है आदेश जो तालिकाओं और विचारों के बारे में जानकारी देता है। यह जाता है DESCRIBE table
जहां तालिका तालिका या दृश्य का नाम है, और यदि आप केवल एक विशिष्ट कॉलम के बारे में जानकारी चाहते हैं तो इसके बाद कॉलम नाम भी हो सकता है।
PostgreSQL में DESCRIBE TABLE
नहीं है जैसे आदेश, लेकिन विकल्प हैं।
द \d
कमांड
अगर आप psql
. का इस्तेमाल कर रहे हैं , तालिका जानकारी वापस करने का एक त्वरित तरीका \d
. के साथ है आज्ञा। यह आदेश तालिकाओं, विचारों, भौतिक विचारों, अनुक्रमणिका, अनुक्रमों या विदेशी तालिकाओं के बारे में जानकारी दिखाता है। इसलिए हम इस कमांड का उपयोग DESCRIBE TABLE
. के रूप में कर सकते हैं वैकल्पिक।
वाक्यविन्यास
वाक्य रचना इस प्रकार है:
\d[S+] [ pattern ]
यहां, pattern
तालिका (या अन्य वस्तु) का नाम हो सकता है या यह एक नियमित अभिव्यक्ति हो सकती है। अगर \d
pattern
. के बिना प्रयोग किया जाता है तर्क, यह \dtvmsE
. के बराबर है जो सभी दृश्यमान तालिकाओं, विचारों, भौतिक विचारों, अनुक्रमों और विदेशी तालिकाओं की सूची दिखाएगा।
डिफ़ॉल्ट रूप से, केवल उपयोगकर्ता-निर्मित ऑब्जेक्ट दिखाए जाते हैं, लेकिन आप एक पैटर्न या S
. की आपूर्ति कर सकते हैं सिस्टम ऑब्जेक्ट को शामिल करने के लिए संशोधक।
उदाहरण
यहां \d
. का उपयोग करने का एक उदाहरण दिया गया है actor
. नामक तालिका के बारे में जानकारी वापस करने के लिए :
\d public.actor
परिणाम:
Table "public.actor" +-------------+-----------------------------+-----------+----------+-----------------------------------------+ | Column | Type | Collation | Nullable | Default | +-------------+-----------------------------+-----------+----------+-----------------------------------------+ | actor_id | integer | | not null | nextval('actor_actor_id_seq'::regclass) | | first_name | character varying(45) | | not null | | | last_name | character varying(45) | | not null | | | last_update | timestamp without time zone | | not null | now() | +-------------+-----------------------------+-----------+----------+-----------------------------------------+ Indexes: "actor_pkey" PRIMARY KEY, btree (actor_id) "idx_actor_last_name" btree (last_name) Referenced by: TABLE "film_actor" CONSTRAINT "film_actor_actor_id_fkey" FOREIGN KEY (actor_id) REFERENCES actor(actor_id) ON UPDATE CASCADE ON DELETE RESTRICT Triggers: last_updated BEFORE UPDATE ON actor FOR EACH ROW EXECUTE FUNCTION last_updated()
कमांड संबंधित इंडेक्स, बाधाओं, नियमों और ट्रिगर्स को भी लौटाता है। साथ ही, विदेशी तालिकाओं के लिए, संबद्ध विदेशी सर्वर दिखाया जाता है।
विस्तारित जानकारी
हम एक धन चिह्न जोड़ सकते हैं (+
) विस्तारित जानकारी को प्रकट करने के लिए, जिसमें तालिका के कॉलम से जुड़ी कोई भी टिप्पणी, तालिका में ओआईडी की उपस्थिति, दृश्य परिभाषा यदि संबंध एक दृश्य है, और एक गैर-डिफ़ॉल्ट प्रतिकृति पहचान सेटिंग और एक्सेस विधि का नाम यदि संबंध में एक एक्सेस विधि है।
उदाहरण:
\d+ public.actor
परिणाम:
Table "public.actor" +-------------+-----------------------------+-----------+----------+-----------------------------------------+----------+--------------+-------------+ | Column | Type | Collation | Nullable | Default | Storage | Stats target | Description | +-------------+-----------------------------+-----------+----------+-----------------------------------------+----------+--------------+-------------+ | actor_id | integer | | not null | nextval('actor_actor_id_seq'::regclass) | plain | | | | first_name | character varying(45) | | not null | | extended | | | | last_name | character varying(45) | | not null | | extended | | | | last_update | timestamp without time zone | | not null | now() | plain | | | +-------------+-----------------------------+-----------+----------+-----------------------------------------+----------+--------------+-------------+ Indexes: "actor_pkey" PRIMARY KEY, btree (actor_id) "idx_actor_last_name" btree (last_name) Referenced by: TABLE "film_actor" CONSTRAINT "film_actor_actor_id_fkey" FOREIGN KEY (actor_id) REFERENCES actor(actor_id) ON UPDATE CASCADE ON DELETE RESTRICT Triggers: last_updated BEFORE UPDATE ON actor FOR EACH ROW EXECUTE FUNCTION last_updated() Access method: heap
केवल विशिष्ट ऑब्जेक्ट प्रकार लौटाएं
जैसा कि बताया गया है, if \d
pattern
. के बिना प्रयोग किया जाता है तर्क, यह \dtvmsE
. के बराबर है जो सभी दृश्यमान तालिकाओं, विचारों, भौतिक विचारों, अनुक्रमों और विदेशी तालिकाओं की सूची दिखाएगा।
हम किसी भी अक्षर को जोड़ सकते हैं E
, i
, m
, s
, t
, और v
, जो क्रमशः विदेशी तालिका, सूचकांक, भौतिक दृश्य, अनुक्रम, तालिका और दृश्य के लिए खड़ा है। हम इन प्रकार की वस्तुओं की सूची प्राप्त करने के लिए किसी भी क्रम में इनमें से कोई भी या सभी अक्षर निर्दिष्ट कर सकते हैं।
t
. को जोड़ने का एक उदाहरण यहां दिया गया है लौटाए गए डेटा को केवल तालिकाओं तक सीमित करने के लिए:
\dt actor
परिणाम:
List of relations +--------+-------+-------+----------+ | Schema | Name | Type | Owner | +--------+-------+-------+----------+ | public | actor | table | postgres | +--------+-------+-------+----------+
वाइल्डकार्ड
यहां वाइल्डकार्ड ऑपरेटर को शामिल करने का एक उदाहरण दिया गया है, ताकि film
. से शुरू होने वाली सभी तालिकाएं लौटाए जाते हैं:
\dt film*
परिणाम:
List of relations +--------+---------------+-------+----------+ | Schema | Name | Type | Owner | +--------+---------------+-------+----------+ | public | film | table | postgres | | public | film_actor | table | postgres | | public | film_category | table | postgres | +--------+---------------+-------+----------+
information_schema.columns
देखें
अगर आप psql
. का इस्तेमाल नहीं कर रहे हैं (और भले ही आप हैं psql
. का उपयोग करना ), तो आप हमेशा information_schema.columns
. को क्वेरी कर सकते हैं दृश्य। इस दृश्य का उपयोग उसी जानकारी को वापस करने के लिए किया जा सकता है जो हमें DESCRIBE table
अन्य डीबीएमएस में।
SELECT
column_name,
data_type,
character_maximum_length AS max_length,
character_octet_length AS octet_length,
is_nullable,
column_default
FROM
information_schema.columns
WHERE
table_schema = 'public' AND
table_name = 'actor';
परिणाम:
+-------------+-----------------------------+------------+--------------+-------------+-----------------------------------------+ | column_name | data_type | max_length | octet_length | is_nullable | column_default | +-------------+-----------------------------+------------+--------------+-------------+-----------------------------------------+ | actor_id | integer | NULL | NULL | NO | nextval('actor_actor_id_seq'::regclass) | | first_name | character varying | 45 | 180 | NO | NULL | | last_name | character varying | 45 | 180 | NO | NULL | | last_update | timestamp without time zone | NULL | NULL | NO | now() | +-------------+-----------------------------+------------+--------------+-------------+-----------------------------------------+
इस दृश्य में और भी कई कॉलम हैं, और आप आवश्यकतानुसार कॉलम जोड़/हटा सकते हैं।
information_schema
अधिकांश प्रमुख डीबीएमएस में विचार काफी मानक हैं, और इसलिए हम इस दृश्य को उन डीबीएमएस में भी पूछ सकते हैं।