INFORMATION_SCHEMA.COLUMNS का उपयोग करना
SHOW COLUMNS का आउटपुट सीधे SELECT क्वेरी में उपयोग नहीं किया जा सकता। इसके बजाय, INFORMATION_SCHEMA.COLUMNS टेबल को क्वेरी करें।
सिंटैक्स
SELECT * FROM (
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'yourTableName'
) anyAliasName;
उदाहरण
1. टेबल बनाना
mysql> CREATE TABLE DemoTable (
StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentFirstName VARCHAR(20),
StudentLastName VARCHAR(20),
StudentAge INT
);
Query OK, 0 rows affected (1.51 sec)
2. कॉलम मेटाडेटा क्वेरी करना
mysql> SELECT * FROM (
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'DemoTable'
) tbl;
मुख्य कॉलम जो लौटाए जाते हैं
| कॉलम | विवरण |
|---|---|
| TABLE_CATALOG | कैटलॉग नाम (आमतौर पर 'def') |
| TABLE_SCHEMA | डेटाबेस नाम |
| TABLE_NAME | टेबल नाम |
| COLUMN_NAME | कॉलम नाम |
| ORDINAL_POSITION | कॉलम की स्थिति (1 से शुरू) |
| COLUMN_DEFAULT | डिफ़ॉल्ट मान |
| IS_NULLABLE | 'YES' या 'NO' |
| DATA_TYPE | डेटा प्रकार (int, varchar, आदि) |
| CHARACTER_MAXIMUM_LENGTH | स्ट्रिंग प्रकार के लिए अधिकतम लंबाई |
| COLUMN_KEY | 'PRI', 'UNI', 'MUL', या खाली |
| EXTRA | अतिरिक्त जानकारी (जैसे auto_increment) |
उपयोगी फिल्टर जोड़ना
SELECT COLUMN_NAME, DATA_TYPE, COLUMN_TYPE, IS_NULLABLE, COLUMN_KEY, EXTRA FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'yourDatabaseName' AND TABLE_NAME = 'DemoTable' ORDER BY ORDINAL_POSITION;
लाभ
- पूरी तरह से SQL-मानक अनुरूप
- WHERE, JOIN, ORDER BY आदि का उपयोग कर सकते हैं
- प्रोग्रामेटिक एक्सेस के लिए आदर्श