Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

แสดงชื่อตารางและคอลัมน์ใน MySQL ด้วย INFORMATION_SCHEMA

ใช้ตาราง INFORMATION_SCHEMA.COLUMNS เพื่อดูรายชื่อตารางและคอลัมน์ทั้งหมดในฐานข้อมูล

รูปแบบคำสั่ง

SELECT DISTINCT TABLE_NAME, COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = 'yourDatabaseName';

ตัวอย่าง: ฐานข้อมูล sample

mysql> SELECT DISTINCT TABLE_NAME, COLUMN_NAME 
    -> FROM INFORMATION_SCHEMA.COLUMNS 
    -> WHERE TABLE_SCHEMA = 'sample';

ผลลัพธ์ (บางส่วน)

+--------------------------------+-------------------------------+
| TABLE_NAME                     | COLUMN_NAME                   |
+--------------------------------+-------------------------------+
| aggregatefunctiondemo          | UserId                        |
| aggregatefunctiondemo          | UserName                      |
| allownulldefaulnotnulldemo     | Id                            |
| allownulldefaulnotnulldemo     | UserAddress                   |
| allownulldefaulnotnulldemo     | UserName                      |
| ...                            | ...                           |
| userlogindetails               | UserId                        |
+--------------------------------+-------------------------------+

คอลัมน์ที่มีประโยชน์ใน INFORMATION_SCHEMA.COLUMNS

คอลัมน์คำอธิบาย
TABLE_SCHEMAชื่อฐานข้อมูล
TABLE_NAMEชื่อตาราง
COLUMN_NAMEชื่อคอลัมน์
ORDINAL_POSITIONลำดับคอลัมน์ (1,2,3...)
COLUMN_DEFAULTค่า DEFAULT
IS_NULLABLEYES/NO
DATA_TYPEชนิดข้อมูล (int, varchar, etc.)
CHARACTER_MAXIMUM_LENGTHความยาวสูงสุด (สำหรับ string)
NUMERIC_PRECISIONความแม่นยำ (สำหรับ number)
COLUMN_KEYPRI, UNI, MUL (Key type)
EXTRAauto_increment, etc.

Query ที่มีประโยชน์เพิ่มเติม

หาตารางที่มีคอลัมน์ชื่อเฉพาะ

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = 'sample' AND COLUMN_NAME = 'email';

ดูโครงสร้างตารางเฉพาะตาราง

SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT, COLUMN_KEY, EXTRA
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'sample' AND TABLE_NAME = 'your_table'
ORDER BY ORDINAL_POSITION;

นับจำนวนคอลัมน์ต่อตาราง

SELECT TABLE_NAME, COUNT(*) as column_count
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'sample'
GROUP BY TABLE_NAME
ORDER BY column_count DESC;