Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách lấy tên cột của bảng trong MySQL


Phương pháp 1: Lệnh DESC (Descibe)

Cách nhanh nhất, hiển thị đầy đủ thông tin cột:

DESC ten_bang;

Hoặc viết tắt:

SHOW COLUMNS FROM ten_bang;

Phương pháp 2: Truy vấn information_schema.COLUMNS

Linh hoạt hơn, có thể lọc, sắp xếp, join:

SELECT column_name 
FROM information_schema.columns 
WHERE table_name = 'ten_bang' AND table_schema = 'ten_database';

Ví dụ với bảng ExtractCommentDemo1

Dùng DESC

mysql> DESC ExtractCommentDemo1;
+----------+--------------+------+-----+---------+-------+ 
| Field    | Type         | Null | Key | Default | Extra | 
+----------+--------------+------+-----+---------+-------+ 
| UserId   | int(11)      | YES  |     | NULL    |       | 
| UserName | varchar(200) | YES  |     | NULL    |       | 
+----------+--------------+------+-----+---------+-------+ 
2 rows in set (0.00 sec)

Dùng information_schema

mysql> SELECT column_name 
-> FROM INFORMATION_SCHEMA.COLUMNS 
-> WHERE table_name = 'ExtractCommentDemo1';
+-------------+ 
| COLUMN_NAME | 
+-------------+ 
| UserId      | 
| UserName    | 
+-------------+ 
2 rows in set (0.00 sec)

Truy vấn nâng cao từ information_schema

Lấy đầy đủ thông tin cột

SELECT 
    column_name,
    data_type,
    character_maximum_length,
    numeric_precision,
    is_nullable,
    column_default,
    column_key,
    extra
FROM information_schema.columns 
WHERE table_schema = 'ten_database' AND table_name = 'ten_bang'
ORDER BY ordinal_position;

Chỉ lấy tên cột để dùng trong dynamic SQL

SELECT GROUP_CONCAT(column_name) 
FROM information_schema.columns 
WHERE table_schema = 'ten_database' AND table_name = 'ten_bang';

Tìm cột theo kiểu dữ liệu

SELECT table_name, column_name 
FROM information_schema.columns 
WHERE table_schema = 'ten_database' AND data_type IN ('varchar', 'text', 'char');

So sánh 2 phương pháp

Tiêu chíDESC / SHOW COLUMNSinformation_schema.COLUMNS
Tốc độRất nhanhNhanh
Thông tinĐầy đủ cấu trúcTùy chọn cột cần thiết
Lọc/Sắp xếpKhôngCó (WHERE, ORDER BY)
Chương trìnhKhó parseDễ xử lý (result set chuẩn)
Cross-databasePhải USE database trướcChỉ định table_schema

Khuyến nghị

  • DBA/Dev handbook: Dùng DESC cho nhanh
  • Ứng dụng/Script: Dùng information_schema
  • Luôn chỉ định table_schema để tránh nhầm database