Có hai phương pháp chính để xem các bảng trong MySQL:
- MYSQL SHOW BẢNG BIỂU lệnh.
- Truy vấn Information_schema.tables bảng.
Trong bài viết này, chúng ta sẽ khám phá cả hai.
Lệnh MySQL SHOW TABLES
Lệnh hiển thị bảng hiển thị danh sách tất cả các bảng được tạo trong cơ sở dữ liệu. Cú pháp như sau:
SHOW [EXTENDED] | [FULL] TABLES
[{FROM} database_name]
[LIKE 'DBNamePattern']
Trong cú pháp,
- Công cụ sửa đổi :Chúng tôi có thể sử dụng bất kỳ tùy chọn nào sau đây để xem các bảng:
- ĐÃ HẾT HẠN - tùy chọn này điền danh sách các bảng đã được tạo bởi các câu lệnh ALTER TABLE không thành công.
- ĐẦY ĐỦ - tùy chọn này hiển thị một cột bổ sung cung cấp loại bảng. Nó có thể là Bảng cơ sở, Dạng xem hoặc Dạng xem Hệ thống.
- TỪ - nếu bạn muốn điền danh sách các bảng từ bảng cụ thể, bạn có thể sử dụng từ khóa FROM.
- THÍCH - nếu bạn muốn điền vào danh sách các bảng với một mẫu cụ thể trong tên của chúng, bạn có thể sử dụng từ khóa LIKE.
Hãy để chúng tôi xem các ví dụ.
Ví dụ 1:Hiển thị tất cả các bảng được tạo trong cơ sở dữ liệu cụ thể
Để xem tất cả các bảng MySQL được tạo trong Sakila cơ sở dữ liệu, sử dụng công cụ sửa đổi FULL và từ khóa FROM. Chạy lệnh sau:
mysql> SHOW TABLES FROM sakila;
Đầu ra
Như bạn có thể thấy, truy vấn đã điền danh sách các bảng từ Sakila cơ sở dữ liệu.
Ví dụ 2:Điền vào Danh sách các Bảng bằng Mẫu Từ khoá Cụ thể
Giả sử chúng ta muốn lấy danh sách các bảng có tên bắt đầu bằng từ khóa phim . Chúng tôi đang sử dụng từ khóa LIKE để đối sánh với mẫu.
Nhưng khi chúng ta sử dụng LIKE từ khóa, chúng tôi không thể sử dụng FROM bổ nghĩa. Truy vấn như sau:
use sakila;
SHOW TABLES like 'film%'
Đầu ra
Ví dụ 3:Điền vào danh sách các bảng với loại của nó
Để điền vào danh sách các bảng với loại của chúng, chúng tôi có thể sử dụng FULL bổ nghĩa. Giả sử chúng ta muốn lấy danh sách các bảng với các kiểu của chúng được tạo trong cơ sở dữ liệu Sakila. Xem truy vấn sau:
mysql> SHOW FULL TABLES FROM sakila;
Đầu ra
Bây giờ, chúng ta hãy điền danh sách các bảng từ information_schema.tables .
Bảng thông tin truy vấn_schema.tables
Để xem các bảng MySQL, chúng ta có thể sử dụng information_schema.tables bảng chứa thông tin sau:
- Table_Schema :Tên của cơ sở dữ liệu hoặc lược đồ mà bảng đã được tạo.
- Tên_bảng: Tên của bảng.
- Table_type: Loại bàn. Nó có thể là bất kỳ điều nào sau đây:
- Chế độ xem Hệ thống: Danh sách các chế độ xem hệ thống. Nó chứa thông tin chi tiết nội bộ của cơ sở dữ liệu. Các chế độ xem này được tạo bằng cách kết hợp nhiều bảng cơ sở với thông tin cơ sở dữ liệu.
- Bảng cơ sở: Danh sách các bảng cơ sở có thể là bảng người dùng hoặc bảng hệ thống.
- Xem: Danh sách các chế độ xem do người dùng xác định.
- Động cơ :Tên của công cụ cơ sở dữ liệu mà bảng đã được tạo.
- Phiên bản :Số phiên bản của .frm tệp của bảng.
- Row_format :Định dạng lưu trữ hàng. Định dạng lưu trữ hàng có thể là bất kỳ định dạng nào sau đây:
- Đã sửa
- Đã nén
- Dự phòng
- Động
- Nhỏ gọn
- Table_rows :Số hàng trong bảng. Nếu bạn đang sử dụng bảng InnoDB, nó sẽ trả về số lượng hàng ước tính. Để có số lượng hàng chính xác, hãy sử dụng CHỌN ĐẾM (*) truy vấn.
- Avg_row_length :Độ dài hàng trung bình của tệp dữ liệu.
- Data_length :Nếu bạn đang sử dụng bảng MyISAM, giá trị của data_length cột là độ dài của tệp dữ liệu. Nếu bạn đang sử dụng bảng InnoDB, giá trị của Data_length là số lượng kích thước được phân bổ cho chỉ mục nhóm nhân với kích thước trang InnoDB.
- Max_data_length: Độ dài tối đa cho phép của tệp dữ liệu. Đó là số byte có thể được lưu trữ trong bảng.
- Index_length: Độ dài của chỉ mục. Nếu bạn đang sử dụng bảng MyISAM, giá trị của index_length cột hiển thị kích thước của chỉ mục. Nếu bạn đang sử dụng bảng InnoDB, giá trị của index_length là tổng kích thước của tất cả các chỉ mục không phân cụm nhân với kích thước trang.
- Data_free :Tổng số byte được cấp phát nhưng chưa sử dụng. Nếu bạn đang sử dụng bảng InnoDB, giá trị của data_free cột là không gian chưa sử dụng của không gian bảng trong đó bảng đã được tạo.
- Auto_increment: Giá trị của Auto_increment là giá trị tự động tăng tiếp theo.
- Create_time :Ngày và giờ khi bảng đã được tạo. Khi chúng tôi khôi phục cơ sở dữ liệu, giá trị của create_date sẽ là lúc cơ sở dữ liệu được khôi phục.
- Update_time :Ngày và giờ khi tệp dữ liệu được cập nhật. Nó hiển thị dấu thời gian của các câu lệnh INSERT, UPDATE hoặc DELETE cuối cùng được thực thi trên bảng InnoDB.
- Check_Time: Ngày và giờ khi bảng được kiểm tra lần cuối.
- Table_collation :Tên của đối chiếu mặc định của bảng.
- Tổng kiểm tra :Giá trị tổng kiểm tra.
- Create_Option :Tùy chọn cấu hình bổ sung được sử dụng để tạo bảng.
- Table_comment :Nhận xét hoặc thông tin được sử dụng khi tạo bảng.
Ví dụ 1:Điền danh sách tất cả các bảng
Giả sử chúng ta muốn điền tất cả các bảng được tạo trong tất cả các cơ sở dữ liệu. Truy vấn như sau:
mysql> select table_catalog, table_schema, table_name,table_type,create_time from information_schema.tables;
Đầu ra
Như bạn có thể thấy, truy vấn đã điền danh sách các bảng với tên cơ sở dữ liệu và tạo thời gian. Truy vấn trả về nhiều bản ghi, vì vậy kết quả đầu ra bị cắt bớt.
Ví dụ 2:Điền danh sách tất cả các bảng được tạo trong cơ sở dữ liệu cụ thể
Để điền danh sách các bảng được tạo trong Sakila cơ sở dữ liệu, bạn có thể áp dụng bộ lọc trên Table_Schema cột:
mysql> select table_catalog, table_schema, table_name,table_type,create_time from information_schema.tables WHERE table_schema='sakila';
Đầu ra
Như bạn có thể thấy, truy vấn đã trả về danh sách các bảng và dạng xem được tạo trong cơ sở dữ liệu Sakila, thời gian tạo và kiểu của nó.
Ví dụ 3:Điền danh sách tất cả các bảng với số lượng hàng
Chúng tôi có thể bao gồm Table_rows để xem số hàng của bảng MySQL. Giả sử bạn muốn lấy danh sách các bảng có tên bắt đầu bằng film . Đầu ra phải bao gồm số lượng bản ghi trong các bảng đó.
mysql> select table_catalog, table_schema, table_name,table_type,table_rows from information_schema.tables WHERE table_schema='sakila' and table_name like 'film%' and table_type='BASE TABLE';
Đầu ra
Ví dụ 4:Điền số lượng bảng và lượt xem
Ví dụ, chúng ta muốn lấy số lượng các bảng và dạng xem được tạo trong cơ sở dữ liệu. Để làm điều đó, hãy chạy truy vấn sau:
mysql> select table_schema as 'Database OR Schema name', count(table_type) as 'Tables and Views', table_type as 'Object Type' from information_schema.tables group by table_type,table_schema;
Đầu ra
Như bạn có thể thấy trong hình trên, truy vấn đã điền vào số lượng bảng và dạng xem được tạo trong tất cả các cơ sở dữ liệu.
Ví dụ 5:Bàn có kích thước
Bây giờ, chúng tôi muốn điền danh sách các bảng được tạo trong Sakila cơ sở dữ liệu với kích thước của chúng. Để tạo danh sách, hãy chạy truy vấn sau:
mysql> SELECT Table_schema as 'Database Name', TABLE_NAME AS 'Table', ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 ) AS 'Size in KB' FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'sakila' and table_type='BASE TABLE' ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC;
Đầu ra
Như bạn có thể thấy, truy vấn đã trả về tên cơ sở dữ liệu, tên bảng và kích thước.
Tóm tắt
Như vậy, chúng ta đã định nghĩa và học cách sử dụng các phương pháp điền danh sách các bảng được tạo trong cơ sở dữ liệu. Chúng tôi đã khám phá SHOW BẢNG BIỂU và sau đó chúng tôi kiểm tra phương pháp truy vấn Information_schema.tables bàn. Chúng tôi hy vọng rằng những mẹo này sẽ hữu ích trong quy trình làm việc của bạn.
Nếu bạn muốn tìm hiểu thêm về bảng trong SQL, hãy đọc bài viết về bảng tạm thời trong SQL Server. Và nếu bạn muốn thêm điều gì đó, chia sẻ mẹo làm việc của mình hoặc thảo luận về những phương pháp này, bạn có thể tham gia phần Nhận xét.