तालिका के स्तंभ नाम कैसे दिखाएं?


17

मामला सरल है: आपके पास एक MySQL डेटाबेस है जहां आपके पास केवल एक SQL क्वेरी इंटरफ़ेस है और आप प्रश्नों के साथ डेटाबेस संरचना जानना चाहते हैं। आप show tables;कमांड के साथ तालिकाओं को सूचीबद्ध कर सकते हैं , लेकिन आप व्यक्तिगत कॉलम के नाम कैसे देखते हैं?

( SELECTविवरण दिखाता है Empty setकि कोई डेटा मौजूद नहीं है और इस प्रकार उपयोग नहीं किया जा सकता है।)


कृपया ध्यान दें, स्वीकृत समाधान descकमांड के बारे में सबसे नीचे है । जिज्ञासु, यह सबसे छोटा है, लेकिन कम से कम वोट है। मेरे लिए, यह भी सबसे अच्छा है।
माइको

2
आपने एक साधारण SQL क्वेरी के लिए कहा। आपका जवाब एसक्यूएल नहीं है, ताकि कम वोटों की व्याख्या हो सके। आपको संभवतः अपनी क्वेरी का शीर्षक बदलना चाहिए: "तालिका के स्तंभ नाम कैसे दिखाएं"
लेनरर्ट

अच्छा विचार है, अब मेरा जवाब सवाल का बेहतर मेल है।
माइको

जवाबों:


36
select column_name from information_schema.columns where table_name='table'

2
इस बीच मुझे यह क्वेरी उपयोगी भी show create table <table_name>लगी : जहाँ <table_name> के बजाय आपने टेबल का नाम सादे पाठ में रखा। यह भी एक लिस्टिंग उद्देश्य के लिए अपने एक सूट जबकि अच्छी तरह से प्रकार देता है।
mico

जैसा कि @mico द्वारा कहा गया है: "show create table tbl_name \ G" आपका समाधान हो सकता है। Dev.mysql.com/doc/refman/5.7/en/show-create-table.html देखें । "\ G" भाग यहाँ केवल आउटपुट स्वरूपित करने के लिए है। सादर।
tdaget

6

सबसे अच्छा समाधान जो मुझे खुद से पता चला वह था desc table_nameकमान। अधिक जानकारी सूची MySQL टेबल्स पर है । यह कमांड एक डेटाबेस तालिका का विवरण देता है, जो कि वास्तव में मैं यह पता लगाने की कोशिश कर रहा था।


6

यह सुनिश्चित करने के लिए कि आप वर्तमान डेटाबेस में किसी तालिका में कॉलम सूचीबद्ध करते हैं, DATABASE () या SCHEMA () फ़ंक्शन का उपयोग करें । यदि आप वर्तमान डेटाबेस में नहीं हैं तो यह NULL देता है। यह क्वेरी स्तंभ में एक तालिका दिखाएगा जिस क्रम में स्तंभ परिभाषित किए गए थे:

SELECT column_name,column_type
FROM information_schema.columns
WHERE table_schema = DATABASE()
AND table_name='table'
ORDER BY ordinal_position;

3

मुझे यकीन नहीं है कि मुझे समझ में आया है कि आपको टेबल के शीर्षक से क्या मतलब है , लेकिन आप INFORMATION_SCHEMA से तालिका और उनके कॉलम के बारे में अधिकांश जानकारी प्राप्त कर सकते हैं


3

आप व्यक्तिगत तालिका शीर्षक कैसे देखते हैं?

क्या आपका मतलब टेबल कमेंट्स से है ?

use stack;
create table t(v integer primary key) comment 'My Special Table';

show tables;
+-----------------+
| Tables_in_stack |
+-----------------+
| t               |
+-----------------+

select table_name, table_comment from information_schema.tables where table_name='t';
+------------+------------------+
| table_name | table_comment    |
+------------+------------------+
| t          | My Special Table |
+------------+------------------+

मैं उन कॉलम नामों को चाहता था और पहले से ही तेजी से उत्तर के लिए धन्यवाद के कुछ तरीके हैं। इस टिप्पणी के बारे में भी धन्यवाद, जैक।
माइक्रो सिप

1
क्या आप अपने प्रश्न को थोड़ा स्पष्ट करते हुए यह स्पष्ट करते हैं कि यह आपके द्वारा बनाए गए कॉलम हैं?
जैक का कहना है कि topanswers.xyz

2
SHOW COLUMNS FROM mydb.mytable;

जहाँ mydb - वह डेटाबेस है जिसमें आवश्यक तालिका होती है

mytable - आवश्यक तालिका है

यह कॉलम की जानकारी लौटाता है (परीक्षा के लिए। स्तंभों के नाम, प्रकार आदि)


1
ओपी की समस्या को हल करने के तरीके के बिना छोटे कोड स्निपेट हतोत्साहित करते हैं। कृपया अपने उत्तर में और विवरण जोड़ने का प्रयास करें।
एरिक

0

आपको तालिकाओं और उनके स्तंभों के विवरण की सूची प्राप्त करने के लिए शामिल होने information_schema.tablesऔर information_schema.columnsएक साथ करने की आवश्यकता है ।

information_schema.columnsन केवल तालिकाओं के बारे में विस्तार से पता चलता है, बल्कि दृश्य भी। इस सिस्टम दृश्य से केवल तालिका विवरण को फ़िल्टर करने का कोई तरीका नहीं है।

इसलिए आपको शामिल होने की आवश्यकता है।

उदाहरण क्वेरी:

select t.TABLE_SCHEMA, t.TABLE_NAME, c.COLUMN_NAME, c.COLUMN_TYPE, c.DATA_TYPE
from information_schema.tables t , information_schema.columns c where 2=2 
and t.table_schema=c.table_schema
and t.table_name=c.table_name
and t.table_type ='BASE TABLE' 
order by t.table_schema, t.table_name, c.column_name 
;
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.