Làm cách nào tôi có thể lấy tên cột từ tất cả các bảng trong MySQL?

Có thể có những trường hợp chúng ta muốn tìm xem có bao nhiêu bảng của một số cơ sở dữ liệu cụ thể mà một số cột (trường) xuất hiện. Hoặc bạn biết có trường cột nào đó tồn tại nhưng không nhớ nằm trong bảng nào của cơ sở dữ liệu, bạn sẽ làm gì?

Bên dưới truy vấn Mysql sẽ giúp bạn có được tất cả các bảng có cột được chỉ định trong một số cơ sở dữ liệu

1
SELECT table_name, column_name from information_schema.columns WHERE column_name LIKE '%column_name_to_search%';

Hãy nhớ rằng, không sử dụng % trước cột_tên_tìm_kiếm nếu bạn biết các ký tự bắt đầu của cột đó. Nó chậm lại, vì Mysql sẽ không sử dụng bất kỳ chỉ mục nào cho các trường được tìm kiếm bằng ký tự đại diện hàng đầu (%)

Bài viết này sẽ xem cách lấy tên cột từ một bảng bằng các phương pháp khác nhau. Ngoài ra, chúng ta sẽ xem cách lấy danh sách tên cột được phân tách bằng dấu phẩy

Mục lục. -

Hãy để chúng tôi bắt đầu bằng cách tạo dữ liệu mẫu được sử dụng trong các ví dụ. Chúng tôi sẽ tạo một bảng có tên là sale_details

CREATE TABLE sale_details (
    id INT auto_increment,
    sale_person_name VARCHAR(255),
    no_products_sold INT,
    sales_department VARCHAR(255),
    PRIMARY KEY (id)
);

Đầu ra hành động. -

Làm cách nào tôi có thể lấy tên cột từ tất cả các bảng trong MySQL?
hình ảnh_1

Để xem ảnh chụp nhanh của các cột trong bảng, hãy thực hiện

quảng cáo

SELECT * FROM sale_details;

đầu ra. -

Làm cách nào tôi có thể lấy tên cột từ tất cả các bảng trong MySQL?
hình ảnh_2

Lấy tên cột từ một bảng bằng lược đồ THÔNG TIN

Lược đồ thông tin được sử dụng để lấy thông tin về máy chủ MySQL như tên bảng, tên cột tên cơ sở dữ liệu, loại dữ liệu, v.v.  Hãy quan sát truy vấn bên dưới để biết cách sử dụng truy vấn này để lấy tên cột của bảng.

SELECT COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE 
    TABLE_SCHEMA = Database()
AND TABLE_NAME = 'sale_details' ;

Thông báo đầu ra hành động. –

4 hàng được trả lại

đầu ra. -

Làm cách nào tôi có thể lấy tên cột từ tất cả các bảng trong MySQL?
hình ảnh_3

Đầu ra trong image_3 hiển thị tên cột từ bảng sale_details. Hàm Database() truy xuất lược đồ hiện tại từ máy chủ MySQL.

ĐỌC THÊM. MySQL. lấy tên cột và kiểu dữ liệu của bảng

Lấy tên cột từ bảng bằng SHOW COLUMNS

Một cách khác để lấy tên cột từ bảng là sử dụng SHOW COLUMNS. Quan sát truy vấn dưới đây cho giải pháp

Bài viết này sẽ xem xét việc lấy tất cả các bảng MySQL với các tên cột cụ thể từ lược đồ cơ sở dữ liệu. Chúng tôi sẽ minh họa khái niệm bằng các ví dụ khác nhau

Hãy để chúng tôi bắt đầu bằng cách chuẩn bị dữ liệu mẫu. Chúng tôi sẽ tạo ba bảng, sale_details, sale_person_designation và sale_city

#create the table sale_details
CREATE TABLE sale_details (
    id INT ,
	sale_person_id VARCHAR(255) ,
    sale_person_name VARCHAR(255),
    no_products_sold INT,
    sales_department VARCHAR(255)
);
#create the table sale_person_designation
CREATE TABLE sale_person_designation (
    id INT ,
    sale_person_name VARCHAR(255),
	 designation VARCHAR(255)
);
#create the table sale_city
CREATE TABLE sale_city (
    sale_person_id VARCHAR(255),
    sale_person_name VARCHAR(255)
);

Đầu ra hành động. -

Làm cách nào tôi có thể lấy tên cột từ tất cả các bảng trong MySQL?
hình ảnh_1

Hình ảnh trên cho thấy rằng cả ba bảng đã được tạo thành công. Bây giờ chúng ta hãy xem xét các ví dụ

