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

รูปแบบคำสั่งดูชื่อคอลัมน์ของตารางใน MySQL (information_schema)

ใช้ information_schema.columns เพื่อดึงรายชื่อคอลัมน์ของตาราง

Syntax

select column_name from information_schema.columns where table_schema='yourDatabaseName' and table_name='yourTableName';

สร้างตารางตัวอย่าง

mysql> create table DemoTable ( 
    EmployeeId int, 
    EmployeeFirstName varchar(20), 
    EmployeeLastName varchar(20), 
    EmployeeAge int, 
    EmployeeCountryName varchar(40), 
    IsMarried tinyint(1), 
    isActive ENUM('ACTIVE','INACTIVE') ); 
Query OK, 0 rows affected (0.65 sec)

คิวรี่ดูชื่อคอลัมน์

mysql> select column_name from information_schema.columns where table_schema='web' and table_name='DemoTable';

ผลลัพธ์:

+---------------------+
| COLUMN_NAME         |
+---------------------+
| EmployeeId          |
| EmployeeFirstName   |
| EmployeeLastName    |
| EmployeeAge         |
| EmployeeCountryName |
| IsMarried           |
| isActive            |
+---------------------+
7 rows in set (0.00 sec)

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

คอลัมน์คำอธิบาย
TABLE_SCHEMAชื่อฐานข้อมูล
TABLE_NAMEชื่อตาราง
COLUMN_NAMEชื่อคอลัมน์
ORDINAL_POSITIONลำดับคอลัมน์ (1, 2, 3...)
COLUMN_DEFAULTค่า Default
IS_NULLABLEYES/NO
DATA_TYPEชนิดข้อมูล (int, varchar, date...)
CHARACTER_MAXIMUM_LENGTHความยาวสูงสุด (สำหรับ string)
NUMERIC_PRECISION/SCALEPrecision/Scale (สำหรับ numeric)
COLUMN_TYPEDefinition เต็ม (เช่น varchar(40))
COLUMN_KEYPRI, UNI, MUL (Key type)
EXTRAauto_increment, VIRTUAL GENERATED ฯลฯ

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

-- ดูโครงสร้างเต็ม
SELECT COLUMN_NAME, DATA_TYPE, COLUMN_TYPE, IS_NULLABLE, COLUMN_KEY, COLUMN_DEFAULT, EXTRA
FROM information_schema.columns
WHERE table_schema = 'web' AND table_name = 'DemoTable'
ORDER BY ORDINAL_POSITION;

-- หาคอลัมน์ Primary Key
SELECT COLUMN_NAME FROM information_schema.columns
WHERE table_schema = 'web' AND table_name = 'DemoTable' AND COLUMN_KEY = 'PRI';

คำสั่งสั้นๆ (MySQL Client)

DESC DemoTable;
-- หรือ
SHOW COLUMNS FROM DemoTable;