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

PostgreSQL DESCRIBE टेबल समतुल्य

कुछ 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 अधिकांश प्रमुख डीबीएमएस में विचार काफी मानक हैं, और इसलिए हम इस दृश्य को उन डीबीएमएस में भी पूछ सकते हैं।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं विंडोज़ पर पोस्टग्रेएसक्यूएल कैसे शुरू कर सकता हूं?

  2. PostgreSQL में एकाधिक कॉलम कैसे अपडेट करें

  3. Postgres-XL 9.5 . की दिशा में कार्य करना

  4. स्प्रिंग बूट में पोस्टग्रेज कनेक्शन बंद कर दिया गया है त्रुटि

  5. एक तालिका के SQL अद्यतन फ़ील्ड दूसरे के फ़ील्ड से