Ví dụ1. Lấy tên của tất cả các bảng có cột, sale_person_id hoặc sale_person_name hoặc cả hai.

quảng cáo

Quan sát truy vấn bên dưới để tìm giải pháp theo yêu cầu của ví dụ trên

SELECT DISTINCT
    TABLE_NAME
FROM
    INFORMATION_SCHEMA.COLUMNS
WHERE
    COLUMN_NAME IN ('sale_person_id' , 'sale_person_name')
        AND TABLE_SCHEMA = database();

đầu ra. -

Làm cách nào tôi có thể lấy tên cột từ tất cả các bảng trong MySQL?
hình ảnh_2

Giải trình. -

Truy vấn trên đang trả về tên bảng DISTINCT từ INFORMATION_SCHEMA, chứa các cột có tên  sale_person_id  và/hoặc sale_person_name. The results are filtered by schema to get the tables only from your schema using database() function.

Ví dụ2. Lấy tên bảng và tên cột tương ứng có cột bắt đầu bằng “sales_p”.

Quan sát truy vấn bên dưới để tìm giải pháp theo yêu cầu của ví dụ trên

SELECT 
    TABLE_NAME, COLUMN_NAME
FROM
    INFORMATION_SCHEMA.COLUMNS
WHERE
    COLUMN_NAME LIKE 'sale_p%';

đầu ra. -

Làm cách nào tôi có thể lấy tên cột từ tất cả các bảng trong MySQL?
hình ảnh_3

Giải trình. -

Truy vấn trên đang trả về TABLE_NAME và COLUMN_NAME từ INFORMATION_SCHEMA. CỘT nơi tên cột bắt đầu từ “sale_p” sử dụng ký tự đại diện “%” .

Ví dụ3. Lấy tên của tất cả các bảng có cột sale_person_name.

Quan sát truy vấn bên dưới để tìm giải pháp theo yêu cầu của ví dụ trên

________số 8_______

đầu ra. -

Làm cách nào tôi có thể lấy tên cột từ tất cả các bảng trong MySQL?
hình ảnh_4

Giải trình. -

Truy vấn trên đang trả về TABLE_NAME từ INFORMATION_SCHEMA. COLUMNS trong đó column_name là sale_person_name bằng cách sử dụng toán tử EQUAL trong mệnh đề WHERE.

GHI CHÚ. rằng sẽ không có thay đổi nào trong các truy vấn giải pháp ngay cả khi các bảng chứa dữ liệu

ĐỌC THÊM

  • MySQL lấy dữ liệu theo độ dài chuỗi
  • Bản cập nhật Mysql đặt nhiều hàng
  • Cột cập nhật Mysql có giá trị từ một bảng khác
  • Cập nhật MySQL với Tham gia bên trong
  • Chèn MySQL với Tham gia
  • mysql. Chèn vào một vòng lặp

Chúng tôi hy vọng bài viết này đã giúp bạn biết tên của các bảng MySQL có các cột cụ thể. Chúc may mắn

Làm cách nào để lấy tất cả các tên cột cho tất cả các bảng trong MySQL?

Bạn có thể liệt kê các cột của bảng bằng lệnh mysqlshow db_name tbl_name . Câu lệnh MÔ TẢ cung cấp thông tin tương tự như SHOW COLUMNS.

Làm cách nào tôi có thể lấy tên cột từ tất cả các bảng trong SQL?

Bạn có thể sử dụng truy vấn sau để liệt kê tất cả các cột hoặc tìm kiếm các cột trên các bảng trong cơ sở dữ liệu. SỬ DỤNG AdventureWorks ĐI CHỌN t. tên AS tên_bảng, SCHEMA_NAME(schema_id) AS tên_lược đồ, c. tên AS column_name TỪ sys. bảng AS t INNER JOIN sys.

Làm cách nào để lấy tên cột của bảng trong MySQL?

Bạn có thể lấy kiểu dữ liệu cột của bảng MySQL với sự trợ giúp của “information_schema. cột". CHỌN DATA_TYPE từ INFORMATION_SCHEMA. COLUMNS trong đó table_schema = 'yourDatabaseName' và table_name = 'yourTableName' .

Làm cách nào tôi có thể lấy tất cả các tên cột từ một bảng?

Chúng ta có thể xác minh dữ liệu trong bảng bằng truy vấn SELECT như bên dưới. Chúng tôi sẽ sử dụng sys. cột để lấy tên cột trong bảng . Nó là một bảng hệ thống và được sử dụng để duy trì thông tin cột.