Dưới đây là bốn cách để liệt kê các bảng trong cơ sở dữ liệu MySQL bằng SQL hoặc dòng lệnh.
SHOW TABLES
Lệnh
SHOW TABLES
lệnh liệt kê không phải TEMPORARY
bảng và dạng xem trong một cơ sở dữ liệu nhất định:
SHOW TABLES;
Kết quả:
+-----------------+ | Tables_in_music | +-----------------+ | Albums | | Artists | | Genres | | valbumsartists | | valbumsgenres | | vallalbums | | vallartists | | vallgenres | +-----------------+
Điều đó đã liệt kê tất cả các bảng trong cơ sở dữ liệu hiện tại, được gọi là Music
.
Chúng tôi cũng có thể sử dụng FULL
công cụ sửa đổi để trả về cột thứ hai hiển thị kiểu:
SHOW FULL TABLES;
Kết quả:
+-----------------+------------+ | Tables_in_music | Table_type | +-----------------+------------+ | Albums | BASE TABLE | | Artists | BASE TABLE | | Genres | BASE TABLE | | valbumsartists | VIEW | | valbumsgenres | VIEW | | vallalbums | VIEW | | vallartists | VIEW | | vallgenres | VIEW | +-----------------+------------+
Chúng ta có thể thấy rằng hầu hết các kết quả được liệt kê ở đây thực sự là các lượt xem.
Nếu chúng ta chỉ muốn các bảng cơ sở được trả về, chúng ta có thể sử dụng WHERE
mệnh đề chống lại Table_type
cột:
SHOW FULL TABLES
WHERE Table_type = 'BASE TABLE';
Kết quả:
+-----------------+------------+ | Tables_in_music | Table_type | +-----------------+------------+ | Albums | BASE TABLE | | Artists | BASE TABLE | | Genres | BASE TABLE | +-----------------+------------+
SHOW TABLES
cũng chấp nhận LIKE
mệnh đề có thể được sử dụng để thu hẹp kết quả thành chỉ những bảng phù hợp với một mẫu nhất định:
SHOW TABLES
LIKE 'a%';
Kết quả:
+----------------------+ | Tables_in_music (a%) | +----------------------+ | Albums | | Artists | +----------------------+
Trong trường hợp này, tôi trả về tất cả các bảng bắt đầu bằng ký tự a
.
SHOW TABLE STATUS
Lệnh
SHOW TABLE STATUS
tương tự như lệnh SHOW TABLES
nhưng cung cấp thêm thông tin về mỗi lệnh (non-TEMPORARY
) bàn.
Nó cũng chấp nhận WHERE
và LIKE
mệnh đề, như SHOW TABLES
.
Ví dụ:
SHOW TABLE STATUS
LIKE 'a%';
Kết quả:
+---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+ | Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment | +---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+ | Albums | InnoDB | 10 | Dynamic | 20 | 819 | 16384 | 0 | 32768 | 0 | 21 | 2022-02-15 09:10:36 | NULL | NULL | utf8mb4_0900_ai_ci | NULL | | | | Artists | InnoDB | 10 | Dynamic | 16 | 1024 | 16384 | 0 | 0 | 0 | 17 | 2021-11-13 12:56:02 | NULL | NULL | utf8mb4_0900_ai_ci | NULL | | | +---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+
information_schema.TABLES
Bảng
Chúng tôi cũng có thể truy vấn information_schema.TABLES
bảng:
SELECT
TABLE_NAME
FROM
information_schema.TABLES
WHERE
TABLE_SCHEMA LIKE 'Music' AND TABLE_TYPE LIKE 'BASE_TABLE';
Kết quả:
+------------+ | TABLE_NAME | +------------+ | Artists | | Genres | | Albums | +------------+
Truy vấn điều này mà không lọc kết quả theo TABLE_SCHEMA
trả về các bảng từ tất cả các cơ sở dữ liệu. Tương tự, truy vấn nó mà không lọc theo TABLE_TYPE
trả về tất cả các loại bảng.
mysqlshow
Khách hàng
Một cách khác để làm điều đó là với mysqlshow
tính thiết thực.
Để sử dụng tùy chọn này, hãy mở cửa sổ dòng lệnh / dòng lệnh và chạy phần sau (thay thế music
với cơ sở dữ liệu mà bạn quan tâm):
mysqlshow music;
Kết quả:
+----------------+ | Tables | +----------------+ | Albums | | Artists | | Genres | | valbumsartists | | valbumsgenres | | vallalbums | | vallartists | | vallgenres | +----------------+
Điều này trả về các dạng xem và bảng.
Đầu ra chỉ hiển thị tên của các cơ sở dữ liệu, bảng hoặc cột mà bạn có một số đặc quyền.
Nếu không có cơ sở dữ liệu nào được cung cấp, danh sách các tên cơ sở dữ liệu sẽ được hiển thị. Nếu không có bảng nào được đưa ra, tất cả các bảng phù hợp trong cơ sở dữ liệu sẽ được hiển thị. Nếu không có cột nào được cung cấp, tất cả các cột và loại cột phù hợp trong bảng sẽ được hiển thị.
Nếu bạn gặp lỗi "quyền truy cập bị từ chối", bạn có thể cần sử dụng sudo
và nhập mật khẩu của bạn theo lời nhắc:
sudo mysqlshow music;
Tiện ích này chấp nhận một số tùy chọn, chẳng hạn như --user
(để bạn có thể chuyển tên người dùng), --password
(để bạn có thể chuyển mật khẩu), --host
cho máy chủ lưu trữ đặt máy chủ MySQL, v.v.
Xem tài liệu của MySQL để biết danh sách đầy đủ các tùy chọn.