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

วิธีหาชื่อ Column ใน MySQL: SHOW COLUMNS และ INFORMATION_SCHEMA

สองวิธีหลักในการดูโครงสร้างตาราง (Schema)

วิธีที่ 1: SHOW COLUMNS (สั้น กวดขวาง)

SHOW COLUMNS FROM table_name;
-- หรือ
DESC table_name;
-- หรือ
DESCRIBE table_name;

ผลลัพธ์:

FieldTypeNullKeyDefaultExtra
ClientIdint(11)NOPRINULLauto_increment
ClientNamevarchar(100)YESNULL
ClientAgeint(11)YESNULL
ClientAddressvarchar(100)YESNULL
ClientCountryNamevarchar(100)YESNULL
ClientEducationDetailsvarchar(200)YESNULL

วิธีที่ 2: INFORMATION_SCHEMA.COLUMNS (ยืดหยุ่น Query ได้)

SELECT COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = 'database_name' 
  AND TABLE_NAME = 'table_name';

ผลลัพธ์:

+------------------------+
| COLUMN_NAME            |
+------------------------+
| ClientAddress          |
| ClientAge              |
| ClientCountryName      |
| ClientEducationDetails |
| ClientId               |
| ClientName             |
+------------------------+

เปรียบเทียบ

คุณสมบัติSHOW COLUMNSINFORMATION_SCHEMA
ความเร็วเร็วกว่าช้ากว่า (Join หลายตาราง)
Filter/Whereไม่ได้ได้ (WHERE, LIKE, JOIN)
ข้อมูลเพิ่มเติมพื้นฐานครบถ้วน (Privileges, Comments, etc.)
Cross-Databaseไม่ได้ได้ (ระบุ TABLE_SCHEMA)
Programmatic Useยาก (Output แบบ Text)ง่าย (Result Set ธรรมดา)

คอลัมน์สำคัญใน INFORMATION_SCHEMA.COLUMNS

  • COLUMN_NAME - ชื่อคอลัมน์
  • DATA_TYPE - ชนิดข้อมูล (int, varchar, datetime...)
  • CHARACTER_MAXIMUM_LENGTH - ความยาวสูงสุด (สำหรับ String)
  • NUMERIC_PRECISION, NUMERIC_SCALE - Precision/Scale (สำหรับ Decimal)
  • IS_NULLABLE - 'YES' หรือ 'NO'
  • COLUMN_DEFAULT - ค่า Default
  • COLUMN_KEY - 'PRI', 'UNI', 'MUL', หรือ ''
  • EXTRA - 'auto_increment', 'on update CURRENT_TIMESTAMP' ฯลฯ
  • COLUMN_COMMENT - Comment ของคอลัมน์

ตัวอย่าง Query หา Column ทุกตารางที่ชื่อมี 'email'

SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'my_db'
  AND COLUMN_NAME LIKE '%email%';